Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Sponge: Будущее Bukkit и Minecraft моддинга в целом

Тема в разделе "Sponge", создана пользователем ql_Nik_lp, 10 сен 2014.

  1. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    1. "проверка пропускает сообщение при вход?
    2. Код
     
  2. Хостинг MineCraft
    <
  3. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Ну... Ыыы... В коде есть проверка:
    Код:
            Optional<Player> optionalPlayer = event.getCause().first(Player.class);
            if (optionalPlayer.isPresent()) {
    Я надеялся, что true будет только когда игрок пишет в чат какое-то сообщение, однако, при сообщении "GWM joined the server." также получаю true.
    В общем, суть в том, что мне надо сделать *что-то*, в евенте MessageEvent, если сообщение было послано игроком. И я не могу понять как это проверить.
    2. Код
    Код:
              player.getInventory().set(ItemStack.of(ItemTypes.APPLE, 1));
    Однако, если в инвентаре уже есть 1 яблочко, еще одно выдаваться не будет.
     
  4. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    1. MessaageChannelEvent
    2. offer вместо set (2 секунды поиска в javadoc)
    https://jd.spongepowered.org/4.1.0/org/spongepowered/api/item/inventory/Inventory.html
    https://github.com/SpongePowered/Sp...ongepowered/api/item/inventory/Inventory.java
     
    Последнее редактирование: 11 авг 2016
  5. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    1. Нит...
    Код:
        @Listener
        public void doSmth(MessageChannelEvent event) {
            Optional<Player> optionalPlayer = event.getCause().first(Player.class);
            if (optionalPlayer.isPresent()) {
                Player player = optionalPlayer.get();
                player.getInventory().offer(ItemStack.of(ItemTypes.APPLE, 1));
                event.setMessage(Text.of(player.getName() + " сказал " + event.getMessage().toPlain() + " и получил яблолочко!"));
            }
        }
    [​IMG]
    2. Спасибо :D[DOUBLEPOST=1470933132,1470932765][/DOUBLEPOST]И вообще, не знаю как у остальных, но лично у меня, Sponge сервер ЖУТКО лагает, даже на собственном компе...
    С Bukkit/Spigot такого нету...
    Вся консоль в Can`t keep up ... skipping N tick(s), да и на сервере, тоже яблочко жрется секунд 20...
    При чем это просто самый ванильный SpongeVanilla, с одним единственным плагином - моим (который всего-то делает что слушает MessageEvent..)
     
  6. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    https://docs.spongepowered.org/master/en/plugin/text/messagechannels.html

    Какие параметры запуска?
     
  7. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
  8. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Пиши сюда:
    https://github.com/SpongePowered/

    От тебя требуется:
    Список плагинов, лог сервера, тайминги; порядок действий, который вызывает эту проблему; конфигурация сервера, нагрузка на сам сервер(не игровой).
     
  9. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Список плагинов: никаких. только мой, слушает два события ClientConnectionEvent, MessageEvent.
    Логи:
    Код:
    [17:26:44] [Server thread/INFO]: Starting minecraft server version 1.10.2
    [17:26:45] [Server thread/INFO]: Loading properties
    [17:26:45] [Server thread/INFO]: Default game type: SURVIVAL
    [17:26:45] [Server thread/INFO]: This server is running CraftBukkit version git-Spigot-9797151-301db84 (MC: 1.10.2) (Implementing API version 1.10.2-R0.1-SNAPSHOT)
    [17:26:46] [Server thread/INFO]: Debug logging is disabled
    [17:26:46] [Server thread/INFO]: Server Ping Player Sample Count: 12
    [17:26:46] [Server thread/INFO]: Using 4 threads for Netty based IO
    [17:26:46] [Server thread/INFO]: Generating keypair
    [17:26:48] [Server thread/INFO]: Starting Minecraft server on *:25565
    [17:26:48] [Server thread/INFO]: Using default channel type
    [17:26:50] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
    [17:26:50] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
    [17:26:50] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
    [17:26:50] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.
    [17:26:50] [Server thread/INFO]: **** Beginning UUID conversion, this may take A LONG time ****
    [17:26:50] [Server thread/INFO]: Preparing level "world"
    [17:26:50] [Server thread/INFO]: -------- World Settings For [world] --------
    [17:26:50] [Server thread/INFO]: Item Merge Radius: 2.5
    [17:26:50] [Server thread/INFO]: Item Despawn Rate: 6000
    [17:26:50] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
    [17:26:50] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 8 Hopper Amount: 1
    [17:26:50] [Server thread/INFO]: Arrow Despawn Rate: 1200
    [17:26:50] [Server thread/INFO]: Max Entity Collisions: 8
    [17:26:50] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617
    [17:26:50] [Server thread/INFO]: View Distance: 10
    [17:26:50] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
    [17:26:50] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
    [17:26:50] [Server thread/INFO]: Experience Merge Radius: 3.0
    [17:26:50] [Server thread/INFO]: Mob Spawn Range: 4
    [17:26:50] [Server thread/INFO]: Structure Info Saving: true
    [17:26:50] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
    [17:26:50] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
    [17:26:50] [Server thread/INFO]: Cactus Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Cane Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Melon Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Mushroom Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Sapling Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Wheat Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: NetherWart Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Vine Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Cocoa Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Random Lighting Updates: false
    [17:26:50] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
    [17:26:50] [Server thread/INFO]: Max TNT Explosions: 100
    [17:26:50] [Server thread/INFO]: -------- World Settings For [world_nether] --------
    [17:26:50] [Server thread/INFO]: Item Merge Radius: 2.5
    [17:26:50] [Server thread/INFO]: Item Despawn Rate: 6000
    [17:26:50] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
    [17:26:50] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 8 Hopper Amount: 1
    [17:26:50] [Server thread/INFO]: Arrow Despawn Rate: 1200
    [17:26:50] [Server thread/INFO]: Max Entity Collisions: 8
    [17:26:50] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617
    [17:26:50] [Server thread/INFO]: View Distance: 10
    [17:26:50] [Server thread/INFO]: Zombie Aggressive Towards Villager: true
    [17:26:50] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
    [17:26:50] [Server thread/INFO]: Experience Merge Radius: 3.0
    [17:26:50] [Server thread/INFO]: Mob Spawn Range: 4
    [17:26:50] [Server thread/INFO]: Structure Info Saving: true
    [17:26:50] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
    [17:26:50] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
    [17:26:50] [Server thread/INFO]: Cactus Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Cane Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Melon Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Mushroom Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Sapling Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Wheat Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: NetherWart Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Vine Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Cocoa Growth Modifier: 100%
    [17:26:50] [Server thread/INFO]: Random Lighting Updates: false
    [17:26:50] [Server thread/INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
    [17:26:50] [Server thread/INFO]: Max TNT Explosions: 100
    [17:26:50] [Server thread/INFO]: Preparing start region for level 0 (Seed: 1)
    [17:26:52] [Server thread/INFO]: Preparing spawn area: 0%
    [17:26:53] [Server thread/INFO]: Preparing spawn area: 12%
    [17:26:54] [Server thread/INFO]: Preparing spawn area: 20%
    [17:26:55] [Server thread/INFO]: Preparing spawn area: 36%
    [17:26:56] [Server thread/INFO]: Preparing spawn area: 48%
    [17:26:57] [Server thread/INFO]: Preparing spawn area: 57%
    [17:26:58] [Server thread/INFO]: Preparing spawn area: 70%
    [17:26:59] [Server thread/INFO]: Preparing spawn area: 79%
    [17:27:00] [Server thread/INFO]: Preparing spawn area: 95%
    [17:27:00] [Server thread/INFO]: Preparing start region for level 1 (Seed: 1)
    [17:27:01] [Server thread/INFO]: Preparing spawn area: 17%
    [17:27:02] [Server thread/INFO]: Preparing spawn area: 33%
    [17:27:04] [Server thread/INFO]: Preparing spawn area: 48%
    [17:27:05] [Server thread/INFO]: Preparing spawn area: 62%
    [17:27:06] [Server thread/INFO]: Preparing spawn area: 76%
    [17:27:07] [Server thread/INFO]: Preparing spawn area: 98%
    [17:27:07] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
    [17:27:07] [Server thread/INFO]: Done (17,148s)! For help, type "help" or "?"
    [17:27:07] [Server thread/INFO]: Starting GS4 status listener
    [17:27:07] [Query Listener #1/INFO]: Query running on 0.0.0.0:25565
    [17:28:53] [User Authenticator #1/INFO]: UUID of player GWM is 9101aee9-36f3-32d7-88e6-a626d910d89d
    [17:28:54] [Server thread/INFO]: GWM[/127.0.0.1:51934] logged in with entity id 212 at ([world]-5.699999988079071, 168.0, -5.69999998807907)
    [17:29:11] [Server thread/INFO]: GWM was slain by Zombie
    [17:29:20] [Server thread/INFO]: GWM issued server command: /gamemode 1
    [17:29:24] [Server thread/INFO]: Set GWM's game mode to Creative Mode
    [17:29:25] [Server thread/INFO]: Opped GWM
    [17:30:39] [Server thread/INFO]: GWM issued server command: /time set 1337
    [17:30:39] [Server thread/INFO]: [GWM: Set the time to 1337]
    [17:40:40] [Server thread/INFO]: GWM lost connection: Disconnected
    [17:40:40] [Server thread/INFO]: GWM left the game
    [17:44:05] [Server thread/INFO]: Stopping the server
    [17:44:05] [Server thread/INFO]: Stopping server
    [17:44:05] [Server thread/INFO]: Saving players
    [17:44:05] [Server thread/INFO]: Saving worlds
    [17:44:05] [Server thread/INFO]: Saving chunks for level 'world'/Overworld
    [17:44:33] [Server thread/INFO]: Saving chunks for level 'world_nether'/Nether
    
    Тайминги (хотя наверное эти не они, а ТПС... Я хз как тайминги получить :D):
    [​IMG]
    Порядок действий:
    1. Зайти на сервер
    2. ????
    3. PROFIT
    Конфигурация? Ничего такого..
    Код:
    #Minecraft server properties
    #Thu Aug 11 20:19:06 EEST 2016
    spawn-protection=16
    max-tick-time=60000
    query.port=25565
    generator-settings=
    force-gamemode=false
    allow-nether=true
    gamemode=2
    enable-query=true
    player-idle-timeout=0
    difficulty=3
    spawn-monsters=true
    op-permission-level=4
    announce-player-achievements=false
    pvp=true
    snooper-enabled=true
    level-type=DEFAULT
    hardcore=false
    enable-command-block=true
    max-players=1337
    network-compression-threshold=256
    resource-pack-sha1=
    max-world-size=29999984
    rcon.port=25575
    server-port=25565
    debug=false
    server-ip=
    spawn-npcs=true
    allow-flight=false
    level-name=nevendaar
    view-distance=11
    resource-pack=
    spawn-animals=true
    white-list=false
    rcon.password=1337ELITE
    generate-structures=false
    max-build-height=256
    online-mode=false
    level-seed=1
    enable-rcon=true
    motd=NEVENDAAR JOPTA
    
    Писать им мне лень, просто тут оставлю, может поймет кто...
    (Идентичный Bukkit сервер - не лагает)
     
  10. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Я тебе в третий раз говорю, тебе нужен MessageChannelEvent.
    Пиши им, там есть люди, которым не лень оптимизировать sponge.
    Also, 3 кнопки на гитхабе нажать трудно что ли?
     
  11. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Спасибо, оказалось что нужен MessageChannelEvent.Chat..
    Лаги магическим образом исчезли..
    Появился другой вопрос...
    У меня есть в конфиге допустим такая строка:
    Код:
    NEED_REGISTER: "§cТебе необходимо зарегистрироваться на сервере§0! §aИспользуй команду §5/register <race> <password> [email] [language]"
    Мне надо отослать ее игроку, именно в таком состоянии (с цветами)... А.. Как это сделать?
    Text.of(эта_строка) просто удаляет символы "§"...
     
  12. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Я конечно всё понимаю, но для начала надо вытащить руки из карманов, открыть глаза, зайти на JavaDoc sponge или хотя бы на сайт с примерами, нажать пару кнопок и увидеть, как это делается?
    Это разве так трудно? Может будут еще такие вопросы: "Как включить компьютер?", "Как создать java проект?", "Как спать?"?
    https://docs.spongepowered.org/master/en/plugin/text/representations/index.html
    https://jd.spongepowered.org/4.1.0/...Serializer.html#deserialize-java.lang.String-
     
  13. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Ыыы... Пасибо, но...
    А шо с этим делать?
    Вот так вот:
    Код:
     player.sendMessage(TextSerializers.PLAIN.deserialize(Language.defaultLanguage.config.getNode("NEED_REGISTER").getString()));
    Просто удаляет символы § и снова текст не форматированный...
     
  14. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Потому что надо читать, что значит каждая строчка кода в документации, а не слепо копипастить.
    PLAIN десериализует текст как есть. Символ § в майне не печатается, используй амперсанд вместо параграфа(&) и TextSerializers.FORMATTING_CODE
     
  15. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Ага... Хм, ну спасибо... Просто непривычно, в Бакките я делал себе конфиги с § и все нормально..
    Тут буду использовать & :D[DOUBLEPOST=1471103409,1471101800][/DOUBLEPOST]И снова драсти... Теперь пытаюсь понять аналогию PlayerMoveEvent(Bukkit)...
    Методом тыка нашел вот такое: DisplaceEntityEvent.Move
    Внимание вопрос:
    какого х*ра, я получаю NoClassDefFoundException (с DisplaceEntityEvent.Move), хотя у меня самая последняя версия API (через Maven):
    Код:
        <repositories>
            <repository>
                <id>sponge-maven-repo</id>
                <name>Sponge maven repo</name>
                <url>http://repo.spongepowered.org/maven</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>org.spongepowered</groupId>
                <artifactId>spongeapi</artifactId>
                <version>LATEST</version>
            </dependency>
        </dependencies>
    Ядро Sponge - скачал самую самую последнюю, 1.10.2 [5.0.0-99]...
     
  16. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Я бы помог, я даже знаю, что ты неправильно делаешь, но не стану, ищи сам, учись.
     
  17. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Хм, написал на английский форум, сказали что я пишу на Api 4.0 а запускаю на 5.0,
    странно, я думал что через Maven я получу самую последнюю версию API, однако оказалось не так...[DOUBLEPOST=1471175057,1471168357][/DOUBLEPOST]А что в Sponge с пермишенами?
    Есть уже что-то готовое, или надо самому пилить?
    Или просто еще не запилено, не обещали запилить?[DOUBLEPOST=1471175131][/DOUBLEPOST]Нашел только вот эти две ссылки, которые не дают понять абсолютно ничего...
    https://docs.spongepowered.org/master/ru/plugin/permissions.html
    https://docs.spongepowered.org/master/en-GB/server/management/permissions.html
     
  18. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    В итоге, со спонжфорума узнал, что Permissions API полностью(?) готов, однако пока-что никто не написал по нему документацию, и надо либо ждать, либо самому разбираться с джавадоками..
     
  19. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Лучше в irc их спрашивать, быстрее отвечают.
    В JavaDoc нет ничего плохого, очень удобная вещь.
    https://jd.spongepowered.org/5.0.0-SNAPSHOT/
     
  20. sanjee

    sanjee Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    sanjee
    как отключить мир the_end ???
     
  21. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    @Larin сможешь нормально объяснить что я не так делаю? Ну позяяя...
    То, как я устанавливаю в конфиг значние:
    [​IMG]
    Код:
    "9101aee9-36f3-32d7-88e6-a626d910d89d" {
        PASSWORD=nazar
        RACE="LEGIONS_OF_THE_DAMNED"
        SECRET-KEY=SK
    }
    Код:
        @Listener
        public void test(ClientConnectionEvent.Auth event) {
            GameProfile profile = event.getProfile();
            UUID uuid = profile.getUniqueId();
            ConfigurationNode node = config.getNode(uuid, "PASSWORD");
            Object value = node.getValue();
            auth.put(uuid, value == null ? AuthType.REGISTER : AuthType.LOGIN);
        }
    По идее, value не должно быть null, так как в конфиге установлено значение по пути uuid.PASSWORD, ниже в спойлере доказательства, однако value == null...
    [​IMG]
    [​IMG]
     

Поделиться этой страницей