Thread: [718] nullpointerexception help

Results 1 to 5 of 5
  1. #1 [718] nullpointerexception help 
    Registered Member
    Join Date
    May 2012
    Posts
    23
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    Hello i am currently coding the grand exchange into my server. Currently I've added everything and ge pops up and works. it searches and finds items and interfaces work. But when you try to sell something and you click the item you get the error below
    Code:
    java.lang.NullPointerException
            at com.rs.content.exchange.ExchangeHandler.sendSellItem(ExchangeHandler.
    java:561)
            at com.rs.net.decoders.handlers.ButtonHandler.handleButtons(ButtonHandle
    r.java:228)
            at com.rs.net.decoders.WorldPacketsDecoder.processPackets(WorldPacketsDe
    coder.java:1279)
            at com.rs.net.decoders.WorldPacketsDecoder.decode(WorldPacketsDecoder.ja
    va:303)
            at com.rs.net.ServerChannelHandler.messageReceived(ServerChannelHandler.
    java:98)
            at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleCha
    nnelHandler.java:88)
            at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultCh
    annelPipeline.java:564)
            at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultCh
    annelPipeline.java:559)
            at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:26
    8)
            at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:25
    5)
            at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
            at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(Abstract
    NioWorker.java:107)
            at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNi
    oSelector.java:312)
            at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioW
    orker.java:88)
            at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
            at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnabl
    e.java:108)
            at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProof
    Worker.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)
    Terminate batch job (Y/N)?
    This is my exhchangehandler.java

    Code:
    package com.rs.content.exchange;
    
    
    
    import java.io.IOException;
    
    import com.rs.cache.loaders.ItemDefinitions;
    import com.rs.cache.loaders.ItemDefinitions.FileUtilities;
    import com.rs.content.exchange.ItemOffer.OfferType;
    import com.rs.game.item.Item;
    import com.rs.game.player.Player;
    import com.rs.game.player.content.ItemConstants;
    import com.rs.utils.ItemExamines;
    import com.rs.utils.Utils;
    
    
    public class ExchangeHandler {
    
    
    
    	public static boolean handleButtons(final Player player, final int interfaceId, final int buttonId) {
    
    		final ItemOffer offer;
    
    		switch(interfaceId) {
    
    		case 105:
    
    			switch(buttonId) {
    
    			/*
    
    			 * Selling Button Ids
    
    			 */
    
    			case 32:
    
    			case 48:
    
    			case 64:
    
    			case 83:
    
    			case 102:
    
    			case 121:
    
    				player.offerType = OfferType.SELL;
    
    				player.setGESlot(getSlot(buttonId));
    
    				resetInterfaceConfigs(player);
    
    				player.getPackets().sendConfig(1113, 1);
    
    				player.getInterfaceManager().sendInventoryInterface(107);
    
    				final Object[] params = new Object[]{ "", "", "", "", "Offer", -1, 0, 7, 4, 93, 7012370 };
    
    				player.getPackets().sendRunScript(149, params);
    
    				player.getPackets().sendItems(93, player.getInventory().getItems());
    
    				player.getPackets().sendHideIComponent(107, 0, false);		
    
    				player.getPackets().sendIComponentSettings(107, 18, 0, 27, 1026);
    
    				int slot2 = getSlot(buttonId);
    
    				player.getPackets().sendConfig(1112, slot2);
    
    				player.getPackets().sendHideIComponent(105, 196, true);
    
    				return true;
    
    				/*
    
    				 * Buying Button Ids
    
    				 */
    
    			case 31:
    
    			case 47:
    
    			case 63:
    
    			case 82:
    
    			case 101:
    
    			case 120:
    
    				player.getTemporaryAttributtes().put("grand_exchange_buying", true);
    
    				resetInterfaceConfigs(player);
    
    				searchScript(player);
    
    				player.offerType = OfferType.BUY;
    
    				player.setGESlot(getSlot(buttonId));
    
    				return true;
    
    			case 190:
    
    				searchScript(player);
    
    				return true;
    
    			case 186:
    
    				offer = player.getGeOffers()[player.getGESlot()];
    
    				try {
    
    					for (String lines : FileUtilities.readFile("./data/items/grand_exchange/unbuyables.txt")) {
    
    						String[] data = lines.split(" ");
    
    						Item item = new Item(offer.getId());
    
    						if (item.getDefinitions().getName().toLowerCase().contains(Utils.getCompleted(data, 0))) {
    
    							player.getDialogueManager().startDialogue("SimpleMessage", "You can only buy or sell " + item.getDefinitions().getName() + "s with other players.");
    
    							return true;
    
    						}
    
    					}
    
    				} catch (IOException e) {
    
    					e.printStackTrace();
    
    				}
    				try {
    
    					for (String lines : FileUtilities.readFile("./data/items/grand_exchange/donator.txt")) {
    
    						String[] data = lines.split(" ");
    
    						Item item = new Item(offer.getId());
    
    						if (item.getDefinitions().getName().toLowerCase().contains(Utils.getCompleted(data, 0))) {
    if(player.isDonator() == true) {
    }
    
    if(player.isDonator() == false) {
    							player.getDialogueManager().startDialogue("SimpleMessage", "This " + item.getDefinitions().getName() + " is donator only");
    
    							return true;
    
    						}
    					}
    					}
    
    				} catch (IOException e) {
    
    					e.printStackTrace();
    
    				}
    				if (offer.getPrice() * offer.getAmount() > Integer.MAX_VALUE ||
    
    						offer.getPrice() * offer.getAmount() == Integer.MAX_VALUE ||
    
    						offer.getPrice() * offer.getAmount() >= Integer.MAX_VALUE ||
    
    						offer.getPrice() * offer.getAmount() < 0) {
    
    					player.getPackets().sendGameMessage("The price of the item is too high!");
    
    					return true;
    
    				}
    
    				if (offer.getPrice() == 0 || offer.getAmount() == 0 || offer.getPrice() * offer.getAmount() == 0) {
    
    					player.getPackets().sendGameMessage("Invalid amount.");
    
    					return true;
    
    				}
    
    				int coins = player.getInventory().getItems().getNumberOf(995);
    
    				if (coins < offer.getAmount() * offer.getPrice() && offer.getType() == OfferType.BUY) {
    
    					player.getPackets().sendGameMessage("You do not have enough coins to purchase this item.");
    
    					return true;
    
    				}
    
    				if (offer.getType() == OfferType.SELL && offer.getAmount() > player.getInventory().getItems().getNumberOf(offer.getId())) {
    
    					player.getPackets().sendGameMessage("You do not have enough of that item to sell.");
    
    					return true;
    
    				}
    
    				if (offer.getType() == OfferType.BUY) {
    
    					player.getInventory().deleteItem(new Item(995, offer.getPrice() * offer.getAmount()));
    
    					if (player.getInventory().getFreeSlots() < offer.getAmount() && ItemDefinitions.getItemDefinitions(offer.getId()).getCertId() != -1) {
    
    						offer.setId(ItemDefinitions.getItemDefinitions(offer.getId()).getCertId());
    
    					}
    
    					player.getInventory().addItem(offer.getId(), offer.getAmount());
    
    				} else {
    
    					player.getInventory().deleteItem(new Item(offer.getId(), offer.getAmount()));
    
    					player.getInventory().addItem(new Item(995, offer.getPrice() * offer.getAmount()));
    
    				} 
    
    				mainInterface(player);
    
    				if (!GrandExchange.getOffers().contains(offer)) {
    
    					GrandExchange.getOffers().add(offer);
    
    				player.getPackets().sendGameMessage("One or more of your Grand Exchange offers have been completed.");
    
    				break;
    				}
    			case 128:
    
    				resetInterfaceConfigs(player);
    
    				if (player.offerType.equals(OfferType.SELL)) 
    
    					player.getInterfaceManager().sendInventory();
    
    				else
    
    					player.getPackets().sendRunScript(573);
    
    				break;
    
    			case 157:
    
    			case 160:
    
    				offer = player.getGeOffers()[player.getGESlot()];
    
    				offer.increase();
    
    				player.getPackets().sendConfig(1110, offer.getAmount());
    
    				break;
    
    			case 155:
    
    				offer = player.getGeOffers()[player.getGESlot()];
    
    				offer.decrease();
    
    				player.getPackets().sendConfig(1110, offer.getAmount());
    
    				break;
    
    			case 162:
    
    				offer = player.getGeOffers()[player.getGESlot()];
    
    				offer.increase(10);
    
    				player.getPackets().sendConfig(1110, offer.getAmount());
    
    				break;
    
    			case 164:
    
    				offer = player.getGeOffers()[player.getGESlot()];
    
    				offer.increase(100);
    
    				player.getPackets().sendConfig(1110, offer.getAmount());
    
    				break;
    
    			//case 166:
    
    				//offer = player.getGeOffers()[player.getGESlot()];
    
    				//if (offer.getType() == OfferType.BUY) {
    
    				//	offer.increase(1000);
    
    				//} else {
    
    				//	offer.setAmount(player.getInventory().getItems().getNumberOf(offer.getId()));
    
    				//}
    
    				//player.getPackets().sendConfig(1110, offer.getAmount());
    
    				//break;
    
    			case 168:
    
    				offer = player.getGeOffers()[player.getGESlot()];
    
    				player.getPackets().sendRunScript(108, new Object[] { "How many would you like to buy?" });
    
    				player.getTemporaryAttributtes().put("grand_exchange_offer", offer);
    
    				break;
    
    			case 181:
    
    			case 175:
    
    			case 177:
    
    			case 179:
    
    			case 169:
    
    			case 171:
    
    				player.getPackets().sendGameMessage("You need not to change the price; you recieve the item all the time.");
    
    				return true;
    
    			default:
    
    				System.err.println("UNHANDLED GE BUTTON - " + buttonId);
    
    			}
    
    			return true;
    
    		}
    
    		return false;
    
    	}
    
    
    
    	/**
    
    	 * Show the Main InterfacePacket.
    
    	 * 
    
    	 * @param player
    
    	 *            The Owner.
    
    	 */
    
    	public static void mainInterface(Player player) {
    		player.getPackets().sendConfig(563, 4194304);
    		player.getPackets().sendConfig(1112, -1);
    		player.getPackets().sendConfig(1113, -1);
    		player.getPackets().sendConfig(1109, -1);
    		player.getPackets().sendConfig(1110, 0);
    		player.getInterfaceManager().sendInterface(105);
    	}
    
    
    
    	/**
    
    	 * Resets the Configurations of the InterfacePacket.
    
    	 * 
    
    	 * @param player
    
    	 *            The Owner.
    
    	 */
    
    	private static void resetInterfaceConfigs(Player player) {
    
    		player.getPackets().sendConfig2(1109, -1);
    
    		player.getPackets().sendConfig2(1110, 0);
    
    		player.getPackets().sendConfig2(1111, 0);
    
    		player.getPackets().sendConfig2(1112, -1);
    
    		player.getPackets().sendConfig2(1113, 0);
    
    	}
    
    
    
    	/**
    
    	 * Show the Search InterfacePacket.
    
    	 * 
    
    	 * @param player
    
    	 *            The Owner.
    
    	 */
    
    	private static void searchScript(Player player) {
    
    		player.getPackets().sendConfig(1109, -1);
    
    		player.getPackets().sendConfig(1112, 0);
    
    		player.getPackets().sendConfig(1113, 0);
    
    		player.getPackets().sendConfig1(1241, 16750848);
    
    		player.getPackets().sendConfig1(1242, 15439903);
    
    		player.getPackets().sendConfig1(741, -1);
    
    		player.getPackets().sendConfig1(743, -1);
    
    		player.getPackets().sendConfig1(744, 0);
    
    		player.getPackets().sendInterface(true, 752, 7, 389);
    
    		player.getPackets().sendRunScript(570, new Object[] { "Grand Exchange Item Search" });
    
    		//		player.getIOSession().write(new ConfigPacket(player, 1109, -1));
    
    		//		player.getIOSession().write(new ConfigPacket(player, 1112, 0));
    
    		//		player.getIOSession().write(new ConfigPacket(player, 1113, 0));
    
    		//		player.getIOSession().write(new CS2Config(player, 1241, 16750848));
    
    		//		player.getIOSession().write(new CS2Config(player, 1242, 15439903));
    
    		//		player.getIOSession().write(new CS2Config(player, 741, -1));
    
    		//		player.getIOSession().write(new CS2Config(player, 743, -1));
    
    		//		player.getIOSession().write(new CS2Config(player, 744, 0));
    
    		//		player.getIOSession().write(new InterfacePacket(player, 752, 7, 389, false));
    
    		//		player.getIOSession().write(new CS2Script(player, 570, "s", new Object[] { "Grand Exchange Item Search" }));
    
    	}
    
    
    
    
    
    	/**
    
    	 * Gets the Box Slot id by switching the buttons,<br>	
    
    	 * </br> Also helps you to figure the box slot configuration value.
    
    	 * 
    
    	 * @param buttonId
    
    	 * @return Slot id.
    
    	 */
    
    	private static int getSlot(int buttonId) {
    
    		switch (buttonId) {
    
    		case 31:
    
    		case 32:
    
    		case 19:
    
    			return 0;
    
    		case 47:
    
    		case 35:
    
    		case 48:
    
    			return 1;
    
    		case 63:
    
    		case 51:
    
    		case 64:
    
    			return 2;
    
    		case 82:
    
    		case 83:
    
    		case 70:
    
    			return 3;
    
    		case 101:
    
    		case 102:
    
    		case 89:
    
    			return 4;
    
    		case 120:
    
    		case 108:
    
    		case 121:
    
    			return 5;
    
    		default:
    
    			return -1;
    
    		}
    
    	}
    
    
    
    
    
    	public static void sendSellItem(Player player, int itemId, int slot, int buttonId) {
    
    		switch(buttonId) {
    
    		case 18:
    
    			if (player.getInventory().containsItem(itemId, 1)) {
    
    				if (!ItemConstants.isTradeable(new Item(itemId)) || itemId == 995 || ItemDefinitions.getItemDefinitions(itemId).getGEPrice() == 0) {
    
    					player.getPackets().sendGameMessage("You cannot sell this item to the grand exchange.");
    
    					return;
    
    				}
    
    				final ItemOffer offer = new ItemOffer(player, itemId, player.offerType, (Integer) player.getGESlot());
    
    				offer.setPrice((int) (offer.getPrice() * 0.75));
    
    				player.getGeOffers()[offer.getSlot()] = offer;
    
    				offer.getOwner().getPackets().sendConfig(1109, offer.getId());
    
    				offer.getOwner().getPackets().sendConfig(1110, 1);
    
    				offer.getOwner().getPackets().sendConfig( 1114, offer.getPrice());
    
    				offer.getOwner().getPackets().sendConfig( 1115, offer.getDefinitions().getValue() / 3);
    
    				offer.getOwner().getPackets().sendConfig(1116, offer.getDefinitions().getValue() / 4);
    
    				offer.getOwner().getPackets().sendConfig(1111, offer.getPrice());
    
    				offer.getOwner().getPackets().sendIComponentText(105, 143, ItemExamines.getExamine(new Item(itemId)));
    
    			}
    
    			return;
    
    		}
    
    	}
    
    }
    Can someone please help me will give thanks
    Reply With Quote  
     

  2. #2  
    Success is the worst teacher

    Santa Hat's Avatar
    Join Date
    Oct 2012
    Age
    24
    Posts
    3,337
    Thanks given
    801
    Thanks received
    1,185
    Rep Power
    189
    From what information you have given, 3 variables can be null, "player", "getGeOffers()" or "offer" from what I can see here it appears that is may be due to the "getGeOffers()" method in the Player class, mind posting that method?

    [Only registered and activated users can see links. ]
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    May 2012
    Posts
    23
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Santa Hat View Post
    From what information you have given, 3 variables can be null, "player", "getGeOffers()" or "offer" from what I can see here it appears that is may be due to the "getGeOffers()" method in the Player class, mind posting that method?
    [CODE]public void out(String text, int delay) {

    }


    public int getGESlot() {
    return GESlot;
    }

    public void setGESlot(int gESlot) {
    GESlot = gESlot;
    }


    /**
    * The player's last used grand exchange slot.
    */
    private int GESlot;

    /**
    * The player's last offertype used.
    */

    public int box;
    public OfferType offerType;
    public boolean usingtoolbelt;[CODE]

    [CODE]public ItemOffer[] getGeOffers() {
    // TODO Auto-generated method stub
    return null;
    }
    [CODE]
    Reply With Quote  
     

  4. #4  
    Success is the worst teacher

    Santa Hat's Avatar
    Join Date
    Oct 2012
    Age
    24
    Posts
    3,337
    Thanks given
    801
    Thanks received
    1,185
    Rep Power
    189
    Quote Originally Posted by ohtaqo View Post
    [CODE]public void out(String text, int delay) {

    }


    public int getGESlot() {
    return GESlot;
    }

    public void setGESlot(int gESlot) {
    GESlot = gESlot;
    }


    /**
    * The player's last used grand exchange slot.
    */
    private int GESlot;

    /**
    * The player's last offertype used.
    */

    public int box;
    public OfferType offerType;
    public boolean usingtoolbelt;[CODE]

    [CODE]public ItemOffer[] getGeOffers() {
    // TODO Auto-generated method stub
    return null;
    }
    [CODE]
    So your getting a nullpointer because your getGeOffers method is returning null, it must return something

    ublic ItemOffer[] getGeOffers() {
    // TODO Auto-generated method stub
    return null;
    }

    thats where you are getting the nullpointer

    [Only registered and activated users can see links. ]
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    May 2012
    Posts
    23
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by Santa Hat View Post
    So your getting a nullpointer because your getGeOffers method is returning null, it must return something

    ublic ItemOffer[] getGeOffers() {
    // TODO Auto-generated method stub
    return null;
    }

    thats where you are getting the nullpointer
    what could i change it to tho?
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. [MATRIX 718] need help fixing run errors
    By 90 tank dds in forum Help
    Replies: 6
    Last Post: 08-02-2012, 11:03 PM
  2. 718 slayer help
    By Mr Sandman in forum Help
    Replies: 1
    Last Post: 07-31-2012, 05:18 AM
  3. 718 Code Help...
    By Chaz in forum Help
    Replies: 1
    Last Post: 07-28-2012, 06:39 AM
  4. 667/718 Map Help
    By zerozero in forum Help
    Replies: 0
    Last Post: 07-01-2012, 02:55 PM
  5. NullPointerException Help...
    By Core in forum Help
    Replies: 8
    Last Post: 03-04-2009, 06:12 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •