Лидеры
Популярный контент
Показан контент с высокой репутацией 29.01.2024 во всех областях
-
Привет, форумчане! Давно хотели написать свой плагин? У меня есть для вас решение! Вы уже сегодня сможете написать свой плагин майнкрафт с небольшим функционалом. Здесь я показываю как сделать свой первый плагин, если вы хотите пойти дальше, вам нужно изучить Java, а также внимательно изучить SpigotAPI Поехали! 1 Этап. Скачивание софта. Лично я рекомендую использовать IntelliJ IDEA - ССЫЛКА Очень удобный IDE для разработки на Java. Скачивайте Community версию, она бесплатная! Запускаем программу. Кликаем на кнопку Plugins В поисковике пишем Minecraft Development Устанавливаем, перезапускаем программу. 2 Этап. Подготовка проекта. После запуска программы вас встречает окно выбора проектов, если у вас это первый проект, то никаких других не будет. Справа сверху находим кнопку New Project , кликаем После клика мы видим окно с выбором шаблона проекта. Выбираем Minecraft, далее Spigot Plugin. Project SDK - это версия Java которую вы хотите выбрать для своего проекта, если это плагин ниже 1.12.2, то выбирайте 1.8, если это плагин выше, то выбирайте 11, в моём случае это 1.8 (Java 8). Next Далее видим, что нам предлагает вписать GroupId, ArtifactId и Version GroupId - путь ко всем вашим класс файлам плагина. ArtifactId - название плагина, лучше писать латинскими буквами (желательно без пробелов) Version - версия плагина Пример: Next Очень много разных значений, обьясню по порядку. Plugin Name - название плагина Main Class Name - путь к класс файлу плагина ( Лучше оставить как есть) Minecraft Version - версия майнкрафта Description - описание плагина (Можно оставить пустым) Authors - разработчики плагина (Можно оставить пустым) WebSite - сайт плагина (Можно оставить пустым) Log Prefix - префикс логгирования плагина в консоль (Можно оставить пустым, по умолчанию используется название плагина в качестве префикса) Load Before - загружать плагин после определённых плагинов (Лучше оставить пустым) Depend - зависимости плагина (Какие плагины обязательно требуются для работы нашего плагина, например Vault. Лучше оставить пустым, если вы не используете API других плагинов) Soft Depend - не обязательные зависимости плагина (Какие плагины необязательно требуются для работы нашего плагина) Next Project name - название проекта (можно оставить как есть) Project location - путь к проекту Finish 3 Этап. Написание плагина. Теперь мы перешли к написанию нашего плагина. Я напишу команду /grant для выдачи доната другому игроку. Открываю главный класс import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public final class TestPlugin extends JavaPlugin { @Override public void onEnable() { // Регистрируем команду /grant getCommand("grant").setExecutor((sender, command, label, args) -> { // Если у отправителя нету прав test.plugin.grant выводим сообщение с ошибкой if (!sender.hasPermission("testplugin.grant")) { sender.sendMessage("§7[§c§l!§7] §cУ вас недостаточно прав!"); // Завершаем выполнение return true; } if (args.length == 0 || args.length == 1) { // При вводе /grant отправляем сообщение // также с /grant (ник) ,так как не все аргументы учтены sender.sendMessage("§7[§c§l!§7] §c/grant (ник) (группа)"); return true; } // Аргумент 0 отвечает за строку игрока (ник) String player = args[0]; // Player (переменная) = Bukkit.getPlayer(player) - получаем переменную с игроков доступным на сервере Player target = Bukkit.getPlayer(player); String groupname = "Неизвестно"; String group = ""; // Если аргумент 1 (аргумент с группой) = premium, то if (args[1].equalsIgnoreCase("premium")) { // Перменная group = premium group = "premium"; // Переменная groupname = §3Premium groupname = "§3Premium"; } if (args[1].equalsIgnoreCase("vip")) { group = "vip"; groupname = "§6Vip"; } // Если игрок оффлайн, выводим сообщение и пытаемся выдать донат if (target == null) { sender.sendMessage(ChatColor.RED + "§7[§c§l!§7] §cДанный игрок не онлайн!"); sender.sendMessage(ChatColor.RED + "§7[§c§l!§7] §cПопытка выдачи привилегии..."); Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "lp user " + player + " parent add " + group); return true; } // Если аргумент 0 (ник игрока) совпадает с ником отправителя команды, выводим сообщение if (target.getName().equals(sender.getName())) { sender.sendMessage("§7[§c§l!§7] §cВы не можете выдать привилегию самому себе!"); return true; } // Если количество аргументов равняется 2 и аргумент с группой равняется vip или равняется premium и игрок не оффлайн, // то выполняем команду через консоль (lp user (ник) parent add (группа) if (args.length == 2 && args[1].equalsIgnoreCase("vip") || args[1].equalsIgnoreCase("premium") && target != null) { Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "lp user " + target.getName() + " parent add " + group); sender.sendMessage("§7[§c§l!§7] §aВы успешно выдали игроку §c" + target.getName() + " §aпривилегию " + groupname); target.sendMessage("§7[§c§l!§7] §aАдминистратор §d" + sender.getName() + " §aвыдал вам привилегию " + groupname); return true; } return true; }); } @Override public void onDisable() { } } Далее открываю plugin.yml и в конце файла пишу commands: grant: {} После всех манипуляций я могу спокойно скомпилировать свой плагин, для этого мне нужно справа сверху кликнуть на кнопку Maven И кликнуть на package И вуаля, мой плагин успешно скомпилировался. Теперь заходим в папку с проектом и видим папку target В ней и лежит мой готовый плагин На этом всё, спасибо за внимание!1 балл
-
снесите аккаунт особо одаренному
Bliker0109 отреагировал .minus за тема
модеры умоляю снести акк этому школоло @KekmaHahaha, заходит на посты и кидает какие то душевнобольные видео.1 балл -
Создай две задачи на время игры: 1. scoreboard objectives add kills playerKillCount 2. scoreboard objectives add game dummy Цикл: 1. scoreboard players set blue_kills game 0 2. scoreboard players operation blue_kills game += @a[team=Blue] kills 3. execute if score blue_kills game matches 40.. run say синие набрали 40 очков или больше 4. scoreboard players set red_kills game 0 5. coreboard players operation red_kills game += @a[team=Red] kills 6. execute if score red_kills game matches 40.. run say красные набрали 40 очков или больше1 балл
-
Отзывы пользователей сайта
4elovek_obiknovenii отреагировал GossamerStories за тема
С самого начала внешний вид почти не изменялся. Старое надодает. Ваши предложения? Просто "обновить" - понятие расплывчатое. Обновить его можно по-разному.1 балл -
да, что конкретно сейчас не устраивает?1 балл
-
1 балл
-
Отзывы пользователей сайта
ч1мпл отреагировал AndrewGreat за тема
Вот бы Вы были бы вежливыми и адекватными, было бы замечательно.1 балл -
Отзывы пользователей сайта
ч1мпл отреагировал GossamerStories за тема
Вот бы дизайн сайта обновили, и было бы замечательно1 балл -
1 балл
-
Здесь вас встретит дружелюбное и адекватное сообщество https://discord.gg/y5QxGYye Все остальное в дискорде!0 баллов
-
НЕ Аниме убивает ваш мозг!
Райя-Прайм mk2 отреагировал THAUMCRAFTER за тема
НЕ АНИМЕ убивает ваш мозг Всего 10 секунд без АНИМЕ достаточно что бы получить повреждение мозга Исключение составляют сон и другие перерывы на необходимые потребности За 1 минуту без АНИМЕ гибнет более 100 клеток мозга Берегите себя! Смотрите АНИМЕ! и помните НЕ АНИМЕ УБИВАЕТ ВАШ МОЗГ!-1 балл
