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

Закрытие платформы Bukkit не минуемо ☹️ сейчас огромное количество людей обращают внимание на Spigot.
#BUKKITRIP
Ну что же, поделюсь впечатлениями. Очень не привычно если сравнивать с bukkit консолью, выглядит как бесконечный краш! Но так пока идет установка
Ну это воообще жесть! Уже нетерпится перети на споут!
 
https://github.com/FoxDenStudio/FoxGuard/issues/36
Смотрите на агрессивного sponge contributor'а. И как он только туда попал?

Ну не умеет человек общаться с троллями, может у него нервы или что-то. Поливать его грязью и тыкать "посмотрите какой он плохой", по моему не спортивно.
Тем более, что он проблему принял, понял её источник и создал тикет для разработчиков губки.
https://github.com/SpongePowered/SpongeCommon/issues/833
Закрытие платформы Bukkit не минуемо

Подробнее с этого места. Это ваши персональные ощущения или где-то написано? 😉
 
Единственный форк, сохранивший оригинальный bukkit api. Со слов автора, идёт уклон на стабильность и безопасность платформы.
Правда, на корректную работу многих плагинов со spigotmc можете не рассчитывать (некоторые events нужно переносить или заменять). Старые плагины с dev.bukkit работают с пол пинка.
 
Единственный форк, сохранивший оригинальный bukkit api. Со слов автора, идёт уклон на стабильность и безопасность платформы.
Правда, на корректную работу многих плагинов со spigotmc можете не рассчитывать (некоторые events нужно переносить или заменять). Старые плагины с dev.bukkit работают с пол пинка.
Да кому нужны эти вирусы под обфускацией...
 
Ну не умеет человек общаться с троллями, может у него нервы или что-то. Поливать его грязью и тыкать "посмотрите какой он плохой", по моему не спортивно.
Тем более, что он проблему принял, понял её источник и создал тикет для разработчиков губки.
https://github.com/SpongePowered/SpongeCommon/issues/833


Подробнее с этого места. Это ваши персональные ощущения или где-то написано? 😉
Это магия. Щитай что я смотрю сквозь стены. Bukkit ведь никто не пользуется. Все предпочитают более производительный Spigot. Зачем садиться на копейку если в гараже бесплатный мерседес? Наверно для острых ощущений. 🙂
images.jpg
 
Да кому нужны эти вирусы под обфускацией...
Есть только брать плагины с сорцами на гите. Таких полно.
Либо популярные и от достоверного источника.
Да и на spigotmc ситуация не лучше. Много плагинов под обфускацией кода и без сорцев, с каким нибудь скрытым бедкором который фиг найдешь.
 
Снова драстИ.
Сразу два вопросига, вот что я накалякал:
Код:
    @Listener
    public void doSmth(MessageEvent event) {
        Optional<Player> optionalPlayer = event.getCause().first(Player.class);
        if (optionalPlayer.isPresent()) {
            Player player = optionalPlayer.get();
            player.getInventory().set(ItemStack.of(ItemTypes.APPLE, 1));
            event.setMessage(Text.of(player.getName() + " сказал " + event.getMessage().toPlain() + " и получил яблочко!"));
        }
    }
Чего я хочу добиться думаю понятно.
Проблемы 2:
1. Я хочу делать свои темные дела, только когда игрок пишет что-то в чат.
Полазил по en. форумах, вроде нашел проверку, однако, эта проверка пропускает сообщение при входе игрока... И скорее всего при выходе.. Как мне убедится прямо на тыщупицот% что сообщение написал в чат игрок?
2. Как нормально выдать юзверу например яблочку? Мой код, не выдает больше одного яблочка... т.е. один раз яблоко выдал - дальше выдавать не хочет.. Но если яблочко выбросить - плагин успешно выдаст еще яблочко.. Какого простите меня яблочка, яблочки не стакаются? O,o
 
Снова драстИ.
Сразу два вопросига, вот что я накалякал:
Код:
    @Listener
    public void doSmth(MessageEvent event) {
        Optional<Player> optionalPlayer = event.getCause().first(Player.class);
        if (optionalPlayer.isPresent()) {
            Player player = optionalPlayer.get();
            player.getInventory().set(ItemStack.of(ItemTypes.APPLE, 1));
            event.setMessage(Text.of(player.getName() + " сказал " + event.getMessage().toPlain() + " и получил яблочко!"));
        }
    }
Чего я хочу добиться думаю понятно.
Проблемы 2:
1. Я хочу делать свои темные дела, только когда игрок пишет что-то в чат.
Полазил по en. форумах, вроде нашел проверку, однако, эта проверка пропускает сообщение при входе игрока... И скорее всего при выходе.. Как мне убедится прямо на тыщупицот% что сообщение написал в чат игрок?
2. Как нормально выдать юзверу например яблочку? Мой код, не выдает больше одного яблочка... т.е. один раз яблоко выдал - дальше выдавать не хочет.. Но если яблочко выбросить - плагин успешно выдаст еще яблочко.. Какого простите меня яблочка, яблочки не стакаются? O,o
1. "проверка пропускает сообщение при вход?
2. Код
 
1. "проверка пропускает сообщение при вход?
2. Код
Ну... Ыыы... В коде есть проверка:
Код:
        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 яблочко, еще одно выдаваться не будет.
 
Ну... Ыыы... В коде есть проверка:
Код:
        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 яблочко, еще одно выдаваться не будет.
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
 
Последнее редактирование:
1. MessaageChannelEvent
2. offer
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() + " и получил яблолочко!"));
        }
    }
7926f6882b9f.png

2. Спасибо 😁
И вообще, не знаю как у остальных, но лично у меня, Sponge сервер ЖУТКО лагает, даже на собственном компе...
С Bukkit/Spigot такого нету...
Вся консоль в Can`t keep up ... skipping N tick(s), да и на сервере, тоже яблочко жрется секунд 20...
При чем это просто самый ванильный SpongeVanilla, с одним единственным плагином - моим (который всего-то делает что слушает MessageEvent..)
 
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() + " и получил яблолочко!"));
        }
    }
7926f6882b9f.png

2. Спасибо 😁
И вообще, не знаю как у остальных, но лично у меня, Sponge сервер ЖУТКО лагает, даже на собственном компе...
С Bukkit/Spigot такого нету...
Вся консоль в Can`t keep up ... skipping N tick(s), да и на сервере, тоже яблочко жрется секунд 20...
При чем это просто самый ванильный SpongeVanilla, с одним единственным плагином - моим (который всего-то делает что слушает MessageEvent..)
https://docs.spongepowered.org/master/en/plugin/text/messagechannels.html

Какие параметры запуска?
 
Назад
Верх Низ