Hello, today I tried adding the grand exchange, code was given to me by a friend, and everything works fine until I hit "Confirm Offer" in the buy or sell interface of G.E. I get this error:
Code:
ERROR! THREAD NAME: New I/O worker #1
java.lang.NullPointerException
at com.feather.game.grandexchange.GrandExchange.offerOffer(GrandExchange.java:389)
at com.feather.game.grandexchange.GrandExchange.handleButtons(GrandExchange.java:125)
at com.feather.net.decoders.handlers.ButtonHandler.handleButtons(ButtonHandler.java:112)
at com.feather.net.decoders.WorldPacketsDecoder.processPackets(WorldPacketsDecoder.java:1254)
at com.feather.net.decoders.WorldPacketsDecoder.decode(WorldPacketsDecoder.java:280)
at com.feather.net.ServerChannelHandler.messageReceived(ServerChannelHandler.java:98)
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:95)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:558)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:91)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
And I this is the method where it says the error is occuring at (bolded and colored where I believe the error is occuring at).:
Code:
public static void offerOffer(Player player) {
if (player.geBox >= 0 && player.geBox <= player.getOfferSet().offers.length) {
if (player.getOfferSet().offers[player.geBox] != null)
return;
}
if ((player.gePrice * player.geAmount) > Integer.MAX_VALUE) {
return;
}
if (player.gePrice <= 0) {
player.getPackets().sendGameMessage("You can't buy/sell an item for free!");
return;
}
if (player.geAmount <= 0) {
player.getPackets().sendGameMessage("You can't buy/sell zero of an item!");
return;
}
if (player.geItemId <= 0) {
player.getPackets().sendGameMessage("Choose an item to buy/sell first.");
return;
}
if (player.geBuying) {
if (player.geTotalPrice >= Integer.MAX_VALUE)
return;
if (player.geTotalPrice <= 0)
return;
player.geAwaitingBuy = new Item(player.geItemId, player.geAmount);
if (player.geAwaitingBuy == null || player.geAwaitingBuy.getId() < 0 || player.geAwaitingBuy.getAmount() < 0) {
player.getPackets().sendGameMessage("Error generating bought item. Please try again.");
return;
}
if (player.getInventory().containsItem(995, player.geTotalPrice)) {
player.getInventory().deleteItem(995, player.geTotalPrice);
Offer offer = new Offer(player.getUsername(), player.geBox, player.geAwaitingBuy.getId(), player.geAwaitingBuy.getAmount(), player.gePrice, OfferType.BUY);
player.setGrandExchangeOffer(offer, player.geBox);
GrandExchangeDatabase.updateOfferSet(player.getUsername(), player.getOfferSet(), true);
} else {
player.getPackets().sendGameMessage("You don't have enough coins to buy that many.");
return;
}
} else {
player.geAwaitingSell = new Item(player.geItemId, player.geAmount);
if (player.geAwaitingSell == null || player.geAwaitingSell.getId() < 0 || player.geAwaitingSell.getAmount() < 0) {
player.getPackets().sendGameMessage("Error generating sold item. Please try again.");
return;
}
if (player.geNoteId == -1) {
if (player.getInventory().containsItem(player.geAwaitingSell.getId(), player.geAwaitingSell.getAmount())) {
Offer offer = new Offer(player.getUsername(), player.geBox, player.geAwaitingSell.getId(), player.geAwaitingSell.getAmount(), player.gePrice, OfferType.SELL);
player.getInventory().deleteItem(player.geAwaitingSell.getId(), player.geAwaitingSell.getAmount());
player.setGrandExchangeOffer(offer, player.geBox);
GrandExchangeDatabase.updateOfferSet(player.getUsername(), player.getOfferSet(), true);
} else {
player.getPackets().sendGameMessage("You don't have enough of that item to sell.");
return;
}
} else {
if (player.getInventory().containsItem(player.geNoteId, player.geAwaitingSell.getAmount())) {
Offer offer = new Offer(player.getUsername(), player.geBox, player.geAwaitingSell.getId(), player.geAwaitingSell.getAmount(), player.gePrice, OfferType.SELL);
player.getInventory().deleteItem(player.geNoteId, player.geAwaitingSell.getAmount());
player.setGrandExchangeOffer(offer, player.geBox);
GrandExchangeDatabase.updateOfferSet(player.getUsername(), player.getOfferSet(), true);
} else {
player.getPackets().sendGameMessage("You don't have enough of that item to sell.");
return;
}
}
}
open(player);
updateGrandExchangeBoxes(player);
}
I tried everything to fix the error, but it didn't work. If anyone could help it would be much appreciated! I also have no errors in the code. If you would like to look at any additional code let me know and I'll post it :/