Fix merge issues, fix observer command

This commit is contained in:
Shaun Bennett 2015-10-01 22:57:39 -04:00
parent b8cc967fb0
commit 5bce1b5f2e
14 changed files with 81 additions and 30 deletions

View File

@ -20,6 +20,7 @@
<element id="extracted-dir" path="$PROJECT_DIR$/Libraries/jooq-3.5.2.jar" path-in-jar="/" /> <element id="extracted-dir" path="$PROJECT_DIR$/Libraries/jooq-3.5.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/Libraries/commons-dbcp2-2.0.1.jar" path-in-jar="/" /> <element id="extracted-dir" path="$PROJECT_DIR$/Libraries/commons-dbcp2-2.0.1.jar" path-in-jar="/" />
<element id="module-output" name="Mineplex.Game.Clans.Core" /> <element id="module-output" name="Mineplex.Game.Clans.Core" />
<element id="module-output" name="Mineplex.PlayerCache" />
</root> </root>
</artifact> </artifact>
</component> </component>

View File

@ -1,6 +1,8 @@
package mineplex.core.common.util; package mineplex.core.common.util;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
@ -13,13 +15,18 @@ import org.bukkit.entity.Player;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
public class UtilAlg public class UtilAlg
{ {
public static TreeSet<String> sortKey(Set<String> toSort) public static TreeSet<String> sortKey(Set<String> toSort)
{ {
TreeSet<String> sortedSet = new TreeSet<String>(); return sortSet(toSort, null);
for (String cur : toSort) }
public static <T> TreeSet<T> sortSet(Collection<T> toSort, Comparator<T> comparator)
{
TreeSet<T> sortedSet = new TreeSet<T>(comparator);
for (T cur : toSort)
sortedSet.add(cur); sortedSet.add(cur);
return sortedSet; return sortedSet;
} }

View File

@ -33,6 +33,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result; import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
@ -46,7 +47,7 @@ public class CoreClientManager extends MiniPlugin
private AccountRepository _repository; private AccountRepository _repository;
private NautHashMap<String, CoreClient> _clientList; private NautHashMap<String, CoreClient> _clientList;
private HashSet<String> _duplicateLoginGlitchPreventionList; private HashSet<String> _duplicateLoginGlitchPreventionList;
private NautHashMap<String, ILoginProcessor> _loginProcessors = new NautHashMap<String, ILoginProcessor>(); private NautHashMap<String, ILoginProcessor> _loginProcessors = new NautHashMap<String, ILoginProcessor>();
private LinkedList<IQuerylessLoginProcessor> _querylessLoginProcessors = new LinkedList<IQuerylessLoginProcessor>(); private LinkedList<IQuerylessLoginProcessor> _querylessLoginProcessors = new LinkedList<IQuerylessLoginProcessor>();
@ -552,4 +553,10 @@ public class CoreClientManager extends MiniPlugin
return client.GetRank().has(rank); return client.GetRank().has(rank);
} }
public int getCachedClientAccountId(UUID uuid)
{
PlayerInfo playerInfo = PlayerCache.getInstance().getPlayer(uuid);
return playerInfo == null ? -1 : playerInfo.getAccountId();
}
} }

View File

@ -394,7 +394,16 @@ public class DonationManager extends MiniDbClientPlugin<Donor>
{ {
public void run() public void run()
{ {
rewardGold(callback, caller, player.getName(), ClientManager.getCachedClientAccountId(player.getUniqueId()), total, false); int accountId = ClientManager.getCachedClientAccountId(player.getUniqueId());
if (accountId != -1)
{
rewardGold(callback, caller, player.getName(), accountId, total, false);
}
else
{
System.out.println("Failed to reward gold to [" + player.getName() + "]. " + "Cached account id was not found");
}
} }
}); });
} }

View File

@ -1,6 +1,5 @@
package mineplex.game.clans; package mineplex.game.clans;
import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.craftbukkit.v1_7_R4.CraftWorld; import org.bukkit.craftbukkit.v1_7_R4.CraftWorld;
@ -8,6 +7,7 @@ import org.bukkit.plugin.java.JavaPlugin;
import net.minecraft.server.v1_7_R4.MinecraftServer; import net.minecraft.server.v1_7_R4.MinecraftServer;
import mineplex.core.FoodDupeFix;
import mineplex.core.TablistFix; import mineplex.core.TablistFix;
import mineplex.core.account.CoreClientManager; import mineplex.core.account.CoreClientManager;
import mineplex.core.achievement.AchievementManager; import mineplex.core.achievement.AchievementManager;
@ -19,13 +19,14 @@ import mineplex.core.donation.DonationManager;
import mineplex.core.explosion.Explosion; import mineplex.core.explosion.Explosion;
import mineplex.core.friend.FriendManager; import mineplex.core.friend.FriendManager;
import mineplex.core.give.Give; import mineplex.core.give.Give;
import mineplex.core.hologram.HologramManager;
import mineplex.core.ignore.IgnoreManager; import mineplex.core.ignore.IgnoreManager;
import mineplex.core.inventory.InventoryManager; import mineplex.core.inventory.InventoryManager;
import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.memory.MemoryFix; import mineplex.core.memory.MemoryFix;
import mineplex.core.message.MessageManager; import mineplex.core.message.MessageManager;
import mineplex.core.monitor.LagMeter; import mineplex.core.monitor.LagMeter;
import mineplex.core.observer.ObserverManager; import mineplex.game.clans.clans.observer.ObserverManager;
import mineplex.core.packethandler.PacketHandler; import mineplex.core.packethandler.PacketHandler;
import mineplex.core.portal.Portal; import mineplex.core.portal.Portal;
import mineplex.core.preferences.PreferencesManager; import mineplex.core.preferences.PreferencesManager;
@ -41,7 +42,6 @@ import mineplex.core.updater.FileUpdater;
import mineplex.core.updater.Updater; import mineplex.core.updater.Updater;
import mineplex.core.visibility.VisibilityManager; import mineplex.core.visibility.VisibilityManager;
import mineplex.game.clans.clans.ClansManager; import mineplex.game.clans.clans.ClansManager;
import mineplex.game.clans.clans.worldevent.WorldEventManager;
import mineplex.game.clans.items.GearManager; import mineplex.game.clans.items.GearManager;
import mineplex.game.clans.shop.building.BuildingShop; import mineplex.game.clans.shop.building.BuildingShop;
import mineplex.game.clans.shop.farming.FarmingShop; import mineplex.game.clans.shop.farming.FarmingShop;
@ -110,10 +110,9 @@ public class Clans extends JavaPlugin
Chat chat = new Chat(this, _clientManager, preferenceManager, achievementManager, serverStatusManager.getCurrentServerName()); Chat chat = new Chat(this, _clientManager, preferenceManager, achievementManager, serverStatusManager.getCurrentServerName());
new MessageManager(this, _clientManager, preferenceManager, ignoreManager, punish, new FriendManager(this, _clientManager, preferenceManager, portal), chat); new MessageManager(this, _clientManager, preferenceManager, ignoreManager, punish, new FriendManager(this, _clientManager, preferenceManager, portal), chat);
new ObserverManager(this);
new TablistFix(this); new TablistFix(this);
new MemoryFix(this); new MemoryFix(this);
new FoodDupeFix(this);
new Explosion(this, blockRestore); new Explosion(this, blockRestore);
new FriendManager(this, _clientManager, preferenceManager, portal); new FriendManager(this, _clientManager, preferenceManager, portal);
new InventoryManager(this, _clientManager); new InventoryManager(this, _clientManager);
@ -121,8 +120,9 @@ public class Clans extends JavaPlugin
// Enable custom-gear related managers // Enable custom-gear related managers
PacketHandler packetHandler = new PacketHandler(this); PacketHandler packetHandler = new PacketHandler(this);
GearManager customGear = new GearManager(this, packetHandler); GearManager customGear = new GearManager(this, packetHandler);
_clansManager = new ClansManager(this, serverStatusManager.getCurrentServerName(), _clientManager, _donationManager, blockRestore, teleport, chat, customGear, webServerAddress); HologramManager hologram = new HologramManager(this);
_clansManager = new ClansManager(this, serverStatusManager.getCurrentServerName(), _clientManager, _donationManager, blockRestore, teleport, chat, customGear, hologram, webServerAddress);
new Recipes(this); new Recipes(this);
new Farming(this); new Farming(this);
new BuildingShop(_clansManager, _clientManager, _donationManager); new BuildingShop(_clansManager, _clientManager, _donationManager);

View File

@ -65,6 +65,7 @@ import mineplex.game.clans.clans.commands.ServerTimeCommand;
import mineplex.game.clans.clans.loot.LootManager; import mineplex.game.clans.clans.loot.LootManager;
import mineplex.game.clans.clans.map.ItemMapManager; import mineplex.game.clans.clans.map.ItemMapManager;
import mineplex.game.clans.clans.murder.MurderManager; import mineplex.game.clans.clans.murder.MurderManager;
import mineplex.game.clans.clans.observer.ObserverManager;
import mineplex.game.clans.clans.redis.ClanDeleteCommandHandler; import mineplex.game.clans.clans.redis.ClanDeleteCommandHandler;
import mineplex.game.clans.clans.redis.ClanLoadCommandHandler; import mineplex.game.clans.clans.redis.ClanLoadCommandHandler;
import mineplex.game.clans.clans.regions.ClansRegions; import mineplex.game.clans.clans.regions.ClansRegions;
@ -219,6 +220,7 @@ public class ClansManager extends MiniClientPlugin<ClientClan> implements IRelat
new Spawn(plugin, this); new Spawn(plugin, this);
new NPCManager(this); new NPCManager(this);
new LoggingManager(plugin, this); new LoggingManager(plugin, this);
new ObserverManager(plugin, _condition, this);
new Weapon(plugin, energy); new Weapon(plugin, energy);
new Gameplay(plugin, this, blockRestore, damageManager); new Gameplay(plugin, this, blockRestore, damageManager);

View File

@ -1,4 +1,4 @@
package mineplex.core.observer; package mineplex.game.clans.clans.observer;
import java.util.EnumSet; import java.util.EnumSet;

View File

@ -1,4 +1,4 @@
package mineplex.core.observer; package mineplex.game.clans.clans.observer;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -19,19 +19,24 @@ import org.bukkit.plugin.java.JavaPlugin;
import mineplex.core.MiniPlugin; import mineplex.core.MiniPlugin;
import mineplex.core.common.util.F; import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import mineplex.core.observer.command.ObserverCommand; import mineplex.game.clans.clans.ClansManager;
import mineplex.game.clans.clans.observer.command.ObserverCommand;
import mineplex.game.clans.core.repository.ClanTerritory;
import mineplex.minecraft.game.core.condition.ConditionManager;
public class ObserverManager extends MiniPlugin public class ObserverManager extends MiniPlugin
{ {
// Used to Cloak Players // Used to Cloak Players
// private ConditionManager _conditionManager; private ConditionManager _conditionManager;
private ClansManager _clansManager;
private HashMap<Player, ObserverData> _observerMap; private HashMap<Player, ObserverData> _observerMap;
public ObserverManager(JavaPlugin plugin) public ObserverManager(JavaPlugin plugin, ConditionManager conditionManager, ClansManager clansManager)
{ {
super("Observer", plugin); super("Observer", plugin);
// _conditionManager = conditionManager; _conditionManager = conditionManager;
_clansManager = clansManager;
_observerMap = new HashMap<Player, ObserverData>(); _observerMap = new HashMap<Player, ObserverData>();
} }
@ -39,8 +44,8 @@ public class ObserverManager extends MiniPlugin
{ {
ObserverData data = new ObserverData(player); ObserverData data = new ObserverData(player);
((CraftPlayer) player).getHandle().spectating = true; ((CraftPlayer) player).getHandle().spectating = true;
// _conditionManager.Clean(player); _conditionManager.Clean(player);
// _conditionManager.Factory().Cloak("Observer", player, null, 999999999, true, true); _conditionManager.Factory().Cloak("Observer", player, null, 999999999, true, true);
UtilPlayer.clearInventory(player); UtilPlayer.clearInventory(player);
UtilPlayer.clearPotionEffects(player); UtilPlayer.clearPotionEffects(player);
player.setGameMode(GameMode.CREATIVE); player.setGameMode(GameMode.CREATIVE);
@ -139,6 +144,21 @@ public class ObserverManager extends MiniPlugin
} }
} }
public boolean canEnterObserverMode(Player player, boolean notify)
{
ClanTerritory territory = _clansManager.getClanUtility().getClaim(player.getLocation());
if (territory == null || !territory.Safe)
{
if (notify)
UtilPlayer.message(player, F.main("Observer", "You must be in a Safe Zone to use observer mode!"));
return false;
}
return true;
}
private void notify(Player player, String message) private void notify(Player player, String message)
{ {
UtilPlayer.message(player, F.main("Observer", message)); UtilPlayer.message(player, F.main("Observer", message));

View File

@ -1,4 +1,4 @@
package mineplex.core.observer; package mineplex.game.clans.clans.observer;
import java.util.EnumSet; import java.util.EnumSet;
@ -15,7 +15,7 @@ public enum ObserverSettings
public static EnumSet<ObserverSettings> getSettings(Rank rank) public static EnumSet<ObserverSettings> getSettings(Rank rank)
{ {
if (rank.Has(Rank.DEVELOPER)) if (rank.has(Rank.DEVELOPER))
return EnumSet.of(CAN_OPEN_CHESTS); return EnumSet.of(CAN_OPEN_CHESTS);
return EnumSet.noneOf(ObserverSettings.class); return EnumSet.noneOf(ObserverSettings.class);

View File

@ -1,4 +1,4 @@
package mineplex.core.observer.command; package mineplex.game.clans.clans.observer.command;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -6,13 +6,15 @@ import mineplex.core.command.CommandBase;
import mineplex.core.common.Rank; import mineplex.core.common.Rank;
import mineplex.core.common.util.F; import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import mineplex.core.observer.ObserverManager; import mineplex.game.clans.clans.ClansManager;
import mineplex.game.clans.clans.ClansUtility;
import mineplex.game.clans.clans.observer.ObserverManager;
public class ObserverCommand extends CommandBase<ObserverManager> public class ObserverCommand extends CommandBase<ObserverManager>
{ {
public ObserverCommand(ObserverManager plugin) public ObserverCommand(ObserverManager plugin)
{ {
super(plugin, Rank.DEVELOPER, "observer", "o"); super(plugin, Rank.ALL, "observer", "o");
} }
@Override @Override
@ -28,6 +30,9 @@ public class ObserverCommand extends CommandBase<ObserverManager>
} }
else else
{ {
if (!Plugin.canEnterObserverMode(caller, true))
return;
Plugin.setObserver(caller); Plugin.setObserver(caller);
UtilPlayer.message(caller, F.main("Observer", "You have entered " + F.elem("Observer Mode"))); UtilPlayer.message(caller, F.main("Observer", "You have entered " + F.elem("Observer Mode")));
} }

View File

@ -431,7 +431,7 @@ public class ServerNpcPage extends ShopPageInventory<ServerManager, ServerNpcSho
ShopItem shopItem = buildShopItem(serverInfo, slotsNeeded); ShopItem shopItem = buildShopItem(serverInfo, slotsNeeded);
addButton(slot, shopItem, new JoinServerButton(this, serverInfo)); addButton(slot, shopItem, new JoinServerButton(this, getPlugin(), serverInfo, getPlayer()));
slot++; slot++;
} }

View File

@ -38,7 +38,7 @@ public class JoinServerButton implements IButton
System.out.println("Selecting server :" + serverInfo.Name); System.out.println("Selecting server :" + serverInfo.Name);
int slots = _serverManager.getRequiredSlots(player, serverInfo.ServerType); int slots = _serverManager.getRequiredSlots(player, serverInfo.ServerType);
if (serverInfo.getAvailableSlots() < slots && !(_page.getDonationManager().Get(_player.getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA") || _page.getClient().GetRank().Has(Rank.ULTRA))) if (serverInfo.getAvailableSlots() < slots && !(_page.getDonationManager().Get(_player.getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA") || _page.getClient().GetRank().has(Rank.ULTRA)))
{ {
_page.playDenySound(player); _page.playDenySound(player);

View File

@ -90,7 +90,7 @@ public class PerkBlockTossEVO extends Perk implements IThrown
if (UtilBlock.usable(grab)) if (UtilBlock.usable(grab))
return; return;
if (!UtilBlock.airFoliage(grab.getRelative(BlockFace.UP)) || Manager.GetBlockRestore().Contains(grab.getRelative(BlockFace.UP))) if (!UtilBlock.airFoliage(grab.getRelative(BlockFace.UP)) || Manager.GetBlockRestore().contains(grab.getRelative(BlockFace.UP)))
{ {
UtilPlayer.message(player, F.main("Game", "You may not pick up that block!")); UtilPlayer.message(player, F.main("Game", "You may not pick up that block!"));
return; return;

View File

@ -111,6 +111,6 @@ public class PerkWebEVO extends Perk implements IThrown
Location loc = data.GetThrown().getLocation(); Location loc = data.GetThrown().getLocation();
data.GetThrown().remove(); data.GetThrown().remove();
Manager.GetBlockRestore().Add(loc.getBlock(), 30, (byte)0, 4000); Manager.GetBlockRestore().add(loc.getBlock(), 30, (byte)0, 4000);
} }
} }