Salut, j'ai pour objectif de finir un mod permettant de communiquer avec un téléphone. Je suis bloqué à la partie SMS sur un petit soucis que je n'arrive pas à localiser.
Premièrement, je suis désolé de l'ancienneté de la version (1.7.10), mais c'est pour aider un serveur qui a l'air
sérieux.
Pour résumer le problème, lorsque j'envoie un SMS, donc mon Packet, le client qui l'envoie se fait déconnecter. "disconnected from server".
Mais je pense qu'il y a quelque chose d'indésirable qui fait planter le truc.
Code (java):
public class NetworkHandler
{
private static SimpleNetworkWrapper INSTANCE;
public static void init()
{
INSTANCE = NetworkRegistry.INSTANCE.newSimpleChannel("phone");
INSTANCE.registerMessage(MessageIncomeCalling.class, MessageIncomeCalling.class, 0, Side.CLIENT);
INSTANCE.registerMessage(MessageIncomeCalling.class, MessageIncomeCalling.class, 0, Side.SERVER);
INSTANCE.registerMessage(MessageReceivedCall.class, MessageReceivedCall.class, 1, Side.CLIENT);
INSTANCE.registerMessage(MessageReceivedCall.class, MessageReceivedCall.class, 1, Side.SERVER);
INSTANCE.registerMessage(MessageConfigSync.class, MessageConfigSync.class, 3, Side.CLIENT);
INSTANCE.registerMessage(MessageClosePlayer.class, MessageClosePlayer.class, 4, Side.CLIENT);
INSTANCE.registerMessage(MessageBlacklist.class, MessageBlacklist.class, 6, Side.SERVER);
INSTANCE.registerMessage(MessageContacts.class, MessageContacts.class, 7, Side.SERVER);
INSTANCE.registerMessage(MessageSmsReader.class, MessageSmsReader.class, 9, Side.SERVER);
INSTANCE.registerMessage(SmsIncome.class, SmsIncome.class, 8, Side.CLIENT);
INSTANCE.registerMessage(SmsIncome.class, SmsIncome.class, 8, Side.SERVER);
}
public static void sendToServer(IMessage message)
{
INSTANCE.sendToServer(message);
}
Code (java):
public abstract class MessageBase<REQ extends IMessage> implements IMessage, IMessageHandler<REQ, REQ>
{
public REQ onMessage(REQ message, MessageContext ctx)
{
if (ctx.side == Side.SERVER)
handleServerSide(message, ctx.getServerHandler().playerEntity);
else
handleClientSide(message, phone.proxy.getClientPlayer());
return null;
}
Lorsque l'on envoie le packet:
Code (java):
NetworkHandler.sendToServer(new SmsIncome(integer,sms,parseInt,thePlayer.getCurrentEquippedItem().stackTagCompound));
Code (java):
public class SmsIncome
extends MessageBase
<SmsIncome
>
{
private int numEnvoyeur
;
private int numReceveur
;
private String sms
;
public SmsIncome
() {}
public SmsIncome
(int numEnvoyeur,
String sms,
int numReceveur, NBTTagCompound stackTagCompound
) {
this.
sms = sms
;
this.
numEnvoyeur = numEnvoyeur
;
this.
numReceveur = numReceveur
;
}
@Override
public void toBytes
(ByteBuf buf
) {
ByteBufUtils.
writeUTF8String(buf,
this.
sms);
buf.
writeInt(numEnvoyeur
);
buf.
writeInt(numReceveur
);
}
@Override
public void fromBytes
(ByteBuf buf
) {
this.
sms = ByteBufUtils.
readUTF8String(buf
);
this.
numEnvoyeur = buf.
readInt();
this.
numReceveur = buf.
readInt();
System.
out.
println(buf.
toString()+" 2");
}
Si vous avez des pistes pour m'aider je vous remercie !