Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Чтение отправленного пакета

Discussion in 'Разработка плагинов для новичков' started by Mihael_i, Nov 12, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    Mihael_i

    Mihael_i Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    Mihael_i
    Здравствуйте, мне нужно с помощью плагина отправить пакет и принять и обработать его в моде.
    Для отправки пакета я собираюсь использовать следующий метод:
    Code:
    String text = "Hello from plugin";
    player.sendPluginMessage(this, "mychannel", text.getBytes());
    
    Но я не нашел, как получить и обработать его на стороне мода(с помощью
    FMLNetworkEvent.ClientCustomPacketEvent event).
    Подскажите, если кто-нибудь знает. Желательно, с примером.
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    Mihael_i

    Mihael_i Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    Mihael_i
    Нашел вот такое решение, но когда я пишу @NetworkMod оно подчеркивает красным, та же ситуация с IPacketHandler
    Версия, под которую делаю мод- 1.8.8
    Код пишу в IntelliJ IDEA
    [DOUBLEPOST=1478979944,1478975671][/DOUBLEPOST]Проблему решил:
    В версии 1.8 принимать данные надо с помощью
    Code:
    @SubscribeEvent
        public void onClientPacket(FMLNetworkEvent.ClientCustomPacketEvent event) {
            System.out.println("ПАКЕТ ПОЛУЧЕН!");
            money = 100 + "";
        }
    
    Перед этим зарегистрировав название пакета:
    Code:
    @EventHandler
        public void init(FMLInitializationEvent event)
        {
            MinecraftForge.EVENT_BUS.register(this);
            FMLEventChannel ch = NetworkRegistry.INSTANCE.newEventDrivenChannel("balance");
            ch.register((Object)this);
        }
    
    На стороне сервера в плагине надо зарегистрировать пакет с помощью
    Code:
     
    Bukkit.getMessenger().registerOutgoingPluginChannel(this, "НАЗВАНИЕ_ПАКЕТА");
    
    И отправлять пакет с помощью метода:
    Code:
    String s = "Hello";
    e.getPlayer().sendPluginMessage(this, "НАЗВАНИЕ_ПАКЕТА", s.getBytes());
    
     
    Last edited: Nov 12, 2016
Thread Status:
Not open for further replies.

Share This Page