Observer mode changes

This commit is contained in:
Shaun Bennett 2015-07-18 16:40:50 -05:00
parent 1ef6fe3ed6
commit d94f4f96a7
3 changed files with 45 additions and 2 deletions

View File

@ -613,7 +613,10 @@ public class UtilPlayer
public static void clearInventory(Player player)
{
player.getInventory().clear();
player.getEquipment().clear();
player.getInventory().setHelmet(null);
player.getInventory().setChestplate(null);
player.getInventory().setLeggings(null);
player.getInventory().setBoots(null);
}
public static void clearPotionEffects(Player player)

View File

@ -10,7 +10,9 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
@ -92,6 +94,30 @@ public class ObserverManager extends MiniPlugin
}
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event)
{
ObserverData data = _observerMap.get(event.getWhoClicked());
if (data != null)
{
if (!data.getSettings().contains(ObserverSettings.CAN_CLICK_INVENTORY))
event.setCancelled(true);
}
}
@EventHandler
public void onPickup(PlayerPickupItemEvent event)
{
ObserverData data = _observerMap.get(event.getPlayer());
if (data != null)
{
if (!data.getSettings().contains(ObserverSettings.CAN_PICKUP_ITEMS))
event.setCancelled(true);
}
}
@EventHandler
public void onQuit(PlayerQuitEvent event)
{

View File

@ -1,9 +1,23 @@
package mineplex.core.observer;
import java.util.EnumSet;
import mineplex.core.common.Rank;
public enum ObserverSettings
{
CAN_OPEN_CHESTS,
CAN_BREAK_BLOCKS,
CAN_INTERACT
CAN_INTERACT,
CAN_PICKUP_ITEMS,
CAN_CLICK_INVENTORY;
public static EnumSet<ObserverSettings> getSettings(Rank rank)
{
if (rank.Has(Rank.DEVELOPER))
return EnumSet.of(CAN_OPEN_CHESTS);
return EnumSet.noneOf(ObserverSettings.class);
}
}