- Баллы
- 76
- Имя в Minecraft
- _Andoroid_
BungeeCord — это прокси написанный md_5 и командой SpigotMC, который позволяет соединить несколько серверов Minecraft в один.
Создание плагинов под Spigot и информацию о Java можно найти тут. Если вы разберётесь в этом, с BungeeCord будет очено просто.
Для создания плагинов используется API из ядра BungeeCord.
После создания пакетов, класов и импортирования библиотек BungeeCord мы можем начинать.
Часть 1. Основы.
Наш главный клас должен наследоватся от Plugin:
Методы теже что и в CraftBukkit: onEnable, onDisable, onLoad:
Часть 2. Работа с конфигами.
В BungeeCord нет getConfig или FileConfiguration. Но есть альтернатива.
Создадим наш файл.
Альтернативой для FileConfiguration есть Configuration.
Вот пример создания Configuration:
Но он требует обработки IOExeption.
И того у нас есть:
А также Configuration должен быть импортирован именно так:
а не так:
Часть 3. Ивенты.
Создадим новый клас для работы с ивентами. Пусть это будет "Events". В главном класе зарегистрируем ивенты.
Список ивентов для BungeeCord (думаю название говорит само за себя):
Сделаем так, чтобы игрока кикало при подключении если его ник содержит в себе слово admin.
Часть 4. Перенаправление игрока.
Тут мы рассмотрим как перекидывать игрока между серверами.
Сделаем так чтобы при заходе игрока кидало на сервер survival обходя авторизацию если его ник имеет букву B а также его IP это 127.0.0.1. Никогда не используйте это для защиты аккаунта админитратора.
В след. частях я раскажу как создавать команды.
В тексте могут быть ошибки! Слабонервным не смотреть!
Информацию взято с https://www.spigotmc.org/wiki/bungeecord-plugin-development/
Создание плагинов под Spigot и информацию о Java можно найти тут. Если вы разберётесь в этом, с BungeeCord будет очено просто.
Для создания плагинов используется API из ядра BungeeCord.
После создания пакетов, класов и импортирования библиотек BungeeCord мы можем начинать.
Часть 1. Основы.
Наш главный клас должен наследоватся от Plugin:
PHP:
package ua.andoroid.testbungee;
import net.md_5.bungee.api.plugin.Plugin;
public class Main extends Plugin{
}
Методы теже что и в CraftBukkit: onEnable, onDisable, onLoad:
PHP:
package ua.andoroid.testbungee;
import net.md_5.bungee.api.plugin.Plugin;
public class Main extends Plugin{
@Override
public void onEnable() {
}
@Override
public void onDisable() {
}
@Override
public void onLoad() {
}
}
Часть 2. Работа с конфигами.
В BungeeCord нет getConfig или FileConfiguration. Но есть альтернатива.
Создадим наш файл.
PHP:
File configFile = new File(getDataFolder(), "config.yml");
Альтернативой для FileConfiguration есть Configuration.
Вот пример создания Configuration:
PHP:
Configuration configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile);
И того у нас есть:
PHP:
package ua.andoroid.testbungee;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
import java.io.File;
import java.io.IOException;
public class Main extends Plugin{
public static File configFile;
public static Configuration configuration;
@Override
public void onEnable(){
configLoad();
}
private void configLoad() {
try {
configFile = new File(getDataFolder(), "config.yml");
if (!configFile.exists()) {
configFile.createNewFile();
}
configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile);
} catch (IOException ex){
getLogger().info("Could not create config!");
}
}
}
А также Configuration должен быть импортирован именно так:
PHP:
import net.md_5.bungee.config.Configuration;
PHP:
import net.md_5.bungee.conf.Configuration;
Часть 3. Ивенты.
Создадим новый клас для работы с ивентами. Пусть это будет "Events". В главном класе зарегистрируем ивенты.
PHP:
getProxy().getPluginManager().registerListener(this, new Events());
Список ивентов для BungeeCord (думаю название говорит само за себя):
- AsyncEvent
- ChatEvent
- LoginEvent
- PermissionCheckEvent
- PlayerDisconnectEvent
- PlayerHandshakeEvent
- PluginMessageEvent
- PostLoginEvent
- PreLoginEvent
- ProxyPingEvent
- ProxyReloadEvent
- ServerConnectedEvent
- ServerConnectEvent
- ServerDisconnectEvent
- ServerKickEvent
- ServerSwitchEvent
- SettingsChangedEvent
- TabCompleteEvent
- TabCompleteResponseEvent
- TargetedEvent
Сделаем так, чтобы игрока кикало при подключении если его ник содержит в себе слово admin.
PHP:
package ua.andoroid.testbungee;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.event.PostLoginEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
public class Events implements Listener {
@EventHandler
public void onJoin(PostLoginEvent e){
if(e.getPlayer().getName().contains("admin")){
TextComponent component = new TextComponent("Ваш ник содержит слово \"admin\"");
e.getPlayer().disconnect(component);
}
}
}
Часть 4. Перенаправление игрока.
Тут мы рассмотрим как перекидывать игрока между серверами.
Сделаем так чтобы при заходе игрока кидало на сервер survival обходя авторизацию если его ник имеет букву B а также его IP это 127.0.0.1. Никогда не используйте это для защиты аккаунта админитратора.
PHP:
package ua.andoroid.testbungee;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.event.PostLoginEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
public class Events implements Listener {
private static Main pl = Main.plugin;
@EventHandler
public void onJoin(PostLoginEvent e){
String playerIP = e.getPlayer().getAddress().getAddress().getHostAddress();
if(playerIP.equalsIgnoreCase("127.0.0.1") && e.getPlayer.getName.contains("B"){
ServerInfo serverInfo = pl.getProxy().getServerInfo("survival");
e.getPlayer().connect(serverInfo);
}
}
}
В след. частях я раскажу как создавать команды.
В тексте могут быть ошибки! Слабонервным не смотреть!
Информацию взято с https://www.spigotmc.org/wiki/bungeecord-plugin-development/
Последнее редактирование: