Thread: Help with worker thread for shard :/

Results 1 to 3 of 3
  1. #1 Help with worker thread for shard :/ 
    Expert Programmer


    Join Date
    Dec 2007
    Posts
    2,018
    Thanks given
    52
    Thanks received
    84
    Rep Power
    986
    bascially am trying to convert the worker thread from rs2hd to work with shard based source but I am having problems when it comes to loading it saves fine, JUST DOESNT LOAD!@!@!@ any help please?

    Code:
    package com.rs2;
    
    import java.util.LinkedList;
    import java.util.Queue;
    
    import com.rs2.model.player.Player;
    import com.rs2.model.player.PlayerDetails;
    import com.rs2.model.player.PlayerLoader;
    import com.rs2.util.Misc;
    
    public class WorkerThread implements Runnable {
     
    	private PlayerLoader loader;
    
    	private Queue<PlayerDetails> playersToLoad;
    	private Queue<Player> playersToSave;
    
    	public WorkerThread(PlayerLoader loader) {
    		this.loader = loader;
    		this.playersToLoad = new LinkedList<PlayerDetails>();
    		this.playersToSave = new LinkedList<Player>();
    		System.out.println("Worker thread started.");
    	}
    
    	public void run() {
    		while (true) {
    			synchronized (this) {
    				try {
    					wait();
    				} catch (InterruptedException e) {
    					cleanup();
    					break;
    				}
    			}
    			synchronized (playersToLoad) {
    				if (!playersToLoad.isEmpty()) {
    					@SuppressWarnings("unused")
    					PlayerDetails d = null;
    					while ((d = playersToLoad.poll()) != null) {
    					}
    					playersToLoad.clear();
    				}
    			}
    			synchronized (playersToSave) {
    				if (!playersToSave.isEmpty()) {
    					Player p = null;
    					while ((p = playersToSave.poll()) != null) {
    						if(loader.saveGame(p)) {
    							Misc.debug("Saved gamed for " + p.getUsername() +" .");
    						} else {
    							Misc.debug("Error saving game for " + p.getUsername() +" .");
    						}
    					}
    					playersToSave.clear();
    				}
    			}
    		}
    	}
    
    	private void cleanup() {
    	}
    
    	public void loadPlayer(PlayerDetails d) {
    		synchronized (playersToLoad) {
    			playersToLoad.add(d);
    		}
    		synchronized (this) {
    			notifyAll();
    		}
    	}
    
    	public void savePlayer(Player p) {
    		synchronized (playersToSave) {
    			playersToSave.add(p);
    		}
    		synchronized (this) {
    			notifyAll();
    		}
    	}
    
    }
    Code:
    package com.rs2.model.player;
    
    /**
     * The save object
     *
     * @author Ultimate
     *
     */
    
    import java.io.Serializable;
    
    public class PlayerDetails implements Serializable {
    
    	private String username;
    	private String password;
    
    	private int absX;
    	private int absY;
    	private int heightLevel;
    
    	private boolean appearanceSet;
    
    	private int[] playerItem;
    	private int[] playerItemN;
    
    	private int[] playerEquipment;
    	private int[] playerEquipmentN;
    
    	private int[] playerLevel;
    	private int[] playerXP;
    	private int hitpoints;
    
    	private int[] bankItems;
    	private int[] bankItemsN;
    	private int playerBankSize;
    
    	private int[] playerLook;
    
    	private long[] friends;
    	private int friendsSize;
    	private long[] ignores;
    	private int ignoresSize;
    
    	private int specialAmount;
    	private int poisonDelay;
    	private int skullTimer;
    	private int pkPoints;
    	private int energy;
    	private boolean ancients;
    	private boolean playerIsMember;
    
    	public PlayerDetails(Player p) {
    		username = p.getUsername();
    		password = p.getPassword();
    		absX = p.getAbsX();
    		absY = p.getAbsY();
    		heightLevel = p.getHeightLevel();
    		appearanceSet = p.appearanceSet;
    		playerItem = p.playerItems;
    		playerItemN = p.playerItemsN;
    		playerEquipment = p.playerEquipment;
    		playerEquipmentN = p.playerEquipmentN;
    		playerLevel = p.playerLevel;
    		playerXP = p.playerXP;
    		hitpoints = p.hitpoints;
    		bankItems = p.bankItems;
    		bankItemsN = p.bankItemsN;
    		playerLook = p.playerLook;
    		playerBankSize = p.getPlayerBankSize();
    		if (p.getFriends() != null) {
    			friends = p.getFriends();
    		} else {
    			friends = new long[200];
    		}
    		friendsSize = p.getFriendsSize();
    		if (p.getIgnores() != null) {
    			ignores = p.getIgnores();
    		} else {
    			ignores = new long[100];
    		}
    		ignoresSize = p.getIgnoresSize();
    		specialAmount = p.getSpecialAmount();
    		poisonDelay = p.getPoisonDelay();
    		skullTimer = p.getSkullTimer();
    		pkPoints = p.getPkPoints();
    		energy = p.getEnergy();
    		ancients = p.isUsingAncients();
    		playerIsMember = p.isPlayerMember();
    	}
    
    	/**
    	 * @return the username
    	 */
    	public String getUsername() {
    		return username;
    	}
    
    	/**
    	 * @return the password
    	 */
    	public String getPassword() {
    		return password;
    	}
    
    	/**
    	 * @return the absX
    	 */
    	public int getAbsX() {
    		return absX;
    	}
    
    	/**
    	 * @return the absY
    	 */
    	public int getAbsY() {
    		return absY;
    	}
    
    	/**
    	 * @return the heightLevel
    	 */
    	public int getHeightlevel() {
    		return heightLevel;
    	}
    
    	/**
    	 * @return the lastLogin
    	 */
    	public boolean isAppearanceSet() {
    		return appearanceSet;
    	}
    
    	/**
    	 * @return the playerItem
    	 */
    	public int[] getPlayerItem() {
    		return playerItem;
    	}
    
    	/**
    	 * @return the playerItemN to be set
    	 */
    	public int[] getPlayerItemN() {
    		return playerItemN;
    	}
    
    	/**
    	 * @return the playerEquipment
    	 */
    	public int[] getPlayerEquipment() {
    		return playerEquipment;
    	}
    
    	/**
    	 * @return the playerLevel
    	 */
    	public int[] getPlayerLevel() {
    		return playerLevel;
    	}
    
    	/**
    	 * @return the playerXP
    	 */
    	public int[] getPlayerXP() {
    		return playerXP;
    	}
    
    	/**
    	 * @return the hitpoints
    	 */
    	public int getHitpoints() {
    		return hitpoints;
    	}
    
    	/**
    	 * @return the playerEquipmentN
    	 */
    	public int[] getPlayerEquipmentN() {
    		return playerEquipmentN;
    	}
    
    	/**
    	 * @return the player's look
    	 */
    	public int[] getPlayerLook() {
    		return playerLook;
    	}
    
    	/**
    	 * @return the bankItems
    	 */
    	public int[] getBankItems() {
    		return bankItems;
    	}
    
    	/**
    	 * @return the bankItemsN
    	 */
    	public int[] getBankItemsN() {
    		return bankItemsN;
    	}
    
    	/**
    	 * @return the player's bank size
    	 */
    	public int getPlayerBankSize() {
    		return playerBankSize;
    	}
    
    	/**
    	 * @return the friends
    	 */
    	public long[] getFriends() {
    		return friends;
    	}
    
    	/**
    	 * @return the friendsSize
    	 */
    	public int getFriendsSize() {
    		return friendsSize;
    	}
    
    	/**
    	 * @return the ignores
    	 */
    	public long[] getIgnores() {
    		return ignores;
    	}
    
    	/**
    	 * @return the ignoresSize
    	 */
    	public int getIgnoresSize() {
    		return ignoresSize;
    	}
    
    	/**
    	 * @return the specialAmount
    	 */
    	public int getSpecialAmount() {
    		return specialAmount;
    	}
    
    	/**
    	 * @return the poisonDelay
    	 */
    	public int getPosionDelay() {
    		return poisonDelay;
    	}
    
    	/**
    	 * @return the skull timer
    	 */
    	public int getSkullTimer() {
    		return skullTimer;
    	}
    
    	/**
    	 * @return the pk points
    	 */
    	public int getPkPoints() {
    		return pkPoints;
    	}
    
    	/**
    	 * @return the energy
    	 */
    	public int getEnergy() {
    		return energy;
    	}
    
    	/**
    	 * @return ancients
    	 */
    	public boolean isUsingAncients() {
    		return ancients;
    	}
    
    	/**
    	 * @return playerIsMember
    	 */
    	public boolean isPlayerMember() {
    		return playerIsMember;
    	}
    
    	private static final long serialVersionUID = 1L;
    }
    Code:
    package com.rs2.model.player;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    
    public class PlayerLoader {
    
    	public PlayerDetails loadGame(String username) {
    		PlayerDetails load;
    		try {
    			ObjectInputStream in = new ObjectInputStream(new FileInputStream("./data/characters/" + username + ".dat"));
    			load = (PlayerDetails) in.readObject();
    			in.close();
    		} catch (Exception e) {
    			return null;
    		}
    		return load;
    	}
    
    	public boolean saveGame(Player p) {
    		PlayerDetails playerDetails = new PlayerDetails(p);
    		try {
    			ObjectOutputStream out = new ObjectOutputStream(
    					new FileOutputStream("./data/characters/"
    							+ playerDetails.getUsername() + ".dat"));
    			out.writeObject(playerDetails);
    			out.close();
    		} catch (Exception e) {
    			System.out.println(e);
    			return false;
    		}
    		return true;
    	}
    	
    }
    thanks
     

  2. #2  
    Programmer, Contributor, RM and Veteran




    Join Date
    Mar 2007
    Posts
    5,147
    Thanks given
    2,656
    Thanks received
    3,731
    Rep Power
    5000
    Because you don't have any loading code lol.
    .
     

  3. #3  
    Expert Programmer


    Join Date
    Dec 2007
    Posts
    2,018
    Thanks given
    52
    Thanks received
    84
    Rep Power
    986
    i do in to player loader class but i just get null pointer :/
     


Thread Information
Users Browsing this Thread

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


User Tag List

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •