Browse Source

My top secret project.

nossr50 14 years ago
parent
commit
980d8fb374

+ 48 - 0
mcMMO/com/bukkit/nossr50/mcMMO/mcBlockListener.java

@@ -0,0 +1,48 @@
+package com.bukkit.nossr50.mcMMO;
+
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.event.block.BlockDamageEvent;
+import org.bukkit.event.block.BlockListener;
+
+public class mcBlockListener extends BlockListener {
+    private final mcMMO plugin;
+
+    public mcBlockListener(final mcMMO plugin) {
+        this.plugin = plugin;
+    }
+    //put all Block related code here
+    public void onBlockDamage(BlockDamageEvent event) {
+    	//STARTED(0), DIGGING(1), BROKEN(3), STOPPED(2);
+    	Player player = event.getPlayer();
+    	Block block = event.getBlock();
+    	int dmg = event.getDamageLevel().getLevel();
+    	if(dmg == 3){
+    		mcUsers.getProfile(player).addgather(1);
+    		//GOLD ORE = 14 
+    		//DIAMOND ORE = 56 
+    		//REDSTONE = 73 && 74
+    		
+    		if(block.getTypeId() == 1){
+    			int t = player.getItemInHand().getTypeId();
+    			int q;
+    			//If stone tools
+    			if(t == 272 || t == 273 || t == 274 || t == 275){
+    				q = 3;
+    			//If iron tools	
+    			} else if (t == 256 || t == 257 || t == 258 || t == 267){
+    				q = 2;
+    			//If wooden tools	
+    			} else if (t == 268 || t == 269 || t == 270 || t == 271){
+    				q = 4;
+    			//If Diamond tools	
+    			} else if (t == 276 || t == 277 || t == 278 || t == 279){
+    				q = 1;
+    			} else {
+    				q = 5;
+    			}
+    			
+    		}
+    	}
+    }
+}

+ 35 - 0
mcMMO/com/bukkit/nossr50/mcMMO/mcConfig.java

@@ -0,0 +1,35 @@
+package com.bukkit.nossr50.mcMMO;
+
+import java.util.ArrayList;
+
+public class mcConfig {
+	private static volatile mcConfig instance;    
+    static ArrayList<String> adminChatList = new ArrayList<String>();
+    static ArrayList<String> partyChatList = new ArrayList<String>();
+	public boolean isAdminToggled(String playerName) {return adminChatList.contains(playerName);}
+    public boolean isPartyToggled(String playerName) {return partyChatList.contains(playerName);}
+    public void removePartyToggled(String playerName) {partyChatList.remove(partyChatList.indexOf(playerName));}
+    public void removeAdminToggled(String playerName) {adminChatList.remove(adminChatList.indexOf(playerName));}
+    public void addPartyToggled(String playerName) {partyChatList.add(playerName);}
+    public void addAdminToggled(String playerName) {adminChatList.add(playerName);}
+    public static mcConfig getInstance() {
+    	if (instance == null) {
+    	instance = new mcConfig();
+    	}
+    	return instance;
+    	}
+    public void toggleAdminChat(String playerName){
+    	if(isAdminToggled(playerName)){
+    		removeAdminToggled(playerName);
+    	} else {
+    		addAdminToggled(playerName);
+    	}
+    }
+    public void togglePartyChat(String playerName){
+    	if(isPartyToggled(playerName)){
+    		removePartyToggled(playerName);
+    	} else {
+    		addPartyToggled(playerName);
+    	}
+    }
+}

+ 65 - 0
mcMMO/com/bukkit/nossr50/mcMMO/mcEntityListener.java

@@ -0,0 +1,65 @@
+package com.bukkit.nossr50.mcMMO;
+
+import org.bukkit.ChatColor;
+import org.bukkit.Location;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Player;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.entity.EntityDeathEvent;
+import org.bukkit.event.entity.EntityListener;
+import org.bukkit.inventory.ItemStack;
+
+public class mcEntityListener extends EntityListener {
+	private final mcMMO plugin;
+
+    public mcEntityListener(final mcMMO plugin) {
+        this.plugin = plugin;
+    }
+    public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
+    	Entity x = event.getEntity(); //Defender
+    	Entity y = event.getDamager(); //Attacker
+    	//If attacker is player...
+    	if(y instanceof Player){
+    		Player attacker = (Player)y;
+    		//If defender is player
+    		if(x instanceof Player){
+    			Player defender = (Player)x;
+    			if(mcUsers.getProfile(defender).getParty().equals(mcUsers.getProfile(attacker).getParty())){
+    				event.setCancelled(true);
+    			}
+    		}
+    	}
+    }
+    public void onEntityDamage(EntityDamageEvent event) {
+    	//Thanks to TimberJaw for sharing his source code!
+    	Entity x = event.getEntity();
+    	if(x instanceof Player){
+    		Player player = (Player)x;
+    		if((player.getHealth() - event.getDamage()) <= 0){
+    		Location deathLoc = player.getLocation();
+    		ItemStack[] items = player.getInventory().getContents();
+    		for(int i = 0; i < items.length; i++)
+    		{
+	    		ItemStack is = items[i];
+	    		if(is != null && is.getAmount() > 0)
+	    		{
+	    			player.getWorld().dropItemNaturally(deathLoc, is);
+	    		}
+    		}
+    		player.setHealth(20);
+			player.teleportTo(mcUsers.getProfile(player).getMySpawn(player));
+			for(Player derp : plugin.getServer().getOnlinePlayers()){
+				derp.sendMessage(ChatColor.GRAY+player.getName() + " has died.");
+			}
+    		}
+    	}
+    }
+    public boolean isPlayer(Entity entity){
+    	if (entity instanceof Player) {
+    	    return true;
+    	} else{
+    		return false;
+    	}
+    }
+}

+ 46 - 0
mcMMO/com/bukkit/nossr50/mcMMO/mcMMO.java

@@ -0,0 +1,46 @@
+package com.bukkit.nossr50.mcMMO;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import org.bukkit.event.player.*;
+import org.bukkit.Server;
+import org.bukkit.event.Event.Priority;
+import org.bukkit.event.Event;
+import org.bukkit.plugin.PluginDescriptionFile;
+import org.bukkit.plugin.PluginLoader;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.bukkit.plugin.PluginManager;
+import org.bukkit.entity.Player;
+
+
+public class mcMMO extends JavaPlugin {
+    private final mcPlayerListener playerListener = new mcPlayerListener(this);
+    private final mcBlockListener blockListener = new mcBlockListener(this);
+    private final mcEntityListener entityListener = new mcEntityListener(this);
+    private final HashMap<Player, Boolean> debugees = new HashMap<Player, Boolean>();
+    private final String name = "mcMMO";
+
+    public mcMMO(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader) {
+        super(pluginLoader, instance, desc, folder, plugin, cLoader);
+    }
+
+    public void onEnable() {
+    	mcUsers.getInstance().loadUsers();
+        PluginManager pm = getServer().getPluginManager();
+        pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this);
+        pm.registerEvent(Event.Type.PLAYER_DROP_ITEM, playerListener, Priority.Normal, this);
+        pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this);
+        pm.registerEvent(Event.Type.PLAYER_COMMAND, playerListener, Priority.Normal, this);
+        pm.registerEvent(Event.Type.BLOCK_DAMAGED, blockListener, Priority.Normal, this);
+        pm.registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Monitor, this);
+        pm.registerEvent(Event.Type.ENTITY_DAMAGEDBY_ENTITY, entityListener, Priority.Normal, this);
+        pm.registerEvent(Event.Type.ENTITY_DEATH, entityListener, Priority.Normal, this);
+        //Displays a message when plugin is loaded
+        PluginDescriptionFile pdfFile = this.getDescription();
+        System.out.println( pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" );
+    }
+    public void onDisable() {
+        System.out.println("mcMMO disabled.");
+    }
+}

+ 181 - 0
mcMMO/com/bukkit/nossr50/mcMMO/mcPlayerListener.java

@@ -0,0 +1,181 @@
+package com.bukkit.nossr50.mcMMO;
+
+import org.bukkit.ChatColor;
+import org.bukkit.Location;
+import org.bukkit.entity.Player;
+import org.bukkit.event.player.PlayerChatEvent;
+import org.bukkit.event.player.PlayerEvent;
+import org.bukkit.event.player.PlayerListener;
+
+public class mcPlayerListener extends PlayerListener {
+	public Location spawn = null;
+    private static mcMMO plugin;
+
+    public mcPlayerListener(mcMMO instance) {
+    	plugin = instance;
+    }
+    public void onPlayerJoin(PlayerEvent event) {
+    	Player player = event.getPlayer();
+    	mcUsers.addUser(player);
+    	player.sendMessage(ChatColor.GREEN+"Welcome to /v/ - Minecraft");
+    	player.sendMessage(ChatColor.GREEN+"Steam Group: vminecraft");
+    	player.sendMessage(ChatColor.AQUA + "This server is running mcMMO type /stats for your information");
+    	player.sendMessage(ChatColor.GREEN + "Use "+ChatColor.YELLOW+"/party "+ChatColor.WHITE+"to create/join parties.");
+    	player.sendMessage(ChatColor.GREEN + "Use "+ChatColor.YELLOW+"/p"+ChatColor.WHITE+" to toggle party chat");
+    	player.sendMessage("Set your spawn with "+ChatColor.YELLOW+"/setmyspawn"+ChatColor.WHITE+", Travel to it with /myspawn");
+    	player.sendMessage(ChatColor.RED+"WARNING: "+ChatColor.DARK_GRAY+ "Using /myspawn will clear your inventory!"); 
+    }
+    public void onPlayerCommand(PlayerChatEvent event) {
+    	Player player = event.getPlayer();
+    	String[] split = event.getMessage().split(" ");
+    	String playerName = player.getName();
+    	//mcMMO command
+    	if(split[0].equalsIgnoreCase("/whereis")){
+    		if(!player.isOp())
+    			return;
+    		if(split.length == 1){
+    			player.sendMessage("Usage is /whereis [player]");
+    			return;
+    		}
+    		for(Player derp : plugin.getServer().getOnlinePlayers()){
+				if(derp.getName().toLowerCase().equals(split[2].toLowerCase())){
+					Location loc = derp.getLocation();
+					player.sendMessage("Player  " + derp.getName() + " Coordinates");
+					player.sendMessage("X: " + String(loc.getX()));
+					player.sendMessage("Y: " + String(loc.getY()));
+					player.sendMessage("Z: " + String(loc.getZ()));
+				}
+			}
+    	}
+    	if(split[0].equalsIgnoreCase("/setmyspawn")){
+    		double x = player.getLocation().getX();
+    		double y = player.getLocation().getY();
+    		double z = player.getLocation().getZ();
+    		mcUsers.getProfile(player).setMySpawn(x, y, z);
+    		player.sendMessage(ChatColor.DARK_AQUA + "Myspawn has been set to your current location.");
+    	}
+    	if(player.isOp() && split[0].equalsIgnoreCase("/setspawn")){
+    		spawn = event.getPlayer().getLocation();
+    		player.sendMessage("Spawn set to current location");
+    	}
+    	if(split[0].equalsIgnoreCase("/stats")){
+    		event.setCancelled(true);
+    		player.sendMessage(ChatColor.DARK_GREEN + "mcMMO stats");
+    		player.sendMessage(ChatColor.DARK_GREEN + "Gathering Skill: " + mcUsers.getProfile(player).getgather());
+    		player.sendMessage(ChatColor.GRAY + "Increases as you gather materials from the world");
+    		player.sendMessage(ChatColor.GRAY + "Effect: Increases chance to gather more than one of a rare material");
+    	}
+    	//Party command
+    	if(split[0].equalsIgnoreCase("/party")){
+    		event.setCancelled(true);
+    		if(split.length == 1){
+    			player.sendMessage("Proper usage is /party <name> or 'q' to quit");
+    			return;
+    		}
+    		if(split[1].equals("q") && mcUsers.getProfile(player).inParty()){
+    			mcUsers.getProfile(player).removeParty();
+    			informPartyMembersQuit(player);
+    			return;
+    		}
+    		mcUsers.getProfile(player).setParty(split[1]);
+    		player.sendMessage("Joined Party: " + split[1]);
+    		informPartyMembers(player);
+    	}
+    	if(split[0].equalsIgnoreCase("/p")){
+    		if(mcConfig.getInstance().isAdminToggled(player.getName()))
+    		mcConfig.getInstance().toggleAdminChat(playerName);
+    		mcConfig.getInstance().togglePartyChat(playerName);
+    		if(mcConfig.getInstance().isPartyToggled(playerName)){
+    			player.sendMessage(ChatColor.GREEN + "Party Chat Toggled On");
+    		} else {
+    			player.sendMessage(ChatColor.GREEN + "Party Chat Toggled " + ChatColor.RED + "Off");
+    		}
+    	}
+    	if(split[0].equalsIgnoreCase("/a") && player.isOp()){
+    		if(mcConfig.getInstance().isPartyToggled(player.getName()))
+    		mcConfig.getInstance().togglePartyChat(playerName);
+    		mcConfig.getInstance().toggleAdminChat(playerName);
+    		if(mcConfig.getInstance().isAdminToggled(playerName)){
+    			player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.GREEN + "On");
+    		} else {
+    			player.sendMessage(ChatColor.AQUA + "Admin chat toggled " + ChatColor.RED + "Off");
+    		}
+    	}
+    	if(split[0].equalsIgnoreCase("/myspawn")){
+    		player.getInventory().clear();
+    		player.setHealth(20);
+    		player.teleportTo(mcUsers.getProfile(player).getMySpawn(player));
+    		player.sendMessage("Inventory cleared & health restored");
+    	}
+    	if(split[0].equalsIgnoreCase("/spawn")){
+    		if(spawn != null){
+    			player.teleportTo(spawn);
+    			player.sendMessage("Welcome to spawn, home of the dumbfucks");
+    			return;
+    		}
+    		player.sendMessage("Spawn isn't configured. Have an OP set it with /setspawn");
+    	}
+    }
+    private String String(double x) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	public void onPlayerChat(PlayerChatEvent event) {
+    	Player player = event.getPlayer();
+    	String[] split = event.getMessage().split(" ");
+    	String x = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getName() + ChatColor.GREEN + ") ";
+    	String y = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getName() + ChatColor.AQUA + "} ";
+    	if(mcConfig.getInstance().isPartyToggled(player.getName())){
+    		event.setCancelled(true);
+    		for(Player herp : plugin.getServer().getOnlinePlayers()){
+    			if(mcUsers.getProfile(herp).inParty()){
+    			if(inSameParty(herp, player)){
+    				herp.sendMessage(x+event.getMessage());
+    			}
+    			}
+    		}
+    		return;
+    	}
+    	if(player.isOp() && mcConfig.getInstance().isAdminToggled(player.getName())){
+    		event.setCancelled(true);
+    		for(Player herp : plugin.getServer().getOnlinePlayers()){
+    			if(herp.isOp()){
+    				herp.sendMessage(y+event.getMessage());
+    			}
+    		}
+    		return;
+    	}
+    	if(player.isOp()){
+    		event.setCancelled(true);
+    		for(Player derp : plugin.getServer().getOnlinePlayers()){
+    			String z = ChatColor.RED + "<" + ChatColor.WHITE + player.getName() + ChatColor.RED + "> "+ChatColor.WHITE;
+    			derp.sendMessage(z+event.getMessage());
+    		}
+    	}
+    	}
+    public static void informPartyMembers(Player player){
+        int x = 0;
+        for(Player p : plugin.getServer().getOnlinePlayers()){
+                if(inSameParty(player, p) && !p.getName().equals(player.getName())){
+                p.sendMessage(player.getName() + ChatColor.GREEN + " has joined your party");
+                x++;
+                }
+            }
+    }
+    public static void informPartyMembersQuit(Player player){
+        int x = 0;
+        for(Player p : plugin.getServer().getOnlinePlayers()){
+                if(inSameParty(player, p) && !p.getName().equals(player.getName())){
+                p.sendMessage(player.getName() + ChatColor.GREEN + " has left your party");
+                x++;
+                }
+            }
+    }
+    public static boolean inSameParty(Player playera, Player playerb){
+        if(mcUsers.getProfile(playera).getParty().equals(mcUsers.getProfile(playerb).getParty())){
+            return true;
+        } else {
+            return false;
+        }
+    }
+}

+ 374 - 0
mcMMO/com/bukkit/nossr50/mcMMO/mcUsers.java

@@ -0,0 +1,374 @@
+package com.bukkit.nossr50.mcMMO;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.bukkit.Location;
+import org.bukkit.entity.*;
+
+public class mcUsers {
+    private static volatile mcUsers instance;
+    protected static final Logger log = Logger.getLogger("Minecraft");
+    String location = "mcMMO.users";
+    public static PlayerList players = new PlayerList();
+    private Properties properties = new Properties();
+    
+    //To load
+    public void load() throws IOException {
+        properties.load(new FileInputStream(location));
+    }
+    //To save
+    public void save() {
+        try {
+        properties.store(new FileOutputStream(location), null);
+        }catch(IOException ex) {
+        }
+    }
+    
+    
+    public void loadUsers(){
+        File theDir = new File(location);
+		if(!theDir.exists()){
+			//properties = new PropertiesFile(location);
+			FileWriter writer = null;
+			try {
+				writer = new FileWriter(location);
+				writer.write("#Storage place for user information\r\n");
+                writer.write("#username:nickname:suffix:tag:ignore,list,names:alias,commands,here\r\n");
+			} catch (Exception e) {
+				log.log(Level.SEVERE, "Exception while creating " + location, e);
+			} finally {
+				try {
+					if (writer != null) {
+						writer.close();
+					}
+				} catch (IOException e) {
+					log.log(Level.SEVERE, "Exception while closing writer for " + location, e);
+				}
+			}
+
+		} else {
+			//properties = new PropertiesFile(location);
+			try {
+				load();
+			} catch (IOException e) {
+				log.log(Level.SEVERE, "Exception while loading " + location, e);
+			}
+		}
+    }
+
+	//=====================================================================
+	//Function:	addUser
+	//Input:	Player player: The player to create a profile for
+	//Output:	none
+	//Use:		Loads the profile for the specified player
+	//=====================================================================
+    public static void addUser(Player player){
+    	players.addPlayer(player);
+    }
+
+	//=====================================================================
+	//Function:	removeUser
+	//Input:	Player player: The player to stop following
+	//Output:	none
+	//Use:		Creates the player profile
+	//=====================================================================
+    public static void removeUser(Player player){
+    	players.removePlayer(player);
+    }
+
+	//=====================================================================
+	//Function:	getProfile
+	//Input:	Player player: The player to find the profile for
+	//Output:	PlayerList.PlayerProfile: The profile
+	//Use:		Gets the player profile
+	//=====================================================================
+    public static PlayerList.PlayerProfile getProfile(Player player){
+    	return players.findProfile(player);
+    }
+    
+    public static mcUsers getInstance() {
+		if (instance == null) {
+			instance = new mcUsers();
+		}
+		return instance;
+	}
+    public static void getRow(){
+
+    }
+}
+class PlayerList
+{       
+    protected static final Logger log = Logger.getLogger("Minecraft");
+	ArrayList<PlayerProfile> players;
+	
+	//=====================================================================
+	//Function:	PlayerList
+	//Input:	Player player: The player to create a profile object for
+	//Output:	none
+	//Use:		Initializes the ArrayList
+	//=====================================================================
+	public PlayerList() { players = new ArrayList<PlayerProfile>(); }
+
+	//=====================================================================
+	//Function:	addPlayer
+	//Input:	Player player: The player to add
+	//Output:	None
+	//Use:		Add a profile of the specified player
+	//=====================================================================
+	public void addPlayer(Player player)
+	{
+		players.add(new PlayerProfile(player));
+	}
+
+	//=====================================================================
+	//Function:	removePlayer
+	//Input:	Player player: The player to remove
+	//Output:	None
+	//Use:		Remove the profile of the specified player
+	//=====================================================================
+	public void removePlayer(Player player)
+	{
+		players.remove(findProfile(player));
+	}
+
+	//=====================================================================
+	//Function:	findProfile
+	//Input:	Player player: The player to find's profile
+	//Output:	PlayerProfile: The profile of the specified player
+	//Use:		Get the profile for the specified player
+	//=====================================================================
+	public PlayerProfile findProfile(Player player)
+	{
+		for(PlayerProfile ply : players)
+		{
+			if(ply.isPlayer(player))
+				return ply;
+		}
+		return null;
+	}
+	
+	class PlayerProfile
+	{
+	    protected final Logger log = Logger.getLogger("Minecraft");
+		private String playerName, gather, party, myspawn;
+		private boolean dead;
+		char defaultColor;
+
+        String location = "mcMMO.users";
+		
+		
+		//=====================================================================
+		//Function:	PlayerProfile
+		//Input:	Player player: The player to create a profile object for
+		//Output:	none
+		//Use:		Loads settings for the player or creates them if they don't
+		//			exist.
+		//=====================================================================
+		public PlayerProfile(Player player)
+		{
+            //Declare things
+			playerName = player.getName();
+            party = new String();
+            myspawn = new String();
+            gather = new String();
+            party = null;
+            dead = false;
+            
+            //Try to load the player and if they aren't found, append them
+            if(!load())
+            	addPlayer();
+		}
+		
+		public boolean load()
+		{
+            try {
+            	//Open the user file
+            	FileReader file = new FileReader(location);
+            	BufferedReader in = new BufferedReader(file);
+            	String line = "";
+            	while((line = in.readLine()) != null)
+            	{
+            		//Find if the line contains the player we want.
+            		String[] character = line.split(":");
+            		if(!character[0].equals(playerName)){continue;}
+            		
+        			//Get gather
+        			if(character.length > 1)
+        				gather = character[1];
+        			if(character.length > 2){
+        				myspawn = character[2];
+        			}
+                	in.close();
+        			return true;
+            	}
+            	in.close();
+	        } catch (Exception e) {
+	            log.log(Level.SEVERE, "Exception while reading "
+	            		+ location + " (Are you sure you formatted it correctly?)", e);
+	        }
+	        return false;
+		}
+		
+        //=====================================================================
+        // Function:    save
+        // Input:       none
+        // Output:      None
+        // Use:         Writes current values of PlayerProfile to disk
+		//				Call this function to save current values
+        //=====================================================================
+        public void save()
+        {
+            try {
+            	//Open the file
+            	FileReader file = new FileReader(location);
+                BufferedReader in = new BufferedReader(file);
+                StringBuilder writer = new StringBuilder();
+            	String line = "";
+            	
+            	//While not at the end of the file
+            	while((line = in.readLine()) != null)
+            	{
+            		//Read the line in and copy it to the output it's not the player
+            		//we want to edit
+            		if(!line.split(":")[0].equalsIgnoreCase(playerName))
+            		{
+                        writer.append(line).append("\r\n");
+                        
+                    //Otherwise write the new player information
+            		} else {
+            			writer.append(playerName + ":");
+            			writer.append(gather + ":");
+            			writer.append(myspawn + ":");
+            			writer.append("\r\n");                   			
+            		}
+            	}
+            	in.close();
+            	//Write the new file
+                FileWriter out = new FileWriter(location);
+                out.write(writer.toString());
+                out.close();
+	        } catch (Exception e) {
+                    log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
+	        }
+		}
+        public void addPlayer()
+        {
+            try {
+            	//Open the file to write the player
+            	FileWriter file = new FileWriter(location, true);
+                BufferedWriter out = new BufferedWriter(file);
+                
+                //Add the player to the end
+                out.append(playerName + ":");
+                out.append(gather + ":");
+                out.append(myspawn+":");
+                //Add more in the same format as the line above
+                
+    			out.newLine();
+    			out.close();
+	        } catch (Exception e) {
+                    log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
+	        }
+        }
+
+		//=====================================================================
+		//Function:	isPlayer
+		//Input:	None
+		//Output:	Player: The player this profile belongs to
+		//Use:		Finds if this profile belongs to a specified player
+		//=====================================================================
+		public boolean isPlayer(Player player)
+		{
+			return player.getName().equals(playerName);
+		}
+		
+		public void addgather(int newgather)
+		{
+			int x = 0;
+			if(isInt(gather)){
+			x = Integer.parseInt(gather);
+			}
+			x += newgather;
+			gather = String.valueOf(x);
+			save();
+		}
+
+		public boolean isInt(String string){
+			try {
+			    int x = Integer.parseInt(gather);
+			    return true;
+			}
+			catch(NumberFormatException nFE) {
+			    return false;
+			}
+		}
+		//Returns player gather
+		public String getgather() { return gather; }
+                
+                //Store the player's party
+                public void setParty(String newParty)
+                {
+                    party = newParty;
+                    save();
+                }
+                //Retrieve the player's party
+                public String getParty() {return party;}
+                //Remove party
+                public void removeParty() {
+                    party = null;
+                    save();
+                }
+                //Retrieve whether or not the player is in a party
+                public boolean inParty() {
+                    if(party != null){
+                        return true;
+                    } else {
+                        return false;
+                    }
+                }
+                //Save a users spawn location
+                public void setMySpawn(double x, double y, double z){
+            		myspawn = x+","+y+","+z;
+            		save();
+            	}
+                public String getX(){
+                	String[] split = myspawn.split(",");
+                	String x = split[0];
+                	return x;
+                }
+                public String getY(){
+                	String[] split = myspawn.split(",");
+                	String y = split[1];
+                	return y;
+                }
+                public String getZ(){
+                	String[] split = myspawn.split(",");
+                	String z = split[2];
+                	return z;
+                }
+                public void setDead(boolean x){
+                	dead = x;
+                	save();
+                }
+                public boolean isDead(){
+                	return dead;
+                }
+                public Location getMySpawn(Player player){
+                	Location loc = player.getLocation();
+            		loc.setX(Double.parseDouble(mcUsers.getProfile(player).getX()));
+            		loc.setY(Double.parseDouble(mcUsers.getProfile(player).getY()));
+            		loc.setZ(Double.parseDouble(mcUsers.getProfile(player).getZ()));
+            		loc.setYaw(0);
+            		loc.setPitch(0);
+            		return loc;
+                }
+	}
+	
+}
+
+
+

+ 3 - 0
mcMMO/plugin.yml

@@ -0,0 +1,3 @@
+name: mcMMO
+main: com.bukkit.nossr50.mcMMO.mcMMO
+version: alpha