From d97e97ae5f06655b77e4f71c3ced2b7c326856fa Mon Sep 17 00:00:00 2001 From: NuclearW Date: Sat, 11 Feb 2012 00:02:48 -0500 Subject: [PATCH] Add McMMOPlayerXpGainEvent Rename playername to playerName --- .../nossr50/datatypes/PlayerProfile.java | 19 ++++-- .../events/McMMOPlayerXpGainEvent.java | 68 +++++++++++++++++++ 2 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/gmail/nossr50/events/McMMOPlayerXpGainEvent.java diff --git a/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java index 92260792b..4127b6a3b 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java +++ b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java @@ -32,6 +32,7 @@ import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.entity.Player; import com.gmail.nossr50.config.LoadProperties; +import com.gmail.nossr50.events.McMMOPlayerXpGainEvent; import com.gmail.nossr50.party.Party; import com.gmail.nossr50.Users; import com.gmail.nossr50.m; @@ -64,7 +65,7 @@ public class PlayerProfile //MySQL STUFF private int xpbarinc=0, lastlogin=0, userid = 0, bleedticks = 0; - private String playername; + private String playerName; //Time to HashMap this shiz HashMap skills = new HashMap(); //Skills and XP @@ -92,7 +93,7 @@ public class PlayerProfile } } - playername = player.getName(); + playerName = player.getName(); if (LoadProperties.useMySQL) { if(!loadMySQL(player)) { @@ -219,7 +220,7 @@ public class PlayerProfile //Find if the line contains the player we want. String[] character = line.split(":"); - if(!character[0].equals(playername)){continue;} + if(!character[0].equals(playerName)){continue;} //Get Mining if(character.length > 1 && m.isInt(character[1])) @@ -377,13 +378,13 @@ public class PlayerProfile { //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)) + if(!line.split(":")[0].equalsIgnoreCase(playerName)) { writer.append(line).append("\r\n"); //Otherwise write the new player information } else { - writer.append(playername + ":"); + writer.append(playerName + ":"); writer.append(skills.get(SkillType.MINING) + ":"); writer.append(myspawn + ":"); writer.append(party+":"); @@ -442,7 +443,7 @@ public class PlayerProfile BufferedWriter out = new BufferedWriter(file); //Add the player to the end - out.append(playername + ":"); + out.append(playerName + ":"); out.append(0 + ":"); //mining out.append(myspawn+":"); out.append(party+":"); @@ -580,7 +581,7 @@ public class PlayerProfile public boolean isPlayer(String player) { - return player.equals(playername); + return player.equals(Bukkit.getPlayer(playerName)); } public boolean getPartyChatOnlyToggle(){return partyChatOnly;} public void togglePartyChatOnly(){partyChatOnly = !partyChatOnly;} @@ -852,12 +853,14 @@ public class PlayerProfile { if(x == SkillType.ALL) continue; + Bukkit.getPluginManager().callEvent(new McMMOPlayerXpGainEvent(Bukkit.getPlayer(playerName), x, newvalue)); skillsXp.put(x, skillsXp.get(x)+newvalue); } } else { int xp = newvalue; xp=xp*LoadProperties.xpGainMultiplier; + Bukkit.getPluginManager().callEvent(new McMMOPlayerXpGainEvent(Bukkit.getPlayer(playerName), skillType, xp)); skillsXp.put(skillType, skillsXp.get(skillType)+xp); lastgained = skillType; } @@ -904,6 +907,7 @@ public class PlayerProfile { if(x == SkillType.ALL) continue; + Bukkit.getPluginManager().callEvent(new McMMOPlayerXpGainEvent(Bukkit.getPlayer(playerName), x, newvalue)); skillsXp.put(x, skillsXp.get(x)+newvalue); } } else { @@ -958,6 +962,7 @@ public class PlayerProfile double percent = (trueBonus/oldxp)*100; thisplayer.sendMessage(ChatColor.GREEN+"XP: "+oldxp+" Bonus XP: "+trueBonus+" Total: "+xp+ChatColor.GOLD+" [Master: "+leaderName+" " +" +"+(int)percent+"%]"); } + Bukkit.getPluginManager().callEvent(new McMMOPlayerXpGainEvent(Bukkit.getPlayer(playerName), skillType, xp)); skillsXp.put(skillType, skillsXp.get(skillType)+xp); lastgained = skillType; } diff --git a/src/main/java/com/gmail/nossr50/events/McMMOPlayerXpGainEvent.java b/src/main/java/com/gmail/nossr50/events/McMMOPlayerXpGainEvent.java new file mode 100644 index 000000000..c66c01d67 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/events/McMMOPlayerXpGainEvent.java @@ -0,0 +1,68 @@ +/* + This file is part of mcMMO. + + mcMMO is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + mcMMO is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with mcMMO. If not, see . +*/ +package com.gmail.nossr50.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import com.gmail.nossr50.datatypes.SkillType; + +@SuppressWarnings("serial") +public class McMMOPlayerXpGainEvent extends Event { + private Player player; + private SkillType skill; + private int xpGained; + + public McMMOPlayerXpGainEvent(Player player, SkillType skill, int xpGained) { + this.player = player; + this.skill = skill; + this.xpGained = xpGained; + } + + /** + * @return Player gaining experience (can be null) + */ + public Player getPlayer() { + return player; + } + + /** + * @return SkillType that is gaining experience + */ + public SkillType getSkill() { + return skill; + } + + /** + * @return The number experience gained in this event + */ + public int getXpGained() { + return xpGained; + } + + /** Rest of file is required boilerplate for custom events **/ + private static final HandlerList handlers = new HandlerList(); + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } +}