Sending packets from Forge to Bukkit

Discussion in 'Plugin Development' started by olie304, Apr 17, 2017.

Thread Status:
Not open for further replies.
  1. Offline

    olie304

    Hello everyone, I have been trying to send packets from my forge mod to my Bukkit plugin. (I believe the plugin part is causing problems because mod to mod communication is fine). Upon sending the message I receive the following error from the server,
    Code:
    [16:25:30 INFO]: olie304[/127.0.0.1:5368] logged in with entity id 343 at ([world] -249.6132333257622, 70.5722808257757, 254.3598988978875)
    [16:25:32 WARN]: Failed to handle packet for /127.0.0.1:5368
    java.lang.IllegalStateException: java.io.EOFException
            at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readUTF(ByteStreams.java:408) ~[bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at com.olie.test.Test.onPluginMessageReceived(Test.java:288) ~[?:?]
            at org.bukkit.plugin.messaging.StandardMessenger.dispatchIncomingMessage(StandardMessenger.java:424) ~[bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:1838) ~[bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.PacketPlayInCustomPayload.a(PacketPlayInCustomPayload.java:31) ~[bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.PacketPlayInCustomPayload.handle(PacketPlayInCustomPayload.java:43) ~[bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:157) ~[bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:667) [bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:258) [bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558) [bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469) [bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
    Caused by: java.io.EOFException
            at java.io.DataInputStream.readFully(Unknown Source) ~[?:1.8.0_101]
            at java.io.DataInputStream.readUTF(Unknown Source) ~[?:1.8.0_101]
            at java.io.DataInputStream.readUTF(Unknown Source) ~[?:1.8.0_101]
            at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readUTF(ByteStreams.java:406) ~[bukkit.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
            ... 12 more
    [16:25:32 INFO]: olie304 lost connection: Internal server error
    [16:25:32 INFO]: olie304 left the game.
    This is the code for the plugin:
    Code:
    public void onEnable(){
            this.getServer().getMessenger().registerIncomingPluginChannel(this, "genericChannel", this);
    
    Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }
    
    @Override
        public void onPluginMessageReceived(String channel, Player player, byte[] message) {
          if (!channel.equals("genericChannel")) {
            return;
          }
          ByteArrayDataInput in = ByteStreams.newDataInput(message);
          String subchannel = in.readUTF();
          System.out.println("No errors plz");
          System.out.println(in.readUTF() + "******************************************");
          if (subchannel.equals("extraChannel")) {
          }
        }
    And this is the code from the mod:
    Code:
    Message Class (MyMessage.java):
    
    public MyMessage() { }
    
          private String testText;
          public MyMessage(String string) {
            this.setTestText(string);
          }
    
          @Override
            public void fromBytes(ByteBuf buf) {
                testText = ByteBufUtils.readUTF8String(buf);
            }
    
            @Override
            public void toBytes(ByteBuf buf) {
                ByteBufUtils.writeUTF8String(buf, testText);
            }
    
        public String getTestText() {
            return testText;
        }
    
        public void setTestText(String string) {
            this.testText = string;
        }
    
    
    
    Message Handler class (MyMessageHandler):
    
    
    @Override public IMessage onMessage(MyMessage message, MessageContext ctx) {
        String text = message.getTestText();
    
        return null;
      }
    
    
    
    Sender Class:
    
    
    Main.INSTANCE.sendToServer(new MyMessage("HI"));
    
    
    
    Main Class:
    
    
    public static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE.newSimpleChannel("genericChannel");
    
    public void init(FMLInitializationEvent event) {
    
    INSTANCE.registerMessage(MyMessageHandler.class, MyMessage.class, '\n', Side.SERVER);
    }
    Thanks.
     
    Last edited: Apr 17, 2017
  2. Offline

    timtower Administrator Administrator Moderator

    Locled
    Modded servers are not supported by Bukkit
     
Thread Status:
Not open for further replies.

Share This Page