deleted.user
Мошенник
- 321
- 43
Привет всем. Начал делать пакетную систему, вроде бы все хорошо, но вот запара - просит повсюду метод onMessage(REQ, side). Хотя по идее не должен, если я ничего не упустил. Вот пара классов, собственно:
И код пакета:
Что я делаю не так и почему IDE просит добавить метод onMessage?
Java:
public abstract class AbstractMessage implements IMessage, IMessageHandler {
protected abstract void read(PacketBuffer var1) throws IOException;
protected abstract void write(PacketBuffer var1) throws IOException;
public abstract void process(EntityPlayer var1, Side var2);
protected boolean isValidOnSide(Side side) {
return true;
}
public void fromBytes(ByteBuf buffer) {
try {
this.read(new PacketBuffer(buffer));
} catch (IOException var3) {
throw Throwables.propagate(var3);
}
}
public void toBytes(ByteBuf buffer) {
try {
this.write(new PacketBuffer(buffer));
} catch (IOException var3) {
throw Throwables.propagate(var3);
}
}
public final IMessage onMessage(AbstractMessage msg, MessageContext ctx) {
if(!msg.isValidOnSide(ctx.side)) {
throw new RuntimeException("Invalid side " + ctx.side.name() + " for " + msg.getClass().getSimpleName());
} else {
msg.process(ModMain.proxy.getPlayerEntity(ctx), ctx.side);
return null;
}
}
public abstract static class AbstractClientMessage extends AbstractMessage {
protected final boolean isValidOnSide(Side side) {
return side.isClient();
}
}
public abstract static class AbstractServerMessage extends AbstractMessage {
protected final boolean isValidOnSide(Side side) {
return side.isServer();
}
}
}
И код пакета:
Java:
public class OpenGuiMessage extends AbstractMessage.AbstractServerMessage {
private int id;
public OpenGuiMessage() {}
public OpenGuiMessage(int id) {
this.id = id;
}
protected void read(PacketBuffer buffer) {
this.id = buffer.readInt();
}
protected void write(PacketBuffer buffer) {
buffer.writeInt(this.id);
}
@Override
public void process(EntityPlayer player, Side side) {
player.openGui(ModMain.mod, this.id, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
}
Что я делаю не так и почему IDE просит добавить метод onMessage?