Store and lookup from UUID

This commit is contained in:
gravitylow 2014-04-15 13:18:13 -04:00
parent d16d4c4fe5
commit 255549099f
5 changed files with 5 additions and 96 deletions

View File

@ -3,7 +3,6 @@ package com.massivecraft.factions;
import com.massivecraft.factions.cmd.CmdAutoHelp; import com.massivecraft.factions.cmd.CmdAutoHelp;
import com.massivecraft.factions.cmd.FCmdRoot; import com.massivecraft.factions.cmd.FCmdRoot;
import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.integration.Econ;
import com.massivecraft.factions.integration.EssentialsFeatures;
import com.massivecraft.factions.integration.Worldguard; import com.massivecraft.factions.integration.Worldguard;
import com.massivecraft.factions.listeners.*; import com.massivecraft.factions.listeners.*;
import com.massivecraft.factions.struct.ChatMode; import com.massivecraft.factions.struct.ChatMode;
@ -98,7 +97,6 @@ public class P extends MPlugin {
this.cmdAutoHelp = new CmdAutoHelp(); this.cmdAutoHelp = new CmdAutoHelp();
this.getBaseCommands().add(cmdBase); this.getBaseCommands().add(cmdBase);
EssentialsFeatures.setup();
Econ.setup(); Econ.setup();
if (Conf.worldGuardChecking || Conf.worldGuardBuildPriority) { if (Conf.worldGuardChecking || Conf.worldGuardBuildPriority) {
@ -143,7 +141,6 @@ public class P extends MPlugin {
Board.save(); Board.save();
Conf.save(); Conf.save();
} }
EssentialsFeatures.unhookChat();
if (AutoLeaveTask != null) { if (AutoLeaveTask != null) {
this.getServer().getScheduler().cancelTask(AutoLeaveTask); this.getServer().getScheduler().cancelTask(AutoLeaveTask);
AutoLeaveTask = null; AutoLeaveTask = null;

View File

@ -1,7 +1,6 @@
package com.massivecraft.factions.cmd; package com.massivecraft.factions.cmd;
import com.massivecraft.factions.*; import com.massivecraft.factions.*;
import com.massivecraft.factions.integration.EssentialsFeatures;
import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.struct.Relation;
import com.massivecraft.factions.struct.Role; import com.massivecraft.factions.struct.Role;
@ -108,10 +107,6 @@ public class CmdHome extends FCommand {
return; return;
} }
} }
// if Essentials teleport handling is enabled and available, pass the teleport off to it (for delay and cooldown)
if (EssentialsFeatures.handleTeleport(me, myFaction.getHome())) return;
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
if (!payForCommand(Conf.econCostHome, "to teleport to your faction home", "for teleporting to your faction home")) if (!payForCommand(Conf.econCostHome, "to teleport to your faction home", "for teleporting to your faction home"))
return; return;

View File

@ -1,86 +0,0 @@
package com.massivecraft.factions.integration;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.Teleport;
import com.earth2me.essentials.Trade;
import com.earth2me.essentials.chat.EssentialsChat;
import com.massivecraft.factions.Conf;
import com.massivecraft.factions.P;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
/*
* This Essentials integration handler is for newer 3.x.x versions of Essentials which don't have "IEssentialsChatListener"
* If an older version is detected in the setup() method below, handling is passed off to EssentialsOldVersionFeatures
*/
// silence deprecation warnings with this old interface
@SuppressWarnings("deprecation")
public class EssentialsFeatures {
private static EssentialsChat essChat;
private static IEssentials essentials;
public static void setup() {
// integrate main essentials plugin
// TODO: this is the old Essentials method not supported in 3.0... probably needs to eventually be moved to EssentialsOldVersionFeatures and new method implemented
if (essentials == null) {
Plugin ess = Bukkit.getPluginManager().getPlugin("Essentials");
if (ess != null && ess.isEnabled())
essentials = (IEssentials) ess;
}
// integrate chat
if (essChat != null) return;
Plugin test = Bukkit.getServer().getPluginManager().getPlugin("EssentialsChat");
if (test == null || !test.isEnabled()) return;
essChat = (EssentialsChat) test;
// try newer Essentials 3.x integration method
try {
Class.forName("com.earth2me.essentials.chat.EssentialsLocalChatEvent");
integrateChat(essChat);
} catch (ClassNotFoundException ex) {
}
}
public static void unhookChat() {
if (essChat == null) return;
}
// return false if feature is disabled or Essentials isn't available
public static boolean handleTeleport(Player player, Location loc) {
if (!Conf.homesTeleportCommandEssentialsIntegration || essentials == null) return false;
Teleport teleport = (Teleport) essentials.getUser(player).getTeleport();
Trade trade = new Trade(Conf.econCostHome, essentials);
try {
teleport.teleport(loc, trade);
} catch (Exception e) {
player.sendMessage(ChatColor.RED.toString() + e.getMessage());
}
return true;
}
public static void integrateChat(EssentialsChat instance) {
essChat = instance;
try {
P.p.log("Found and will integrate chat with newer " + essChat.getDescription().getFullName());
// curly braces used to be accepted by the format string EssentialsChat but no longer are, so... deal with chatTagReplaceString which might need updating
if (Conf.chatTagReplaceString.contains("{")) {
Conf.chatTagReplaceString = Conf.chatTagReplaceString.replace("{", "[").replace("}", "]");
P.p.log("NOTE: as of Essentials 2.8+, we've had to switch the default chat replacement tag from \"{FACTION}\" to \"[FACTION]\". This has automatically been updated for you.");
}
} catch (NoSuchMethodError ex) {
essChat = null;
}
}
}

View File

@ -7,7 +7,10 @@ import java.util.List;
public class PlayerEntity extends Entity { public class PlayerEntity extends Entity {
public Player getPlayer() { public Player getPlayer() {
return Bukkit.getPlayerExact(this.getId()); for (Player player : Bukkit.getServer().getOnlinePlayers()) {
if (player.getUniqueId().toString().equals(this.getId())) return player;
}
return null;
} }
public boolean isOnline() { public boolean isOnline() {

View File

@ -25,7 +25,7 @@ public abstract class PlayerEntityCollection<E extends Entity> extends EntityCol
} }
public E get(Player player) { public E get(Player player) {
return this.get(player.getName()); return this.get(player.getUniqueId().toString());
} }
public Set<E> getOnline() { public Set<E> getOnline() {