[PI]ItemOnPlayer crashes when used.
Well when ever I try to use any sort of item on any sort of player, no matter what rank my client disconnects and reconnects to the server? I've included both packets 14 and 199 in the PacketHandler.java but I just can't seem to figure this out.
This is my ItemOnPlayer.java code,
Code:
package server.model.players.packets;
import server.Server;
import server.model.players.Client;
import server.model.players.PacketType;
import server.util.Misc;
/**
* @author Anonymoose.
*/
public class ItemOnPlayer implements PacketType {
@Override
public void processPacket(Client c, int packetType, int packetSize) {
int playerId = c.inStream.readUnsignedWord();
int itemId = c.playerItems[c.inStream.readSignedWordBigEndian()] - 1;
switch (itemId) {
case 962:
handleCrackers(c, itemId, playerId);
break;
default:
c.sendMessage("Nothing interesting happens.");
break;
}
}
private void handleCrackers(Client c, int itemId, int playerId) {
Client usedOn = (Client) Server.playerHandler.players[playerId];
if (!c.getItems().playerHasItem(itemId))
return;
if (usedOn.getItems().freeSlots() < 1) {
c.sendMessage("The other player doesn't have enough inventory space!");
return;
}
c.sendMessage("You crack the cracker...");
c.getItems().deleteItem(itemId, 1);
if (Misc.random(1) == 0) {
c.getItems().addItem(getRandomPhat(), 1);
c.sendMessage("You got the prize!");
usedOn.sendMessage("You didn't get the prize.");
} else {
usedOn.getItems().addItem(getRandomPhat(), 1);
usedOn.sendMessage("You got the prize!");
c.sendMessage("You didn't get the prize.");
}
}
private int getRandomPhat() {
int[] phats = { 1038, 1040, 1042, 1044, 1048 };
return phats[(int) Math.floor(Math.random() * phats.length)];
}
}
Error code I'm receiving in my server .BAT while it's running.
Code:
[7/18/13 2:24 AM]: [REGISTERED]: Perfs
[7/18/13 2:26 AM]: Auto-Saving for Test
[7/18/13 2:26 AM]: Auto-Saving for Perfs
[7/18/13 2:27 AM]: System resources cleaned
[7/18/13 2:28 AM]: Perfsis sending invalid PacketType: 14. PacketSize: 8
[7/18/13 2:28 AM]: Perfsis sending invalid PacketType: 199. PacketSize: 0
[7/18/13 2:28 AM]: Game saved for player Perfs
[7/18/13 2:28 AM]: [DEREGISTERED]: Perfs
[7/18/13 2:28 AM]: Connection Problem
[7/18/13 2:28 AM]: java.lang.Exception: connection is null
[7/18/13 2:28 AM]: at server.util.SQL.getConnection(SQL.java:51)
[7/18/13 2:28 AM]: at server.util.SQL.checkStatus(SQL.java:67)
[7/18/13 2:28 AM]: at server.model.players.Client.initialize(Client.java:13
80)
[7/18/13 2:28 AM]: at server.model.players.PlayerHandler.process(PlayerHand
ler.java:224)
[7/18/13 2:28 AM]: at server.task.impl.ProcessPlayerHandler$1.run(ProcessPl
ayerHandler.java:15)
[7/18/13 2:28 AM]: at server.GameEngine$4.run(GameEngine.java:161)
[7/18/13 2:28 AM]: at java.util.concurrent.Executors$RunnableAdapter.call(U
nknown Source)
[7/18/13 2:28 AM]: at java.util.concurrent.FutureTask$Sync.innerRun(Unknown
Source)
[7/18/13 2:28 AM]: at java.util.concurrent.FutureTask.run(Unknown Source)
[7/18/13 2:28 AM]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unk
nown Source)
[7/18/13 2:28 AM]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Un
known Source)
[7/18/13 2:28 AM]: at java.lang.Thread.run(Unknown Source)
[7/18/13 2:28 AM]: [REGISTERED]: Perfs
I'm also adding Christmas crackers, but this has been happening even before I tried adding them.:penguin: