Thread: Getting disconnect with fishing

Page 1 of 2 12 LastLast
Results 1 to 10 of 17
  1. #1 Getting disconnect with fishing 
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    alright heres the fishing class, it sends the message but the disconnects

    error

    Code:
    SEVERE: An error occurred in an executor service! The server will be halted immediately.
    java.lang.NullPointerException
    	at org.rs2server.rs2.action.impl.HarvestingAction.execute(HarvestingAction.java:177)
    	at org.rs2server.rs2.action.ActionQueue$1.execute(ActionQueue.java:114)
    	at org.rs2server.rs2.tickable.Tickable.cycle(Tickable.java:105)
    	at org.rs2server.rs2.event.impl.UpdateEvent.execute(UpdateEvent.java:47)
    	at org.rs2server.rs2.event.EventManager$1.run(EventManager.java:49)
    	at org.rs2server.rs2.GameEngine$2.run(GameEngine.java:130)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    	at java.util.concurrent.FutureTask.run(Unknown Source)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)

    Code:
    package org.rs2server.rs2.model.skills;
    
    
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.rs2server.rs2.action.impl.HarvestingAction;
    import org.rs2server.rs2.model.Animation;
    import org.rs2server.rs2.model.GameObject;
    import org.rs2server.rs2.model.Item;
    import org.rs2server.rs2.model.Mob;
    import org.rs2server.rs2.model.Skills;
    
    
    public class Fishing extends HarvestingAction {
    	
    
    	
    
    	
    	private Spot spot;
    	
    	
    	public Fishing(Mob mob, Spot spot) {
    		super(mob);
    		this.spot = spot;
    	}
    	
    	
    	public enum Spot {
    
    
    		SHRIMP(310, 1, 317, 303, 100);
    
    		/**
    		 * The npc id.
    		 */
    		private int npc;
    
    		/**
    		 * The level required to fish this.
    		 */
    		private int level;
    		
    		/**
    		 * The Fish given
    		 */
    		private int fish;
    		
    		/**
    		 * The gear required
    		 */
    		
    		private int gear;
    		
    		private int exp;
    
    		/**
    		 * A list of spots.
    		 */
    		private static Map<Integer, Spot> spots = new HashMap<>();
    		
    		/**
    		 * Gets the list of hatchets.
    		 * @return The list of hatchets.
    		 */
    		  public static Spot forId(int npc) {
    	            return spots.get(npc);
    	        }
    	        
    	        /**
    	         * Populates the fish map.
    	         */
    	        static {
    	            for (Spot spot : Spot.values()) {
    	                spots.put(spot.npc, spot);
    	            }
    	        }
    		
    		
    		private Spot(int npc, int level, int fish, int gear, int exp) {
    			this.npc = npc;
    			this.level = level;
    			this.fish = fish;
    			this.gear = gear;
    			this.exp = exp;
    		}
    
    		/**
    		 * @return the id
    		 */
    		public int getNpc() {
    			return npc;
    		}
    		
    		/**
    		 * @return the level
    		 */
    		public int getRequiredLevel() {
    			return level;
    		}
    	
    		public int getFish() {
    			return fish;
    		}
    		public int getGear() {
    			return gear;
    		}
    		public int getExp() {
    			return exp;
    		}
    	}
    	
    	@Override
    	public Animation getAnimation() {
    		return Animation.create(1249);
    	}
    
    	@Override
    	public int getCycleCount() {
    		return 3;
    	}
    
    	@Override
    	public double getExperience() {
    		return spot.getExp();
    	}
    
    	@Override
    	public GameObject getGameObject() {
    		return null;
    	}
    
    	@Override
    	public int getGameObjectMaxHealth() {
    		return 0;
    	}
    
    	@Override
    	public String getHarvestStartedMessage() {
    		return "you attempt to catch some fish";
    	}
    
    	@Override
    	public String getLevelTooLowMessage() {
    		return "You need a " + Skills.SKILL_NAME[getSkill()] + " level of " + spot.getRequiredLevel() + " to fish here.";
    	}
    
    
    	@Override
    	public int getRequiredLevel() {
    		return spot.getRequiredLevel();
    	}
    
    	@Override
    	public Item getReward() {
    		return new Item(spot.getFish(), 1);
    	}
    
    	@Override
    	public int getSkill() {
    		return Skills.FISHING;
    	}
    
    	@Override
    	public String getSuccessfulHarvestMessage() {
    		return "You get some " + getReward().getDefinition().getName().toLowerCase() + ".";
    	}
    
    	@Override
    	public boolean canHarvest() {
    		for(Spot spot : Spot.values()) {
    			if((getMob().getInventory().contains(spot.getGear()))
    							&& getMob().getSkills().getLevelForExperience(getSkill()) >= spot.getRequiredLevel()) {
    				this.spot = spot;
    				break;
    			}
    		}
    	
    		return true;
    	}
    	
    	@Override
    	public String getInventoryFullMessage() {
    		return "Your inventory is too full to hold any more " + getReward().getDefinition().getName().toLowerCase() + ".";
    	}
    
    	@Override
    	public GameObject getReplacementObject() {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public int getObjectRespawnTimer() {
    		// TODO Auto-generated method stub
    		return 0;
    	}
    	
    	
    
    }

    and the first click npc packet

    Code:
    private void handleOption1(final Player player, Packet packet) {
    		int id = packet.getShort() & 0xFFFF;
    		if(id < 0 || id >= Constants.MAX_NPCS) {
    			return;
    		}
    		if(player.getCombatState().isDead()) {
    			return;
    		}
    		player.getActionQueue().clearRemovableActions();
    
    		final NPC npc = (NPC) World.getWorld().getNPCs().get(id);
    
    		player.getActionSender().sendDebugPacket(packet.getOpcode(), "NpcOpt1", new Object[] { "ID: " + npc.getDefinition().getId(), "Index: " + id });
    		
    		if(npc != null) {
    			player.setInteractingEntity(InteractionMode.TALK, npc);
    			final Spot fish = Spot.forId(npc.getDefinition().getId());
    			Action action = new Action(player, 0) {
    				@Override
    				public void execute() {
    					if(player.getCombatState().isDead()) {
    						this.stop();
    						return;
    					}
    					
    					if (fish != null) {
    			        	player.getActionQueue().addAction(new Fishing(player, fish));
    			        }
    					if(npc.getDefinition().getInteractionMenu()[0].startsWith("Talk")) {
    						if(npc.getDefinition().getName().toLowerCase().contains("banker")) {
    							DialogueManager.openDialogue(player, 0);
    						} else {
    							String scriptName = "talkTo" + npc.getDefinition().getId();
    							if(!ScriptManager.getScriptManager().invokeWithFailTest(scriptName, player, npc)) {
    								player.getActionSender().sendMessage(npc.getDefinedName() + " does not want to talk.");							
    							}
    						}
    						npc.setInteractingEntity(InteractionMode.TALK, player);
    					}
    					this.stop();
    				}
    				@Override
    				public AnimationPolicy getAnimationPolicy() {
    					return AnimationPolicy.RESET_ALL;
    				}
    				@Override
    				public CancelPolicy getCancelPolicy() {
    					return CancelPolicy.ALWAYS;
    				}
    				@Override
    				public StackPolicy getStackPolicy() {
    					return StackPolicy.NEVER;
    				}			
    			};
    			int distance = 1;
    			if(npc.getDefinition().getName().toLowerCase().contains("banker")
    							|| npc.getDefinition().getName().toLowerCase().contains("emily")
    							|| npc.getDefinition().getName().toLowerCase().contains("zambo")) {
    				distance = 2;
    			}
    			player.addCoordinateAction(player.getWidth(), player.getHeight(), npc.getLocation(), npc.getWidth(), npc.getHeight(), distance, action);
    		}
    	}
    what am i doing wrong?
    Reply With Quote  
     

  2. #2  
    Banned

    Join Date
    Dec 2011
    Posts
    967
    Thanks given
    234
    Thanks received
    208
    Rep Power
    0
    It'd be easier to tell you if you showed us your errors that pop up in CMD, if there are any.
    Reply With Quote  
     

  3. #3  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    posted the error
    Reply With Quote  
     

  4. #4  
    Registered Member
    thim slug's Avatar
    Join Date
    Nov 2010
    Age
    28
    Posts
    4,132
    Thanks given
    1,077
    Thanks received
    1,137
    Rep Power
    5000
    at org.rs2server.rs2.action.impl.HarvestingAction.exe cute(HarvestingAction.java:177)

    What line is this?
    Reply With Quote  
     

  5. #5  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    Quote Originally Posted by Samuel View Post
    at org.rs2server.rs2.action.impl.HarvestingAction.exe cute(HarvestingAction.java:177)

    What line is this?
    if(!started) {
    started = true;
    getMob().playAnimation(getAnimation());
    getMob().getActionSender().sendMessage(getHarvestS tartedMessage());
    if(getGameObject().getMaxHealth() == 0) {
    getGameObject().setMaxHealth(getGameObjectMaxHealt h());
    }
    currentCycles = getCycleCount();
    return;
    }
    if(getGameObject().getCurrentHealth() < 1) {
    this.stop();
    return;
    }
    Reply With Quote  
     

  6. #6  
    Registered Member
    thim slug's Avatar
    Join Date
    Nov 2010
    Age
    28
    Posts
    4,132
    Thanks given
    1,077
    Thanks received
    1,137
    Rep Power
    5000
    Quote Originally Posted by Andrew View Post
    if(!started) {
    started = true;
    getMob().playAnimation(getAnimation());
    getMob().getActionSender().sendMessage(getHarvestS tartedMessage());
    if(getGameObject().getMaxHealth() == 0) {
    getGameObject().setMaxHealth(getGameObjectMaxHealt h());
    }
    currentCycles = getCycleCount();
    return;
    }
    if(getGameObject().getCurrentHealth() < 1) {
    this.stop();
    return;
    }
    Yes of course that's the line...
    Reply With Quote  
     

  7. Thankful user:


  8. #7  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    Quote Originally Posted by Samuel View Post
    Yes of course that's the line...
    if(getGameObject().getMaxHealth() == 0) {
    Reply With Quote  
     

  9. #8  
    Registered Member
    thim slug's Avatar
    Join Date
    Nov 2010
    Age
    28
    Posts
    4,132
    Thanks given
    1,077
    Thanks received
    1,137
    Rep Power
    5000
    Code:
    	@Override
    	public GameObject getGameObject() {
    		return null;
    	}
    There you are.
    Reply With Quote  
     

  10. Thankful user:


  11. #9  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    Quote Originally Posted by Samuel View Post
    Code:
    	@Override
    	public GameObject getGameObject() {
    		return null;
    	}
    There you are.
    uhh i already have that in my fishing.java?
    Reply With Quote  
     

  12. #10  
    Registered Member Andrew's Avatar
    Join Date
    Nov 2008
    Posts
    2,890
    Thanks given
    612
    Thanks received
    207
    Rep Power
    551
    Quote Originally Posted by Giovanni View Post
    he means u got to change if(getGameObject().getMaxHealth() == 0) { to that code in harvestingAction.java
    problem with that though, is that woodcutting and mining use that, i may just make this just a regular action instead of harvesting i guess
    Reply With Quote  
     

Page 1 of 2 12 LastLast

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. Replies: 6
    Last Post: 11-24-2010, 01:06 PM
  2. Replies: 7
    Last Post: 11-01-2008, 01:59 PM
  3. Kid gets headshot with a paintball
    By Xxl33tk1ll3r28x in forum Videos
    Replies: 14
    Last Post: 09-06-2008, 06:17 AM
  4. Getting Started With GFX
    By sL3Ak in forum Tutorials
    Replies: 0
    Last Post: 02-05-2008, 02:50 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
  •