depend: [ModToPlugin]
NetworkRegistry.INSTANCE.newSimpleChannel("Тут имя канала");
public class XXX extends JavaPlugin implements ToPlugin {
public static XXX instance;
List<PacketBridge> bridges = new ArrayList<>(); // Не обязательно, но так мы экономим ресурсы процессора сервера
@Override
public void onEnable() {
instance = this;
bridges.add(new НАШ_ПАКЕТ()); // Заполним позже
MTP.registerPort(this); // Обязательно, это зарегистрирует нас как ToPlugin
}
@Override
public void onDisable() {
instance = null; // Вырубаем
MTP.unregisterPort(this); // Разрегистрируемся для корректного отключения(Может вы захотите использовать менеджер плагинов)
bridges.clear();
}
@Override
public List<PacketBridge> getBridges() {
return bridges;
}
@Override
public String getChannel() {
return "НАШ_КАНАЛ"; // ВАЖНО: Здесь заполняем канал для связи с модом
}
}
ПЕРЕМЕННАЯ_КАНАЛА_МОЖЕТ_БЫТЬ_РАЗНОЙ.registerMessage(A.class, A.class, 0, Side.SERVER);
public class A implements IMessageHandler<A, IMessage> {
public A() {
}
@Override
public void fromBytes(ByteBuf buf) {
// Тут будет метод в оригинале
}
@Override
public IMessage onMessage(A packet, MessageContext ctx) {
// Тут будет обработка сообщения
return null;
}
@Override
public void toBytes(ByteBuf buf) {
// Тут будет метод в оригинале
}
}
@Override
public IMessage onMessage(A packet, MessageContext ctx) {
// Тут будет обработка сообщения
return null;
}
@Override
public void handlePacket(PacketBridge arg0, Player player) {
A packet = (A) arg0;
// Меняем ctx.getServerHandler().player => player
// Если нужно отправить новый пакет: MTP.sendPacket(player, new ТУТ_ПАКЕТ(АРГУМЕНТЫ));
// sendToAll => for (Player p : Bukkit.getOnlinePlayers()) MTP.sendPacket(p, ПАКЕТ);
}
public class A extends PacketBridge {
public A() {
}
@Override
public void fromBytes(ByteBuf buf) {
// Тут будет метод в оригинале
}
@Override
public void handlePacket(PacketBridge arg0, Player player) {
A packet = (A) arg0;
// Меняем ctx.getServerHandler().player => player
// Если нужно отправить новый пакет: MTP.sendPacket(player, new ТУТ_ПАКЕТ(АРГУМЕНТЫ));
// sendToAll => for (Player p : Bukkit.getOnlinePlayers()) MTP.sendPacket(p, ПАКЕТ);
}
@Override
public void toBytes(ByteBuf buf) {
// Тут будет метод в оригинале
}
@Override
public byte getId() {
return 0; // Тут id, который мы узнали из регистрации сообщения
}
@Override
public Side getSide() {
return Side.SERVER; // Сторона
}
}
Рейтинг
Действия
Просмотры
9 206
Комментарии
5
Опубликовано
10-09-2017, 10:09
Категории
Информация | |
Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию. |
Тема в разделе: Флудильня
Просмотров: 2604
Ответов: 18
Тема в разделе: Ваши вопросы по Minecraft
Просмотров: 151
Ответов: 6
Тема в разделе: Флудильня
Просмотров: 141170
Ответов: 679
Тема в разделе: Флудильня
Просмотров: 237
Ответов: 1