Moving party stuff from PlayerProfile to McMMOPlayer

This commit is contained in:
bm01 2013-02-03 16:27:59 +01:00
parent 52bd48cde7
commit 51305118fa
9 changed files with 191 additions and 247 deletions

View File

@ -20,7 +20,7 @@ public final class PartyAPI {
* @return the name of the player's party * @return the name of the player's party
*/ */
public static String getPartyName(Player player) { public static String getPartyName(Player player) {
return Users.getPlayer(player).getProfile().getParty().getName(); return Users.getPlayer(player).getParty().getName();
} }
/** /**
@ -32,7 +32,7 @@ public final class PartyAPI {
* @return true if the player is in a party, false otherwise * @return true if the player is in a party, false otherwise
*/ */
public static boolean inParty(Player player) { public static boolean inParty(Player player) {
return Users.getPlayer(player).getProfile().inParty(); return Users.getPlayer(player).inParty();
} }
/** /**
@ -77,7 +77,7 @@ public final class PartyAPI {
party.setLeader(playerName); party.setLeader(playerName);
} }
PartyManager.addToParty(playerName, Users.getPlayer(player).getProfile(), party); PartyManager.addToParty(playerName, Users.getPlayer(player), party);
} }
/** /**
@ -88,7 +88,7 @@ public final class PartyAPI {
* @param player The player to remove * @param player The player to remove
*/ */
public static void removeFromParty(Player player) { public static void removeFromParty(Player player) {
PartyManager.removeFromParty(player.getName(), Users.getPlayer(player).getProfile().getParty()); PartyManager.removeFromParty(player.getName(), Users.getPlayer(player).getParty());
} }
/** /**

View File

@ -8,14 +8,14 @@ import org.bukkit.entity.Player;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.chat.ChatManager; import com.gmail.nossr50.chat.ChatManager;
import com.gmail.nossr50.commands.CommandHelper; import com.gmail.nossr50.commands.CommandHelper;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.McMMOPlayer;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Users; import com.gmail.nossr50.util.Users;
public class ACommand implements CommandExecutor { public class ACommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
PlayerProfile profile; McMMOPlayer mcMMOPlayer;
String usage = LocaleLoader.getString("Commands.Usage.1", "a", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">"); String usage = LocaleLoader.getString("Commands.Usage.1", "a", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">");
if (CommandHelper.noCommandPermissions(sender, "mcmmo.chat.adminchat")) { if (CommandHelper.noCommandPermissions(sender, "mcmmo.chat.adminchat")) {
@ -25,15 +25,15 @@ public class ACommand implements CommandExecutor {
switch (args.length) { switch (args.length) {
case 0: case 0:
if (sender instanceof Player) { if (sender instanceof Player) {
profile = Users.getProfile((Player) sender); mcMMOPlayer = Users.getPlayer((Player) sender);
if (profile.getPartyChatMode()) { if (mcMMOPlayer.getPartyChatMode()) {
profile.togglePartyChat(); mcMMOPlayer.togglePartyChat();
} }
profile.toggleAdminChat(); mcMMOPlayer.toggleAdminChat();
if (profile.getAdminChatMode()) { if (mcMMOPlayer.getAdminChatMode()) {
sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.On")); sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.On"));
} }
else { else {

View File

@ -8,7 +8,7 @@ import org.bukkit.entity.Player;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.chat.ChatManager; import com.gmail.nossr50.chat.ChatManager;
import com.gmail.nossr50.commands.CommandHelper; import com.gmail.nossr50.commands.CommandHelper;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.McMMOPlayer;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.party.PartyManager;
@ -23,7 +23,7 @@ public class PCommand implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
PlayerProfile profile; McMMOPlayer mcMMOPlayer;
String usage = LocaleLoader.getString("Commands.Usage.2", "p", "<" + LocaleLoader.getString("Commands.Usage.PartyName") + ">", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">"); String usage = LocaleLoader.getString("Commands.Usage.2", "p", "<" + LocaleLoader.getString("Commands.Usage.PartyName") + ">", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">");
if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.party")) { if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.party")) {
@ -33,15 +33,15 @@ public class PCommand implements CommandExecutor {
switch (args.length) { switch (args.length) {
case 0: case 0:
if (sender instanceof Player) { if (sender instanceof Player) {
profile = Users.getProfile((Player) sender); mcMMOPlayer = Users.getPlayer((Player) sender);
if (profile.getAdminChatMode()) { if (mcMMOPlayer.getAdminChatMode()) {
profile.toggleAdminChat(); mcMMOPlayer.toggleAdminChat();
} }
profile.togglePartyChat(); mcMMOPlayer.togglePartyChat();
if (profile.getPartyChatMode()) { if (mcMMOPlayer.getPartyChatMode()) {
sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.On")); sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.On"));
} }
else { else {
@ -57,7 +57,7 @@ public class PCommand implements CommandExecutor {
default: default:
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
Party party = Users.getProfile(player).getParty(); Party party = Users.getPlayer(player).getParty();
if (party == null) { if (party == null) {
player.sendMessage(LocaleLoader.getString("Commands.Party.None")); player.sendMessage(LocaleLoader.getString("Commands.Party.None"));

View File

@ -23,6 +23,12 @@ public class McMMOPlayer {
private PlayerProfile profile; private PlayerProfile profile;
private Party party; private Party party;
private Party invite; private Party invite;
private Player ptpRequest;
private boolean ptpEnabled = true;
private boolean ptpConfirmRequired = Config.getInstance().getPTPCommandConfirmRequired();
private long ptpTimeout;
private boolean partyChatMode;
private boolean adminChatMode;
public McMMOPlayer (Player player) { public McMMOPlayer (Player player) {
String playerName = player.getName(); String playerName = player.getName();
@ -204,4 +210,60 @@ public class McMMOPlayer {
public void removeInvite() { public void removeInvite() {
invite = null; invite = null;
} }
public boolean getPtpEnabled() {
return ptpEnabled;
}
public void togglePtpUse() {
ptpEnabled = !ptpEnabled;
}
public Player getPtpRequest() {
return ptpRequest;
}
public void setPtpRequest(Player ptpRequest) {
this.ptpRequest = ptpRequest;
}
public boolean hasPtpRequest() {
return (ptpRequest != null) ? true : false;
}
public void removePtpRequest() {
ptpRequest = null;
}
public boolean getPtpConfirmRequired() {
return ptpConfirmRequired;
}
public void togglePtpConfirmRequired() {
ptpConfirmRequired = !ptpConfirmRequired;
}
public long getPtpTimeout() {
return ptpTimeout;
}
public void actualizePtpTimeout() {
ptpTimeout = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
}
public boolean getAdminChatMode() {
return adminChatMode;
}
public void toggleAdminChat() {
adminChatMode = !adminChatMode;
}
public boolean getPartyChatMode() {
return partyChatMode;
}
public void togglePartyChat() {
partyChatMode = !partyChatMode;
}
} }

View File

@ -7,13 +7,9 @@ import java.io.FileWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.entity.Player;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.database.Database; import com.gmail.nossr50.database.Database;
import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.party.PartyManager;
import com.gmail.nossr50.skills.utilities.AbilityType; import com.gmail.nossr50.skills.utilities.AbilityType;
import com.gmail.nossr50.skills.utilities.SkillType; import com.gmail.nossr50.skills.utilities.SkillType;
import com.gmail.nossr50.skills.utilities.ToolType; import com.gmail.nossr50.skills.utilities.ToolType;
@ -23,25 +19,16 @@ import com.gmail.nossr50.spout.huds.SpoutHud;
import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Misc;
public class PlayerProfile { public class PlayerProfile {
private String playerName; private String playerName;
// HUD // HUD
private SpoutHud spoutHud; private SpoutHud spoutHud;
private HudType hudType; private HudType hudType;
// Party Stuff
private Party party;
private Party invite;
private Player ptpRequest;
private boolean ptpEnabled = true;
private boolean ptpConfirmRequired = Config.getInstance().getPTPCommandConfirmRequired();
// Toggles // Toggles
private boolean loaded; private boolean loaded;
private boolean placedAnvil; private boolean placedAnvil;
private boolean placedSalvageAnvil; private boolean placedSalvageAnvil;
private boolean partyChatMode, adminChatMode;
private boolean godMode; private boolean godMode;
private boolean greenTerraMode, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, serratedStrikesMode, skullSplitterMode, berserkMode; private boolean greenTerraMode, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, serratedStrikesMode, skullSplitterMode, berserkMode;
private boolean greenTerraInformed = true, berserkInformed = true, skullSplitterInformed = true, gigaDrillBreakerInformed = true, private boolean greenTerraInformed = true, berserkInformed = true, skullSplitterInformed = true, gigaDrillBreakerInformed = true,
@ -53,7 +40,6 @@ public class PlayerProfile {
// Timestamps // Timestamps
private long recentlyHurt; private long recentlyHurt;
private int respawnATS; private int respawnATS;
private long ptpTimeout;
// mySQL STUFF // mySQL STUFF
private int userId; private int userId;
@ -67,7 +53,6 @@ public class PlayerProfile {
public PlayerProfile(String playerName, boolean addNew) { public PlayerProfile(String playerName, boolean addNew) {
this.playerName = playerName; this.playerName = playerName;
party = PartyManager.getPlayerParty(playerName);
if (mcMMO.spoutEnabled) { if (mcMMO.spoutEnabled) {
hudType = SpoutConfig.getInstance().defaultHudType; hudType = SpoutConfig.getInstance().defaultHudType;
@ -546,26 +531,6 @@ public class PlayerProfile {
this.hudType = hudType; this.hudType = hudType;
} }
/*
* Chat Stuff
*/
public boolean getAdminChatMode() {
return adminChatMode;
}
public void toggleAdminChat() {
adminChatMode = !adminChatMode;
}
public boolean getPartyChatMode() {
return partyChatMode;
}
public void togglePartyChat() {
partyChatMode = !partyChatMode;
}
/* /*
* Tools * Tools
*/ */
@ -1172,92 +1137,4 @@ public class PlayerProfile {
/* /*
* Party Stuff * Party Stuff
*/ */
public void setInvite(Party invite) {
this.invite = invite;
}
public Party getInvite() {
return invite;
}
public boolean hasPartyInvite() {
if (invite != null) {
return true;
}
return false;
}
public void setParty(Party party) {
this.party = party;
}
public Party getParty() {
return party;
}
public boolean inParty() {
if (party != null) {
return true;
}
return false;
}
public void removeParty() {
party = null;
}
public void removeInvite() {
invite = null;
}
/*
* Party Teleportation
*/
public boolean getPtpEnabled() {
return ptpEnabled;
}
public void togglePtpUse() {
ptpEnabled = !ptpEnabled;
}
public void setPtpRequest(Player ptpRequest) {
this.ptpRequest = ptpRequest;
}
public Player getPtpRequest() {
return ptpRequest;
}
public boolean hasPtpRequest() {
if (ptpRequest != null) {
return true;
}
return false;
}
public void removePtpRequest() {
ptpRequest = null;
}
public boolean getPtpConfirmRequired() {
return ptpConfirmRequired;
}
public void togglePtpConfirmRequired() {
ptpConfirmRequired = !ptpConfirmRequired;
}
public long getPtpTimeout() {
return ptpTimeout;
}
public void actualizePtpTimeout() {
ptpTimeout = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
}
} }

View File

@ -63,15 +63,16 @@ public class PlayerListener implements Listener {
return; return;
} }
PlayerProfile profile = Users.getPlayer(player).getProfile(); McMMOPlayer mcMMOPlayer = Users.getPlayer(player);
PlayerProfile profile = mcMMOPlayer.getProfile();
if (profile.getGodMode() && !Permissions.mcgod(player)) { if (profile.getGodMode() && !Permissions.mcgod(player)) {
profile.toggleGodMode(); profile.toggleGodMode();
player.sendMessage(LocaleLoader.getString("Commands.GodMode.Forbidden")); player.sendMessage(LocaleLoader.getString("Commands.GodMode.Forbidden"));
} }
if (profile.inParty() && !Permissions.party(player)) { if (mcMMOPlayer.inParty() && !Permissions.party(player)) {
profile.removeParty(); mcMMOPlayer.removeParty();
player.sendMessage(LocaleLoader.getString("Party.Forbidden")); player.sendMessage(LocaleLoader.getString("Party.Forbidden"));
} }
} }
@ -334,10 +335,10 @@ public class PlayerListener implements Listener {
return; return;
} }
PlayerProfile profile = Users.getPlayer(player).getProfile(); McMMOPlayer mcMMOPlayer = Users.getPlayer(player);
if (profile.getPartyChatMode()) { if (mcMMOPlayer.getPartyChatMode()) {
Party party = profile.getParty(); Party party = mcMMOPlayer.getParty();
if (party == null) { if (party == null) {
player.sendMessage(LocaleLoader.getString("Commands.Party.None")); player.sendMessage(LocaleLoader.getString("Commands.Party.None"));
@ -347,7 +348,7 @@ public class PlayerListener implements Listener {
ChatManager.handlePartyChat(plugin, party, player.getName(), player.getDisplayName(), event.getMessage()); ChatManager.handlePartyChat(plugin, party, player.getName(), player.getDisplayName(), event.getMessage());
event.setCancelled(true); event.setCancelled(true);
} }
else if (profile.getAdminChatMode()) { else if (mcMMOPlayer.getAdminChatMode()) {
ChatManager.handleAdminChat(plugin, player.getName(), player.getDisplayName(), event.getMessage()); ChatManager.handleAdminChat(plugin, player.getName(), player.getDisplayName(), event.getMessage());
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -8,6 +8,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.McMMOPlayer;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Misc;
@ -27,15 +28,15 @@ public final class PartyManager {
* @return true if they are in the same party, false otherwise * @return true if they are in the same party, false otherwise
*/ */
public static boolean inSameParty(Player firstPlayer, Player secondPlayer) { public static boolean inSameParty(Player firstPlayer, Player secondPlayer) {
PlayerProfile firstProfile = Users.getProfile(firstPlayer); McMMOPlayer firstMcMMOPlayer = Users.getPlayer(firstPlayer);
PlayerProfile secondProfile = Users.getProfile(secondPlayer); McMMOPlayer secondMcMMOPlayer = Users.getPlayer(secondPlayer);
if (firstProfile == null || secondProfile == null) { if (firstMcMMOPlayer == null || secondMcMMOPlayer == null) {
return false; return false;
} }
Party firstParty = firstProfile.getParty(); Party firstParty = firstMcMMOPlayer.getParty();
Party secondParty = secondProfile.getParty(); Party secondParty = secondMcMMOPlayer.getParty();
if (firstParty == null || secondParty == null || firstParty != secondParty) { if (firstParty == null || secondParty == null || firstParty != secondParty) {
return false; return false;
@ -98,7 +99,7 @@ public final class PartyManager {
* @return all the players in the player's party * @return all the players in the player's party
*/ */
public static List<String> getAllMembers(Player player) { public static List<String> getAllMembers(Player player) {
Party party = Users.getProfile(player).getParty(); Party party = Users.getPlayer(player).getParty();
if (party == null) { if (party == null) {
return null; return null;
@ -197,10 +198,10 @@ public final class PartyManager {
informPartyMembersQuit(playerName, party); informPartyMembersQuit(playerName, party);
} }
PlayerProfile playerProfile = Users.getProfile(playerName); McMMOPlayer mcMMOPlayer = Users.getPlayer(playerName);
if (playerProfile != null) { if (mcMMOPlayer != null) {
playerProfile.removeParty(); mcMMOPlayer.removeParty();
} }
} }
@ -213,10 +214,11 @@ public final class PartyManager {
List<String> members = party.getMembers(); List<String> members = party.getMembers();
for (String member : party.getMembers()) { for (String member : party.getMembers()) {
PlayerProfile playerProfile = Users.getProfile(member);
if (playerProfile != null) { McMMOPlayer mcMMOPlayer = Users.getPlayer(member);
playerProfile.removeParty();
if (mcMMOPlayer != null) {
mcMMOPlayer.removeParty();
} }
} }
@ -230,11 +232,11 @@ public final class PartyManager {
* Create a new party * Create a new party
* *
* @param player The player to add to the party * @param player The player to add to the party
* @param playerProfile The profile of the player to add to the party * @param mcMMOPlayer The player to add to the party
* @param partyName The party to add the player to * @param partyName The party to add the player to
* @param password the password for this party, null if there was no password * @param password The password for this party, null if there was no password
*/ */
public static void createParty(Player player, PlayerProfile playerProfile, String partyName, String password) { public static void createParty(Player player, McMMOPlayer mcMMOPlayer, String partyName, String password) {
partyName = partyName.replace(".", ""); partyName = partyName.replace(".", "");
Party party = getParty(partyName); Party party = getParty(partyName);
String playerName = player.getName(); String playerName = player.getName();
@ -260,18 +262,18 @@ public final class PartyManager {
} }
player.sendMessage(LocaleLoader.getString("Commands.Party.Create", party.getName())); player.sendMessage(LocaleLoader.getString("Commands.Party.Create", party.getName()));
addToParty(player.getName(), playerProfile, party); addToParty(player.getName(), mcMMOPlayer, party);
} }
/** /**
* Add a player to a party. * Add a player to a party.
* *
* @param player The player to add to the party * @param player The player to add to the party
* @param playerProfile The profile of the player to add to the party * @param mcMMOPlayer The player to add to the party
* @param partyName The party to add the player to * @param partyName The party to add the player to
* @param password the password for this party, null if there was no password * @param password the password for this party, null if there was no password
*/ */
public static void joinParty(Player player, PlayerProfile playerProfile, String partyName, String password) { public static void joinParty(Player player, McMMOPlayer mcMMOPlayer, String partyName, String password) {
partyName = partyName.replace(".", ""); partyName = partyName.replace(".", "");
Party party = getParty(partyName); Party party = getParty(partyName);
String playerName = player.getName(); String playerName = player.getName();
@ -294,7 +296,7 @@ public final class PartyManager {
} }
player.sendMessage(LocaleLoader.getString("Commands.Party.Join", party.getName())); player.sendMessage(LocaleLoader.getString("Commands.Party.Join", party.getName()));
addToParty(player.getName(), playerProfile, party); addToParty(player.getName(), mcMMOPlayer, party);
} }
/** /**
@ -333,31 +335,31 @@ public final class PartyManager {
/** /**
* Accept a party invitation * Accept a party invitation
* *
* @param player The player to add to the party * @param Player The plaer to add to the party
* @param playerProfile The profile of the player * @param mcMMOPlayer The player to add to the party
*/ */
public static void joinInvitedParty(Player player, PlayerProfile playerProfile) { public static void joinInvitedParty(Player player, McMMOPlayer mcMMOPlayer) {
Party invite = playerProfile.getInvite(); Party invite = mcMMOPlayer.getInvite();
if (!parties.contains(invite)) { if (!parties.contains(invite)) {
parties.add(invite); parties.add(invite);
} }
player.sendMessage(LocaleLoader.getString("Commands.Invite.Accepted", invite.getName())); player.sendMessage(LocaleLoader.getString("Commands.Invite.Accepted", invite.getName()));
playerProfile.removeInvite(); mcMMOPlayer.removeInvite();
addToParty(player.getName(), playerProfile, invite); addToParty(player.getName(), mcMMOPlayer, invite);
} }
/** /**
* Add a player to a party * Add a player to a party
* *
* @param playerName The name of the player to add to a party * @param playerName The name of the player to add to a party
* @param playerProfile The profile of the player * @param mcMMOPlayer The player to add to the party
* @param party The party * @param party The party
*/ */
public static void addToParty(String playerName, PlayerProfile playerProfile, Party party) { public static void addToParty(String playerName, McMMOPlayer mcMMOPlayer, Party party) {
informPartyMembersJoin(playerName, party); informPartyMembersJoin(playerName, party);
playerProfile.setParty(party); mcMMOPlayer.setParty(party);
party.getMembers().add(playerName); party.getMembers().add(playerName);
} }
@ -402,14 +404,14 @@ public final class PartyManager {
} }
/** /**
* Check if a player can invite others to their party. * Check if a player can invite others to his party.
* *
* @param player The player to check * @param player The player to check
* @param playerProfile The profile of the given player * @param mcMMOPlayer The player to check
* @return true if the player can invite * @return true if the player can invite
*/ */
public static boolean canInvite(Player player, PlayerProfile playerProfile) { public static boolean canInvite(Player player, McMMOPlayer mcMMOPlayer) {
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (party == null || (party.isLocked() && !party.getLeader().equals(player.getName()))) { if (party == null || (party.isLocked() && !party.getLeader().equals(player.getName()))) {
return false; return false;

View File

@ -10,7 +10,7 @@ import org.bukkit.entity.Player;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.commands.CommandHelper; import com.gmail.nossr50.commands.CommandHelper;
import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.McMMOPlayer;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
@ -20,8 +20,8 @@ import com.gmail.nossr50.party.ShareHandler;
import com.gmail.nossr50.util.Users; import com.gmail.nossr50.util.Users;
public class PartyCommand implements CommandExecutor { public class PartyCommand implements CommandExecutor {
private McMMOPlayer mcMMOPlayer;
private Player player; private Player player;
private PlayerProfile playerProfile;
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
@ -33,8 +33,8 @@ public class PartyCommand implements CommandExecutor {
return true; return true;
} }
this.player = (Player) sender; player = (Player) sender;
this.playerProfile = Users.getProfile(player); mcMMOPlayer = Users.getPlayer(player);
if (args.length < 1 || args[0].equalsIgnoreCase("info")) { if (args.length < 1 || args[0].equalsIgnoreCase("info")) {
return party(); return party();
@ -53,7 +53,7 @@ public class PartyCommand implements CommandExecutor {
return printHelp(); return printHelp();
} }
if (playerProfile.inParty()) { if (mcMMOPlayer.inParty()) {
if (args[0].equalsIgnoreCase("quit") || args[0].equalsIgnoreCase("q") || args[0].equalsIgnoreCase("leave")) { if (args[0].equalsIgnoreCase("quit") || args[0].equalsIgnoreCase("q") || args[0].equalsIgnoreCase("leave")) {
return quit(); return quit();
} }
@ -104,8 +104,8 @@ public class PartyCommand implements CommandExecutor {
} }
private boolean party() { private boolean party() {
if (playerProfile.inParty()) { if (mcMMOPlayer.inParty()) {
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
Server server = mcMMO.p.getServer(); Server server = mcMMO.p.getServer();
String leader = party.getLeader(); String leader = party.getLeader();
@ -174,9 +174,6 @@ public class PartyCommand implements CommandExecutor {
return true; return true;
} }
String playerName = player.getName();
Party party = playerProfile.getParty();
if (args.length < 2) { if (args.length < 2) {
player.sendMessage(LocaleLoader.getString("Party.Help.0")); player.sendMessage(LocaleLoader.getString("Party.Help.0"));
return true; return true;
@ -189,7 +186,7 @@ public class PartyCommand implements CommandExecutor {
return false; return false;
} }
if (!Users.getProfile(target).inParty()) { if (!mcMMOPlayer.inParty()) {
player.sendMessage(LocaleLoader.getString("Party.PlayerNotInParty", args[1])); player.sendMessage(LocaleLoader.getString("Party.PlayerNotInParty", args[1]));
return false; return false;
} }
@ -199,7 +196,9 @@ public class PartyCommand implements CommandExecutor {
return true; return true;
} }
if (party != null && party.equals(Users.getProfile(target).getParty())) { Party party = mcMMOPlayer.getParty();
if (party != null && party.equals(Users.getPlayer(target).getParty())) {
player.sendMessage(LocaleLoader.getString("Party.Join.Self")); player.sendMessage(LocaleLoader.getString("Party.Join.Self"));
return true; return true;
} }
@ -210,26 +209,26 @@ public class PartyCommand implements CommandExecutor {
password = args[2]; password = args[2];
} }
String partyTarget = PartyManager.getPlayerParty(target.getName()).getName(); Party targetParty = Users.getPlayer(target).getParty();
Party newParty = PartyManager.getParty(args[0]);
// Check to see if the party exists, and if it does, can the player join it? // Check to see if the party exists, and if it does, can the player join it?
if (newParty != null && !PartyManager.checkJoinability(player, newParty, null)) { if (targetParty != null && !PartyManager.checkJoinability(player, targetParty, null)) {
return true; // End before any event is fired. return true; // End before any event is fired.
} }
// TODO: We shoudln't fire the event before checking if the password is correct
if (party != null) { if (party != null) {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, party.getName(), partyTarget, EventReason.CHANGED_PARTIES); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, party.getName(), targetParty.getName(), EventReason.CHANGED_PARTIES);
mcMMO.p.getServer().getPluginManager().callEvent(event); mcMMO.p.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
return true; return true;
} }
PartyManager.removeFromParty(playerName, party); PartyManager.removeFromParty(player.getName(), party);
} }
else { else {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, null, partyTarget, EventReason.JOINED_PARTY); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, null, targetParty.getName(), EventReason.JOINED_PARTY);
mcMMO.p.getServer().getPluginManager().callEvent(event); mcMMO.p.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
@ -237,7 +236,8 @@ public class PartyCommand implements CommandExecutor {
} }
} }
PartyManager.joinParty(player, playerProfile, partyTarget, password);
PartyManager.joinParty(player, mcMMOPlayer, targetParty.getName(), password);
return true; return true;
} }
@ -246,10 +246,10 @@ public class PartyCommand implements CommandExecutor {
return true; return true;
} }
if (playerProfile.hasPartyInvite()) { if (mcMMOPlayer.hasPartyInvite()) {
if (playerProfile.inParty()) { if (mcMMOPlayer.inParty()) {
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, party.getName(), playerProfile.getInvite().getName(), EventReason.CHANGED_PARTIES); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, party.getName(), mcMMOPlayer.getInvite().getName(), EventReason.CHANGED_PARTIES);
mcMMO.p.getServer().getPluginManager().callEvent(event); mcMMO.p.getServer().getPluginManager().callEvent(event);
@ -260,7 +260,7 @@ public class PartyCommand implements CommandExecutor {
PartyManager.removeFromParty(player.getName(), party); PartyManager.removeFromParty(player.getName(), party);
} }
else { else {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, null, playerProfile.getInvite().getName(), EventReason.JOINED_PARTY); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, null, mcMMOPlayer.getInvite().getName(), EventReason.JOINED_PARTY);
mcMMO.p.getServer().getPluginManager().callEvent(event); mcMMO.p.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
@ -268,7 +268,7 @@ public class PartyCommand implements CommandExecutor {
} }
} }
PartyManager.joinInvitedParty(player, playerProfile); PartyManager.joinInvitedParty(player, mcMMOPlayer);
} }
else { else {
player.sendMessage(LocaleLoader.getString("mcMMO.NoInvites")); player.sendMessage(LocaleLoader.getString("mcMMO.NoInvites"));
@ -283,7 +283,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (args.length < 2) { if (args.length < 2) {
player.sendMessage(LocaleLoader.getString("Party.Help.1")); player.sendMessage(LocaleLoader.getString("Party.Help.1"));
@ -304,7 +304,7 @@ public class PartyCommand implements CommandExecutor {
return true; return true;
} }
if (playerProfile.inParty()) { if (mcMMOPlayer.inParty()) {
String oldPartyName = party.getName(); String oldPartyName = party.getName();
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, oldPartyName, partyname, EventReason.CHANGED_PARTIES); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, oldPartyName, partyname, EventReason.CHANGED_PARTIES);
mcMMO.p.getServer().getPluginManager().callEvent(event); mcMMO.p.getServer().getPluginManager().callEvent(event);
@ -314,7 +314,7 @@ public class PartyCommand implements CommandExecutor {
} }
PartyManager.removeFromParty(playerName, party); PartyManager.removeFromParty(playerName, party);
PartyManager.createParty(player, playerProfile, partyname, password); PartyManager.createParty(player, mcMMOPlayer, partyname, password);
} }
else { else {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, null, partyname, EventReason.JOINED_PARTY); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, null, partyname, EventReason.JOINED_PARTY);
@ -324,7 +324,7 @@ public class PartyCommand implements CommandExecutor {
return true; return true;
} }
PartyManager.createParty(player, playerProfile, partyname, password); PartyManager.createParty(player, mcMMOPlayer, partyname, password);
return true; return true;
} }
@ -337,7 +337,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (party != null) { if (party != null) {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, party.getName(), null, EventReason.LEFT_PARTY); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, party.getName(), null, EventReason.LEFT_PARTY);
@ -361,15 +361,14 @@ public class PartyCommand implements CommandExecutor {
return true; return true;
} }
String playerName = player.getName();
PlayerProfile playerProfile = Users.getProfile(player);
Party party = playerProfile.getParty();
if (args.length < 2) { if (args.length < 2) {
player.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "expshare", "[sharemode]")); player.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "expshare", "[sharemode]"));
return true; return true;
} }
String playerName = player.getName();
Party party = mcMMOPlayer.getParty();
if (party.getLeader().equals(playerName)) { if (party.getLeader().equals(playerName)) {
if (args[1].equalsIgnoreCase("none") || args[1].equalsIgnoreCase("false")) { if (args[1].equalsIgnoreCase("none") || args[1].equalsIgnoreCase("false")) {
party.setXpShareMode(ShareHandler.XpShareMode.NONE); party.setXpShareMode(ShareHandler.XpShareMode.NONE);
@ -411,7 +410,7 @@ public class PartyCommand implements CommandExecutor {
switch (args.length) { switch (args.length) {
case 2: case 2:
if (!playerProfile.inParty()) { if (!mcMMOPlayer.inParty()) {
player.sendMessage(LocaleLoader.getString("Commands.Party.None")); player.sendMessage(LocaleLoader.getString("Commands.Party.None"));
return true; return true;
} }
@ -423,10 +422,11 @@ public class PartyCommand implements CommandExecutor {
player.sendMessage(LocaleLoader.getString("Party.Player.InSameParty")); player.sendMessage(LocaleLoader.getString("Party.Player.InSameParty"));
return true; return true;
} }
if (PartyManager.canInvite(player, playerProfile)) {
Party party = playerProfile.getParty();
Users.getProfile(target).setInvite(party); if (PartyManager.canInvite(player, mcMMOPlayer)) {
Party party = mcMMOPlayer.getParty();
Users.getPlayer(target).setInvite(party);
player.sendMessage(LocaleLoader.getString("Commands.Invite.Success")); player.sendMessage(LocaleLoader.getString("Commands.Invite.Success"));
target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.0", party.getName(), player.getName())); target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.0", party.getName(), player.getName()));
target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.1")); target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.1"));
@ -455,7 +455,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (party.getLeader().equals(playerName)) { if (party.getLeader().equals(playerName)) {
if (!party.getMembers().contains(targetName)) { if (!party.getMembers().contains(targetName)) {
@ -496,7 +496,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (party.getLeader().equals(playerName)) { if (party.getLeader().equals(playerName)) {
for (Player onlineMembers : party.getOnlineMembers()) { for (Player onlineMembers : party.getOnlineMembers()) {
@ -528,7 +528,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (args.length < 2) { if (args.length < 2) {
player.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "owner", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]")); player.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "owner", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]"));
@ -556,7 +556,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (party != null) { if (party != null) {
if (party.getLeader().equals(playerName)) { if (party.getLeader().equals(playerName)) {
@ -588,7 +588,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (party != null) { if (party != null) {
if (party.getLeader().equals(playerName)) { if (party.getLeader().equals(playerName)) {
@ -617,7 +617,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
if (!party.getLeader().equals(playerName)) { if (!party.getLeader().equals(playerName)) {
player.sendMessage(LocaleLoader.getString("Party.NotOwner")); player.sendMessage(LocaleLoader.getString("Party.NotOwner"));
@ -647,7 +647,7 @@ public class PartyCommand implements CommandExecutor {
} }
String playerName = player.getName(); String playerName = player.getName();
Party party = playerProfile.getParty(); Party party = mcMMOPlayer.getParty();
String leader = party.getLeader(); String leader = party.getLeader();
if (party.getLeader().equals(playerName)) { if (party.getLeader().equals(playerName)) {

View File

@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.commands.CommandHelper; import com.gmail.nossr50.commands.CommandHelper;
import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.McMMOPlayer;
import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.events.party.McMMOPartyTeleportEvent; import com.gmail.nossr50.events.party.McMMOPartyTeleportEvent;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
@ -18,7 +19,7 @@ import com.gmail.nossr50.util.Users;
public class PtpCommand implements CommandExecutor { public class PtpCommand implements CommandExecutor {
private final mcMMO plugin; private final mcMMO plugin;
private Player player; private Player player;
private PlayerProfile playerProfile; private McMMOPlayer mcMMOPlayer;
public PtpCommand(mcMMO instance) { public PtpCommand(mcMMO instance) {
this.plugin = instance; this.plugin = instance;
@ -38,8 +39,9 @@ public class PtpCommand implements CommandExecutor {
switch (args.length) { switch (args.length) {
case 1: case 1:
this.player = (Player) sender; player = (Player) sender;
this.playerProfile = Users.getProfile(player); mcMMOPlayer = Users.getPlayer(player);
PlayerProfile playerProfile = mcMMOPlayer.getProfile();
if (args[0].equalsIgnoreCase("toggle")) { if (args[0].equalsIgnoreCase("toggle")) {
return togglePartyTeleportation(); return togglePartyTeleportation();
@ -86,15 +88,15 @@ public class PtpCommand implements CommandExecutor {
} }
if (PartyManager.inSameParty(player, target)) { if (PartyManager.inSameParty(player, target)) {
PlayerProfile targetProfile = Users.getProfile(target); McMMOPlayer targetMcMMOPlayer = Users.getPlayer(target);
if (!targetProfile.getPtpEnabled()) { if (!targetMcMMOPlayer.getPtpEnabled()) {
player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", target.getName())); player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", target.getName()));
return true; return true;
} }
if (!Users.getProfile(target).getPtpConfirmRequired()) { if (!targetMcMMOPlayer.getPtpConfirmRequired()) {
McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(player, target, playerProfile.getParty().getName()); McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(player, target, mcMMOPlayer.getParty().getName());
plugin.getServer().getPluginManager().callEvent(event); plugin.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
@ -104,10 +106,10 @@ public class PtpCommand implements CommandExecutor {
player.teleport(target); player.teleport(target);
player.sendMessage(LocaleLoader.getString("Party.Teleport.Player", player.getName())); player.sendMessage(LocaleLoader.getString("Party.Teleport.Player", player.getName()));
target.sendMessage(LocaleLoader.getString("Party.Teleport.Target", target.getName())); target.sendMessage(LocaleLoader.getString("Party.Teleport.Target", target.getName()));
playerProfile.setRecentlyHurt(System.currentTimeMillis()); mcMMOPlayer.getProfile().setRecentlyHurt(System.currentTimeMillis());
} else { } else {
targetProfile.setPtpRequest(player); targetMcMMOPlayer.setPtpRequest(player);
targetProfile.actualizePtpTimeout(); targetMcMMOPlayer.actualizePtpTimeout();
player.sendMessage(LocaleLoader.getString("Commands.Invite.Success")); player.sendMessage(LocaleLoader.getString("Commands.Invite.Success"));
int ptpRequestExpire = Config.getInstance().getPTPCommandTimeout(); int ptpRequestExpire = Config.getInstance().getPTPCommandTimeout();
@ -122,20 +124,20 @@ public class PtpCommand implements CommandExecutor {
} }
private boolean acceptTeleportRequest() { private boolean acceptTeleportRequest() {
if (!playerProfile.hasPtpRequest()) { if (!mcMMOPlayer.hasPtpRequest()) {
player.sendMessage(LocaleLoader.getString("Commands.ptp.NoRequests")); player.sendMessage(LocaleLoader.getString("Commands.ptp.NoRequests"));
return true; return true;
} }
int ptpRequestExpire = Config.getInstance().getPTPCommandTimeout(); int ptpRequestExpire = Config.getInstance().getPTPCommandTimeout();
if ((playerProfile.getPtpTimeout() + ptpRequestExpire) * Misc.TIME_CONVERSION_FACTOR < System.currentTimeMillis()) { if ((mcMMOPlayer.getPtpTimeout() + ptpRequestExpire) * Misc.TIME_CONVERSION_FACTOR < System.currentTimeMillis()) {
playerProfile.removePtpRequest(); mcMMOPlayer.removePtpRequest();
player.sendMessage(LocaleLoader.getString("Commands.ptp.RequestExpired")); player.sendMessage(LocaleLoader.getString("Commands.ptp.RequestExpired"));
return true; return true;
} }
Player target = playerProfile.getPtpRequest(); Player target = mcMMOPlayer.getPtpRequest();
if (target == null) { if (target == null) {
player.sendMessage(LocaleLoader.getString("Party.Player.Invalid")); player.sendMessage(LocaleLoader.getString("Party.Player.Invalid"));
@ -147,7 +149,7 @@ public class PtpCommand implements CommandExecutor {
return true; return true;
} }
McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(player, target, playerProfile.getParty().getName()); McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(player, target, mcMMOPlayer.getParty().getName());
plugin.getServer().getPluginManager().callEvent(event); plugin.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
@ -157,31 +159,31 @@ public class PtpCommand implements CommandExecutor {
target.teleport(player); target.teleport(player);
target.sendMessage(LocaleLoader.getString("Party.Teleport.Player", player.getName())); target.sendMessage(LocaleLoader.getString("Party.Teleport.Player", player.getName()));
player.sendMessage(LocaleLoader.getString("Party.Teleport.Target", target.getName())); player.sendMessage(LocaleLoader.getString("Party.Teleport.Target", target.getName()));
playerProfile.setRecentlyHurt(System.currentTimeMillis()); mcMMOPlayer.getProfile().setRecentlyHurt(System.currentTimeMillis());
return true; return true;
} }
private boolean acceptAnyTeleportRequest() { private boolean acceptAnyTeleportRequest() {
if (playerProfile.getPtpConfirmRequired()) { if (mcMMOPlayer.getPtpConfirmRequired()) {
player.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Disabled")); player.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Disabled"));
} }
else { else {
player.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Enabled")); player.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Enabled"));
} }
playerProfile.togglePtpConfirmRequired(); mcMMOPlayer.togglePtpConfirmRequired();
return true; return true;
} }
private boolean togglePartyTeleportation() { private boolean togglePartyTeleportation() {
if (playerProfile.getPtpEnabled()) { if (mcMMOPlayer.getPtpEnabled()) {
player.sendMessage(LocaleLoader.getString("Commands.ptp.Disabled")); player.sendMessage(LocaleLoader.getString("Commands.ptp.Disabled"));
} }
else { else {
player.sendMessage(LocaleLoader.getString("Commands.ptp.Enabled")); player.sendMessage(LocaleLoader.getString("Commands.ptp.Enabled"));
} }
playerProfile.togglePtpUse(); mcMMOPlayer.togglePtpUse();
return true; return true;
} }
} }