Plugin API
Plugin API [1] — это запланированная функция, которая позволит разработчикам модов и плагинов легко добавлять больше контента к игре. [2] Он позволит установить модификации и плагины без необходимости изменения файла minecraft.jar. Команда Bukkit участвует в разработке Plugin API [3] .
Plugin API был запланирован 5 июля 2010 года, вскоре после выхода Alpha 1.0.1_01 [4] . Изначально утверждалось, что релиз на 1.3, но затем его отложили до 1.4. Curse заявила, что релиз состоится в версии 1.5, но он так и не состоялся [5] . С тех пор дата выхода Plugin API неизвестна. [6] [7] [8]
Особенности [ ]
Планируется максимально упростить установку плагинов в игру. [9] Хотя команда Bukkit участвует в разработке Plugin API, он не будет основан на Bukkit.
Следующие возможности планируются как часть Plugin API:
- Плагины будут ориентированы на многопользовательскую игру
- API добавит официальную поддержку модификаций (плагинов), что позволит легко установить плагины в игру, сокращая время и усилия, чтобы изменить minecraft.jar. Уменьшит шанс падения игры.
- На сайтах Minecraft можно будет увидеть самые интересные плагины и пользовательские карты.
- Проще будет добавлять и анимировать модели.
Пакеты ресурсов, добавленные в 1.6, автоматическое обновление лаунчера к новой версии, делают возможным введение Plugin API. Тем не менее, пакеты ресурсов не будут использоваться для добавления плагинов, так как они направлены на изменение внешнего вида игры, в то время как плагины направлены на изменение игровых функций.
На MineCon 2012, Mojang AB поделилась своим мнением по поводу будущего Plugin API. [10] [11] Видеоролик с мероприятия на английском языке: https://youtu.be/1uTl3aWEvEA
Примечания [ ]
- ↑https://twitter.com/Dinnerbone/status/184570898920112128
- ↑https://twitter.com/Dinnerbone/status/184583108547444736
- ↑http://www.mojang.com/2012/02/minecraft-team-strengthenedModding API: Bukkit Developing API
- ↑Server scripting
- ↑https://twitter.com/Dinnerbone/status/272733076738682881
- ↑http://www.pcgamer.com/the-future-of-minecraft/
- ↑https://twitter.com/Dinnerbone/status/519799449212973056
- ↑https://twitter.com/Dinnerbone/status/516548988892643328
- ↑https://twitter.com/Dinnerbone/status/184585004389646336
- ↑https://youtu.be/FPUn5-vRNeM
- ↑https://youtu.be/Mv8Sz2sqBB0
Плагины для Майнкрафт серверов
Свежие и интересные плагины для Майнкрафт серверов. Устанавливая плагины, вы можете добавить на сервер огромное количество различных функций для игроков.
AElytra — плагин запрещающий элитры [1.20.x] [Bukkit] [Paper]
- Автор: wleka
- Дата: 4-02-2024, 15:55
- Категория: Плагины Minecraft
AElytra ( AntiEltra ) — Плагин который запрещает использование элитр в мире или в целом на сервере. Плагин работает на версии 1.20.x, и вы можете настраивать плагин, добавлять/удалять мир с помощью конфига.
- Просмотров: 572
- Комментариев: 2
DiscordSRV — Синхронизация игры с Дискордом [1.20 — 1.7.9]
- Автор: Father
- Дата: 25-01-2024, 18:40
- Категория: Плагины Minecraft
DiscordSRV — Прекрасный плагин для серверов, ориентированных на выживание. Благодаря нему, если у администрации есть свой Discord сообщество, люди смогут общаться с игроками на Minecraft сервере без необходимости заходить туда.
- Просмотров: 1 663
- Комментариев: 3
Plasmo Voice Client + Server — мод + плагин, голосовой чат [1.20.3] [1.19.4] [1.18.2] [1.17.1] [1.16.5]
- Автор: Ansandr
- Дата: 6-12-2023, 18:43
- Категория: Моды Майнкрафт / 1.20.4 / Fabric / 1.20.2 / Fabric / 1.20.1 / Forge / Fabric / 1.19.4 / 1.19.3 / 1.19.2 / 1.18.2 / 1.17.1 / 1.16.5 / Fabric / Для сборок / Плагины Minecraft
Plasmo Voice — потрясающий плагин для сервера Spigot + мод для клиента, который внедрит в игру удобную функцию голосового чата, при этом освобождая сервер от установки Forge или Fabric библиотек.
- Просмотров: 335 500
- Комментариев: 20
xCustomSystemMessages — контроль всех системных сообщений [1.12+]
- Автор: Xarta
- Дата: 2-10-2023, 19:02
- Категория: Плагины Minecraft
xCustomSystemMessages — плагин для майнкрафт версии 1.12 и выше. Позволяет полностью отключать/изменять системные сообщения на сервере.
- Просмотров: 2 801
- Комментариев: 1
xAutoFly — автоматический полёт при входе на сервер [1.12+]
- Автор: Xarta
- Дата: 18-09-2023, 14:15
- Категория: Плагины Minecraft
xAutoFly — плагин для майнкрафт версии 1.12 и выше. Данный плагин автоматически выдаёт полёт всем игрокам, которые заходят на сервер (По непонятным для меня причинам, это мой самый популярный плагин).
- Просмотров: 1 237
- Комментариев: 1
xKeepTimeAndWeather — заморозь погоду и время! [1.12+]
- Автор: Xarta
- Дата: 14-09-2023, 16:53
- Категория: Плагины Minecraft
xKeepTimeAndWeather — плагин для майнкрафт версии 1.12 и выше. Позволяет установить на сервере постоянную погоду/время (с точностью до тиков).
- Просмотров: 1 781
- Комментариев: 1
Плагин Arcana-AutoTNT — автоматическая активация динамита [1.16.5]
- Автор: ziki12
- Дата: 16-02-2023, 16:09
- Категория: Плагины Minecraft
Arcana-AutoTNT — Плагин реализует простую механику — Игрок ставит динамит, а динамит в свою очередь поджигается сразу же (без участия игрока). Плагин предназначен для мини-игр, таких как BedWars, SkyWars и другие, где не особо часто встречается зажигалка.
- Просмотров: 2 756
- Комментариев: 0
Плагин Arcana-AlwaysTime — управляй временем сервера [1.16.5]
- Автор: ziki12
- Дата: 10-02-2023, 18:23
- Категория: Плагины Minecraft
Плагин Arcana-AlwaysTime — управляй временем сервера!
Возможности плагина: Установка (визуального) времени и погоды для самого себя, установка времени и погоды для всего мира, отключение/включение дождя на всем сервере, включение вечного времени суток.
- Просмотров: 4 641
- Комментариев: 2
ItemsAdder — платный плагин с кучей возможностей [1.17.1] [1.16.5] [1.15.2] [1.14.4]
- Автор: south_park
- Дата: 4-11-2021, 17:22
- Категория: Плагины Minecraft
ItemsAdder — это невероятный плагин для Spigot который добавляет огромное количество возможностей для вашего сервера майнкрафт. Это платный плагин, но если у вас есть сервер, то его покупка может быть оправдана за счет качественной реализации множества функций, например Кастомные предметы, HUD-ы, GUI, Мобы, 3Dмодели,Emoji, Блоки, Крылья, Шапки, Жидкости.
- Просмотров: 40 144
- Комментариев: 16
PlayerNameManager — управление никами [1.8+]
- Автор: Maksimo44ka
- Дата: 26-04-2021, 16:50
- Категория: Плагины Minecraft
PlayerNameManager — Блокировка плохих ников
Здравствуйте. Сегодня я хочу предоставить вам своё творение. Данный плагин предназначен для блокировки игроков с нецензурными никами.
Тебя заинтересовало? Тогда быстрее в полную!
- Просмотров: 12 601
- Комментариев: 7
Разработка собственного плагина для сервера Minecraft
Еще с детства я начал покорять бесконечные просторы Minecraft. Естественно о разработке в то время никакой речи не шло. Но с недавних пор загорелся идеей создать о свой проект серверов.
На Java до этого никогда не писал, но есть бекграунд на других языках, поэтому осталось только приспособиться. Соотвественно разработка плагинов, Bukkit и другие библиотеки вижу впервые, но посмотрев несколько туторов, стала понятна примерная концепция.
Ранее писал на таких языках как PHP, JS. В данный момент веду разработку на языке Go. Сильно привык к «гошке» и его синтаксису и в процессе написания плагина часто использовал синтаксис Go для написания логических конструкций.
Мне не сильно хотелось использовать какие-то готовые решения, ведь тогда не будет углубленных знаний, которые я получу в процессе написания кода. Хочется одновременно и поучить Java и написать что-то свое (самое главное).
В этой статье я не буду затрагивать процесс настройки окружения, установки IDE и стороннего софта.
Идея плагина
На серверах часто используются постройки, находящиеся в пустоте, например летающие лобби, острова. Такую модель постройки мы выбрали вместе с моим другом: летающие острова. Одной из проблем таких построек — Игрок может провалиться в пустоту и не выбраться.
Прошерстив Google мне удалось найти парочку подходящих плагинов, которые уже решают это проблему. Но один из них, который оказался поддерживаем разработчиком и самими ядром сервера, предоставлял ограниченный функционал, расширенный можно было приобрести на X евро. Фича, которая мне понравилась в платном плагине — создание анимаций из частиц после телепортации из пустоты.
Мне захотелось самому понять, как это сделать, разработать собственный плагин, а потом с удовольствием им пользоваться, поддерживать, находить баги — мое мелкое детище, как никак.
Создаем сам плагин
Назвал я плагин просто — VoidTeleport.
Первым делом создал класс для управления конфигурацией плагина.
public class Config < private static File file; private static FileConfiguration config; private static final String fileNameConfig = "config.yml"; /** * Initializes the static Config class. */ public static void init() < // Получаем инстанс нашего плагина. Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin(VoidTeleport.PluginName); if (plugin == null) < // На этом моменте что-то пошло не так, // нужно обработать и залогировать. Bukkit.getLogger().log( Level.WARNING, MessageFormat.format("Cannot get plugin ", VoidTeleport.PluginName) ); return; > file = new File(plugin.getDataFolder(), fileNameConfig); // Мы не знаем существует ли файл, поэтому пытаемся создать его. // Если файл уже есть, то выражение file.createNewFile() вернет false. try < if (file.createNewFile()) < plugin.getLogger().log( Level.INFO, MessageFormat.format("New config file with name was created", fileNameConfig) ); > > catch (IOException e) < plugin.getLogger().log(Level.SEVERE, e.toString()); return; >// На данно моменте наш конфиг пустой, // поэтому подгружаем его из файла. reload(); > /** * Getter * @return FileConfiguration */ public static FileConfiguration get() < return config; >public static void reload() < // Самый простой анмаршаллер YAML из файла. config = YamlConfiguration.loadConfiguration(file); >
Отлично! Класс для работы с конфигом уже есть, теперь нужно определиться со структурой файла config.yml . Нужно реализовать поддержку для разных миров, поэтому не придумал ничего проще, как просто указать список нужных миров.
worlds: # Наименование мира, например spawn, world, world_the_end - name: spawn # Координаты для респавна игрока при падении в пустоту spawnLocation: x: 0 y: 0 z: 0
Конфиг есть, теперь можно приступить к созданию обработчика событий. Мой выбор пал на событие EntityDamageByBlockEvent. Можно было бы и слушать событие PlayerMoveEvent, но оно случается гораздо чаще, чем триггер на получение урона. Лишняя нагрузка на сервер не нужна, поэтому стал слушать урон.
public class PlayerDamageListener implements Listener < // Хеш мапа в которой хранится наименования мира и точка телепортации. private HashMapworlds = new HashMap<>(); @EventHandler public void onPlayerDamage(EntityDamageByBlockEvent e) < if (!(e.getEntity() instanceof Player)) < // Это не игрок. return; >if (e.getCause() != EntityDamageEvent.DamageCause.VOID) < // Урон не от пустоты. return; >Player player = (Player) e.getEntity(); // Получаем мир, в котором находится Игрок. World world = player.getWorld(); // Пытаемся найти в хеш мапе значение по наименованию мира. Location spawnLocation = this.worlds.get(world.getName()); if (spawnLocation == null) < // К этому миру не действует правило телепорта. return; >// Данный код является костылем, который я быстро сообразил. // Проблема в том, что мир может быть = null. // В таком случае устанавливаем мир на тот, в котором находится игрок. if (spawnLocation.getWorld() == null) < spawnLocation.setWorld(world); >// Добрались до самого главного. // Отменяем событие, которое наносит урон игроку. e.setCancelled(true); // Отменяем сам урон от падения, // чтобы при телепортации игрок не разбился. player.setFallDistance(0); // Телепортируем игрока. player.teleport(spawnLocation); // Доабвляем анимацию из частиц при попадании на точку телепортации. Spiral.spawn(player); > @SuppressWarnings("unchecked") public void updateWorlds(@Nullable ArrayList> listWorlds) < if (listWorlds == null) < // Ну если null, так null - ничего не делаем. return; >// Очищаем мапу. this.worlds = new HashMap<>(); for (HashMap world: listWorlds) < String worldName = (String) world.get("name"); if (Objects.equals(worldName, "")) < // Тут хорошо бы залогировать, но просто скипаем. continue; >Location spawnLocation = Location.deserialize((Map) world.get("spawnLocation")); // Т.к. мир у нас не указан, поэтому получаем его. spawnLocation.setWorld(Bukkit.getWorld(worldName)); // Сохраняем в хеш мапу. this.worlds.put(worldName, spawnLocation); > > >
Тепер разберем вызов эффекта анимации при телепортации Spiral.spawn(player) . Назвал класс Spiral, потому что эффект будет в виде спирали.
Т.к. это мой первый плагин, то не стал заморачиваться с Пакетами и ProtocolLib.
Описываем анимацию в отдельном классе Spiral. Я предпочел реализовать спираль под названием Helix — достаточно простая в реализации модель. Пришлось немного вспомнить тригонометрию, но у меня получилось!
public class Spiral < public static void spawn(@NotNull Player player) < Location location = player.getLocation(); // Задаем радиут спирали. double radius = 0.5; for (double y = 0; y catch (InterruptedException e) < Bukkit.getLogger().log(Level.SEVERE, e.toString()); >> > >
Почему в коде 23? Это число является ограничением для координаты y. Т.е. по сути спираль будет подниматься вверх на y = 2.3 . Как можно заметить, при указании смещения particleLocation.add(x, y / 10, z) y делится на 10. Еще одной причиной стало то, что спираль не успевает несколько раз «обернуть» игрока.
Собираем все вместе
Наконец можем собрать наш код в единой точке и протестировать, что получилось.
public final class VoidTeleport extends JavaPlugin < public static final String PluginName = "VoidTeleport"; @Override public void onEnable() < getLogger().log(Level.INFO, "Plugin enabled!"); // Инициализируем конфиг Config.init(); // Регистрируем обработчик событий для входщего урона this.registerDamageEvent(); >@Override public void onDisable() < getLogger().log(Level.INFO, "Plugin disabled!"); >@SuppressWarnings("unchecked") private void registerDamageEvent() < // Инициализируем обработчик PlayerDamageListener damageListener = new PlayerDamageListener(); // Достаем из конфига нужные значения и обновляем хеш мапу в обработчике damageListener.updateWorlds((ArrayList>) Config.get().get("worlds")); // Регистрируем новое событие на сервере getServer().getPluginManager().registerEvents(damageListener, this); > >
Результат
При заданным настройкам файле конфигурации мы успешно попадаем в указанную точки и наблюдаем просто классную анимацию, как по мне.
И без указания мира в конфиге.
Можно посмотреть код этого плагина в моем репозитории Github.
Скачать можно последний релиз.
Лучшие плагины для серверов Minecraft
Поиск и установка подходящей сборки плагинов для сервера Minecraft – важный шаг при создании своего места для онлайн-игры. Плагины обеспечивают лучшую управляемость, стабильность работы и, как следствие, довольных пользователей. А некоторые из них позволят разнообразить игровой процесс, что выгодно выделит вашу площадку среди других. Рассказываем, какие плагины для сервера Minecraft сделают вашу игру лучше и где их можно скачать.
Важные сервисные плагины
AuthMe Reloaded
AuthMe Reloaded – распространенный плагин для авторизации в игре. Он не позволит выполнить в игре какие-либо действия, если пользователь не вошел в систему. За каждым игроком с уникальным именем пользователя закреплен его инвентарь, местоположение и настройки (статус, права на территорию и т.д.). Наверное, один из важнейших плагинов для любого сервера.
Версия игры: до 1.13 включительно
Поясненение: Spigot и Bukkit – это программное обеспечение, которое позволяет расширять возможности ванильной версии Minecraft. Подобных программ много, но мы расскажем про плагины только для двух самых используемых систем при создании пользовательских миров.
LuckPerms
Плагин выдачи прав на сервере Minecraft. Дает возможность администраторам контролировать, какие возможности имеют игроки, позволяет создавать группы и выдавать права (как по отдельности, так и группам). Также подойдет для проектов, в которых у геймеров есть разные уровни доступа. Прост в использовании и универсален для разных платформ.
Версия игры: до 1.16 включительно
Скачать LuckPerms (версии для разных видов серверов)
WorldEdit
WorldEdit – простой внутриигровой редактор мира. Плагин позволяет совершать следующие действия без приостановки работы сервера: видоизменять ландшафт различными инструментами, добавлять/удалять большое количество блоков, перемещать целые зоны по миру, создавать резервные копии отдельных участков и ликвидировать последствия действий гриферов. Поддерживает как онлайн, так и одиночную версию игры.
Версия игры: до 1.16 включительно
Мощные игровые серверы для Minecraft от 3 руб./час
От 4 Гб ОЗУ, от 80 Гб на скоростном NVMe и стабильные 200 Мбит/сек
EssentialsX
EssentialsX – этот плагин добавляет в игру более 130 команд. Команды, прописанные в плагине, упрощают модерирование сервера и позволяют быстро вносить изменения (от изменения погоды до генерации деревьев перед собой). Это же плагин позволяет телепортировать игроков по миру, перемещаться к ним или закидывать кого-то в случайную точку карты.
Версия игры: до 1.16 включительно
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Плагины для работы «под капотом» сервера
ClearLag
Плагин разработан для устранения лагов и оптимизации нагрузки, чтобы повысить общую производительность. Важная фича плагина – возможность удаления выброшенных на землю предметов (вручную или спустя какое-то время). Плагин включает в себя инструменты для диагностики провисаний и позволяет уменьшить потребление ресурсов машины, на которой запущен ваш игровой мир.
- Скачать ClearLag для Bukkit (версия 1.15 и ниже)
- Скачать ClearLag для Spigot (версия 1.14 и ниже)
AutoSaveWorld
Несмотря на название, заявляющее одну функцию, этот плагин является многофункциональным. С его помощью можно не только создать резервные копии мира, но и очистить кэш плагинов. Тут же можно быстро перезапустить серверы при падении или задать периодичность его перезагрузки, чтобы обеспечить стабильную работу.
Версия игры: до 1.12 включительно
Multiverse-Core
Multiverse-Core позволяет в одном пространстве осуществлять управление сразу несколькими онлайн-серверами как на макроуровне (создавать, глобально редактировать, менять режим игр), так и на микроуровне (узнать, на каком сервере нужный пользователь, и поместить его между мирами). Подходит продвинутым пользователям, которые хотят запустить на своей машине сразу несколько миров.
ChatEx
ChatEx – простой плагин для контроля за чатом в игре. Можно подключать АнтиСпам и блокировать нежелательный контент в чате. Например, сообщения от определенного пользователя или сообщения с рекламной ссылкой. При необходимости можно просто очистить весь чат.
Версия игры: до 1.16 включительно
Ссылка на ChatEx
Плагины заботы о пользователях
WorldGuard
WorldGuard – плагин, с помощью которого можно настроить дополнительные правила, связанные с разметкой зон. Самая полезная функция: дать возможность выделять свою территорию, на которой изменения могут быть внесены только игроками с правами на этой территории. Администратор с помощью этого плагина может установить запрет на использование определенных предметов (никакого динамита). Еще плагин может по запросу выдавать статистику по серверу. Не основная, но крайне полезная особенность.
Версия Minecraft: до 1.16 включительно
NoCheatPlus
NoCheatPlus – этот модуль призван предотвратить вмешательство читеров в игровой процесс. Прикрывает уязвимости на сервере и делает игру более безопасной. Перечень вещей, от которых защищает античит, обширный: от незапланированных полетов игроков до взлома инвентаря и спама в чат. Минус в том, что плагин не обновлялся с 2018 года, поэтому встанет на проекты с версией Minecraft не выше 1.12.
Версия Minecraft: до 1.12 включительно
Holographic Displays
Простой плагин для создания голограмм. Можно на старте рассказать человеку полезную информацию в виде парящего текста: правила, важные команды для консоли, количество людей онлайн и так далее. Незаменим для серверов с мини-играми, где информацию игроку лучше выдавать в сжатом и интерактивном формате. Поддерживает анимации при создании голограмм.
- Загрузить для Bukkit (Minecraft 1.16 и ниже)
- Загрузить для Spigot (Minecraft 1.15 и ниже)
Dynmap
Dynmap – динамически генерируемая карта мира Minecraft. На карте отображаются не только изменения ландшафта, но и нахождение игроков в реальном времени, текущая погода и время. Совместим со многими плагинами, которые позволяют делить территорию (например, WorldGuard), поэтому может отображаться принадлежность определенной зоне. И для просмотра карты не нужно даже заходить в игру, ведь это можно сделать в браузере.
Версия Minecraft: до 1.16 включительно
Плагины для разнообразия геймплея Майнкрафт
Shopkeepers
Shopkeepers – расширение, которое добавляет в игру NPC-продавцов. Их можно гибко настроить, чтобы они продавали/покупали только необходимый товар. Также добавляет возможность создавать админские магазины с неограниченными ресурсами и магазины разных видов для игроков. Хорошо подходит для проектов, где планируется построение экономической системы.
Версия Minecraft: до 1.16 включительно
AskMe
Простой плагин для создания викторин и интерактивов в чате. Можно устраивать голосования среди игроков. Не требует специальных знаний и прост в настройке.
Parkour
Parkour – плагин, который подходит для проектов с мини-играми, квестами и сюжетными цепочками. Добавляет возможность созданий полос препятствий из блоков, которые нужно проходить на время. В зависимости от того, пройдена ли полоса препятствий или нет, можно выдавать игроку новые предметы и возможности. Или можно просто устраивать гонки между пользователями на время и выводить топ лидеров.
Версия Майнкрафт: до 1.16 включительно
Factions
Factions – расширение, которое позволяет игрокам объединяться в группы на сервере. За группой может быть закреплена земля, на которой расположена ее база. Такая система подходит для миров ролевой направленности. Люди образуют фракции со своей экономикой, землей, армией и вступают в борьбу с другими такими же фракциям за власть и землю.
- Загрузить для Bukkit (Minecraft 1.12 и ниже)
- Загрузить для Spigot (Minecraft 1.15 и ниже)
Бонус: плагин, через который можно настроить донат
ChestCommands – многофункциональный плагин для создания меню внутри игры. С его помощью также можно организовать систему внутриигровой валюты, за которую можно приобретать возможности и ресурсы. Саму валюту можно получать, продавая или покупая товары через сайт или сообщество вашего сервера. Плагин гибкий для настройки, поэтому описанная выше система лишь одна из возможных.
Версия Minecraft: до 1.16 включительно