Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.desle.staffmode;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.UUID;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.PlayerInventory;
- public class StaffModePlayer
- {
- public static Map<UUID, StaffModePlayer> map = new HashMap();
- private ItemStack[] cachedItems;
- private ItemStack[] cachedArmor;
- private boolean cachedFlying;
- private UUID uuid;
- boolean status = false;
- public StaffModePlayer(Player player) {
- uuid = player.getUniqueId();
- map.put(uuid, this);
- }
- public UUID getUUID() {
- return uuid;
- }
- public static StaffModePlayer get(Player player, boolean force) {
- UUID uuid = player.getUniqueId();
- if (map.containsKey(uuid)) {
- return (StaffModePlayer)map.get(uuid);
- }
- if (force) {
- return new StaffModePlayer(player);
- }
- return null;
- }
- public boolean getStatus() {
- return status;
- }
- public static boolean hasPermission(Player player)
- {
- if (player.isOp()) {
- return true;
- }
- if (player.hasPermission("staffmode.*")) {
- return true;
- }
- return false;
- }
- public void toggle() {
- boolean status = this.status;
- if (status)
- {
- unload();
- }
- else {
- load();
- }
- this.status = (!status);
- }
- public boolean load()
- {
- Player player = Bukkit.getPlayer(uuid);
- if ((player == null) || (!player.isOnline())) {
- return false;
- }
- cachedItems = player.getInventory().getContents();
- cachedArmor = player.getInventory().getArmorContents();
- cachedFlying = player.getAllowFlight();
- player.getInventory().clear();
- player.getInventory().setArmorContents(null);
- player.setAllowFlight(true);
- player.performCommand("/v");
- for (ActionItem.ItemType itemType : ActionItem.ItemType.getAllFor(this)) {
- ActionItem actionItem = itemType.getActionItem();
- player.getInventory().addItem(new ItemStack[] { actionItem.getItemStack() });
- }
- return true;
- }
- public boolean unload()
- {
- Player player = Bukkit.getPlayer(uuid);
- if ((player == null) || (!player.isOnline())) {
- return false;
- }
- player.getInventory().setArmorContents(cachedArmor);
- player.getInventory().setContents(cachedItems);
- player.setAllowFlight(cachedFlying);
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement