mirror of
https://github.com/kaboomserver/icontrolu.git
synced 2024-06-01 18:01:24 +00:00
Stop using BukkitRunnable
In preparation for Folia support.
This commit is contained in:
parent
f4055c1233
commit
1e60f14b3d
|
@ -1,5 +1,9 @@
|
||||||
package pw.kaboom.icontrolu;
|
package pw.kaboom.icontrolu;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -8,8 +12,8 @@ import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
|
||||||
import org.bukkit.event.player.PlayerAnimationEvent;
|
import org.bukkit.event.player.PlayerAnimationEvent;
|
||||||
|
import org.bukkit.event.player.PlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
@ -20,7 +24,6 @@ import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
import org.bukkit.scoreboard.Scoreboard;
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.bukkit.scoreboard.Team;
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
|
@ -33,170 +36,15 @@ import pw.kaboom.icontrolu.utilities.PlayerList;
|
||||||
class ControlPlayer implements Listener {
|
class ControlPlayer implements Listener {
|
||||||
private static String CHAT_PREFIX = "\ud800iControlUChat\ud800";
|
private static String CHAT_PREFIX = "\ud800iControlUChat\ud800";
|
||||||
|
|
||||||
@EventHandler
|
private void controlPlayers() {
|
||||||
private void onAsyncPlayerChat(final AsyncPlayerChatEvent event) {
|
if (!PlayerList.hasControllers()) {
|
||||||
final Player player = event.getPlayer();
|
return;
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
|
||||||
if (event.getMessage().startsWith(CHAT_PREFIX)) {
|
|
||||||
final int prefixLength = CHAT_PREFIX.length();
|
|
||||||
|
|
||||||
event.setMessage(
|
|
||||||
event.getMessage().substring(prefixLength)
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (PlayerList.getTarget(player.getUniqueId()) != null) {
|
for (UUID controllerUUID : PlayerList.getControllers()) {
|
||||||
final Player target = PlayerList.getTarget(player.getUniqueId());
|
final Player controller = Bukkit.getPlayer(controllerUUID);
|
||||||
|
final Player target = PlayerList.getTarget(controllerUUID);
|
||||||
|
|
||||||
new BukkitRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
// Add prefix to prevent messages from being cancelled
|
|
||||||
target.chat(CHAT_PREFIX + event.getMessage());
|
|
||||||
}
|
|
||||||
}.runTask(JavaPlugin.getPlugin(Main.class));
|
|
||||||
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onEntityDamage(final EntityDamageEvent event) {
|
|
||||||
final Entity player = event.getEntity();
|
|
||||||
|
|
||||||
if (PlayerList.getTarget(player.getUniqueId()) != null) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerAnimation(final PlayerAnimationEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerDropItem(final PlayerDropItemEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerInteract(final PlayerInteractEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
|
|
||||||
} else if ((event.getAction() == Action.LEFT_CLICK_AIR
|
|
||||||
|| event.getAction() == Action.LEFT_CLICK_BLOCK)
|
|
||||||
&& PlayerList.getTarget(player.getUniqueId()) != null) {
|
|
||||||
final Player target = PlayerList.getTarget(player.getUniqueId());
|
|
||||||
|
|
||||||
if (event.getHand() == EquipmentSlot.HAND) {
|
|
||||||
target.swingMainHand();
|
|
||||||
} else if (event.getHand() == EquipmentSlot.OFF_HAND) {
|
|
||||||
target.swingOffHand();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerMove(final PlayerMoveEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerQuit(final PlayerQuitEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
|
|
||||||
for (Player otherPlayer: Bukkit.getOnlinePlayers()) {
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null
|
|
||||||
&& PlayerList.getController(player.getUniqueId()).equals(otherPlayer)) {
|
|
||||||
/*
|
|
||||||
Target disconnects
|
|
||||||
*/
|
|
||||||
PlayerList.removeTarget(otherPlayer.getUniqueId());
|
|
||||||
PlayerList.removeController(player.getUniqueId());
|
|
||||||
|
|
||||||
final Player controller = otherPlayer;
|
|
||||||
final int tickDelay = 200;
|
|
||||||
|
|
||||||
new BukkitRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
for (Player allPlayers: Bukkit.getOnlinePlayers()) {
|
|
||||||
allPlayers.showPlayer(JavaPlugin.getPlugin(Main.class), controller);
|
|
||||||
}
|
|
||||||
|
|
||||||
final Scoreboard scoreboard = Bukkit.getScoreboardManager()
|
|
||||||
.getMainScoreboard();
|
|
||||||
final Team team = scoreboard.getTeam("icuCollision");
|
|
||||||
|
|
||||||
if (team != null
|
|
||||||
&& team.hasEntry(controller.getName())) {
|
|
||||||
team.removeEntry(controller.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
|
||||||
controller.sendMessage(Component.text("You are now visible"));
|
|
||||||
}
|
|
||||||
}.runTaskLater(JavaPlugin.getPlugin(Main.class), tickDelay);
|
|
||||||
|
|
||||||
otherPlayer.sendMessage(Component.text("The player you were controlling has "
|
|
||||||
+ "disconnected. You are invisible for 10 seconds."));
|
|
||||||
|
|
||||||
} else if (PlayerList.getTarget(player.getUniqueId()) != null
|
|
||||||
&& PlayerList.getTarget(player.getUniqueId()).equals(otherPlayer)) {
|
|
||||||
/*
|
|
||||||
Controller disconnects
|
|
||||||
*/
|
|
||||||
PlayerList.removeTarget(player.getUniqueId());
|
|
||||||
PlayerList.removeController(otherPlayer.getUniqueId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerRespawn(final PlayerRespawnEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
|
||||||
final Player controller = PlayerList.getController(player.getUniqueId());
|
|
||||||
|
|
||||||
controller.teleportAsync(player.getLocation());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
|
||||||
public void onTickStart(ServerTickStartEvent event) {
|
|
||||||
for (Player target: Bukkit.getOnlinePlayers()) {
|
|
||||||
final Player controller = PlayerList.getController(target.getUniqueId());
|
|
||||||
|
|
||||||
if (controller != null) {
|
|
||||||
for (int i = 0; i < controller.getInventory().getSize(); i++) {
|
for (int i = 0; i < controller.getInventory().getSize(); i++) {
|
||||||
if (controller.getInventory().getItem(i) != null) {
|
if (controller.getInventory().getItem(i) != null) {
|
||||||
if (!controller.getInventory().getItem(i).equals(
|
if (!controller.getInventory().getItem(i).equals(
|
||||||
|
@ -260,5 +108,175 @@ class ControlPlayer implements Listener {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkVisibility() {
|
||||||
|
if (!PlayerList.hasScheduledVisibilities()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Iterator<Entry<UUID, Long>> iterator = PlayerList.getScheduledVisibilities().entrySet()
|
||||||
|
.iterator();
|
||||||
|
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
final Entry<UUID, Long> entry = iterator.next();
|
||||||
|
final UUID playerUUID = entry.getKey();
|
||||||
|
long visibilityTime = entry.getValue();
|
||||||
|
|
||||||
|
if (System.currentTimeMillis() < visibilityTime) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Player controller = Bukkit.getPlayer(playerUUID);
|
||||||
|
|
||||||
|
for (Player onlinePlayer: Bukkit.getOnlinePlayers()) {
|
||||||
|
onlinePlayer.showPlayer(JavaPlugin.getPlugin(Main.class), controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||||
|
final Team team = scoreboard.getTeam("icuCollision");
|
||||||
|
|
||||||
|
if (team != null && team.hasEntry(controller.getName())) {
|
||||||
|
team.removeEntry(controller.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
||||||
|
controller.sendMessage(Component.text("You are now visible"));
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onEntityDamage(final EntityDamageEvent event) {
|
||||||
|
final Entity player = event.getEntity();
|
||||||
|
|
||||||
|
if (PlayerList.getTarget(player.getUniqueId()) != null) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerAnimation(final PlayerAnimationEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerChat(final PlayerChatEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
final UUID playerUUID = player.getUniqueId();
|
||||||
|
|
||||||
|
if (PlayerList.getController(playerUUID) != null) {
|
||||||
|
if (event.getMessage().startsWith(CHAT_PREFIX)) {
|
||||||
|
event.setMessage(event.getMessage().substring(CHAT_PREFIX.length()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Player target = PlayerList.getTarget(playerUUID);
|
||||||
|
|
||||||
|
if (target != null) {
|
||||||
|
target.chat(CHAT_PREFIX + event.getMessage());
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerDropItem(final PlayerDropItemEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerInteract(final PlayerInteractEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
} else if ((event.getAction() == Action.LEFT_CLICK_AIR
|
||||||
|
|| event.getAction() == Action.LEFT_CLICK_BLOCK)
|
||||||
|
&& PlayerList.getTarget(player.getUniqueId()) != null) {
|
||||||
|
final Player target = PlayerList.getTarget(player.getUniqueId());
|
||||||
|
|
||||||
|
if (event.getHand() == EquipmentSlot.HAND) {
|
||||||
|
target.swingMainHand();
|
||||||
|
} else if (event.getHand() == EquipmentSlot.OFF_HAND) {
|
||||||
|
target.swingOffHand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerMove(final PlayerMoveEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerQuit(final PlayerQuitEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
final UUID playerUUID = player.getUniqueId();
|
||||||
|
final Player controller = PlayerList.getController(playerUUID);
|
||||||
|
|
||||||
|
if (controller != null) {
|
||||||
|
/*
|
||||||
|
Target disconnects
|
||||||
|
*/
|
||||||
|
PlayerList.removeTarget(controller.getUniqueId());
|
||||||
|
PlayerList.removeController(playerUUID);
|
||||||
|
PlayerList.scheduleVisibility(controller.getUniqueId());
|
||||||
|
|
||||||
|
controller.sendMessage(Component.text("The player you were controlling has "
|
||||||
|
+ "disconnected. You are invisible for 10 seconds."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Player target = PlayerList.getTarget(playerUUID);
|
||||||
|
|
||||||
|
if (target != null) {
|
||||||
|
/*
|
||||||
|
Controller disconnects
|
||||||
|
*/
|
||||||
|
PlayerList.removeTarget(playerUUID);
|
||||||
|
PlayerList.removeController(target.getUniqueId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
private void onPlayerRespawn(final PlayerRespawnEvent event) {
|
||||||
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
|
final Player controller = PlayerList.getController(player.getUniqueId());
|
||||||
|
|
||||||
|
controller.teleportAsync(player.getLocation());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
|
public void onTickStart(ServerTickStartEvent event) {
|
||||||
|
controlPlayers();
|
||||||
|
checkVisibility();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
import org.bukkit.scoreboard.Scoreboard;
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.bukkit.scoreboard.Team;
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
|
@ -85,28 +84,9 @@ public final class CommandIcu implements CommandExecutor {
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
PlayerList.removeTarget(controller.getUniqueId());
|
PlayerList.removeTarget(controller.getUniqueId());
|
||||||
PlayerList.removeController(target.getUniqueId());
|
PlayerList.removeController(target.getUniqueId());
|
||||||
|
PlayerList.scheduleVisibility(controller.getUniqueId());
|
||||||
|
|
||||||
final int tickDelay = 200;
|
final int seconds = 10;
|
||||||
|
|
||||||
new BukkitRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
for (Player player: Bukkit.getOnlinePlayers()) {
|
|
||||||
player.showPlayer(JavaPlugin.getPlugin(Main.class), controller);
|
|
||||||
}
|
|
||||||
|
|
||||||
Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
|
||||||
Team team = scoreboard.getTeam("icuCollision");
|
|
||||||
if (team != null && team.hasEntry(controller.getName())) {
|
|
||||||
team.removeEntry(controller.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
|
||||||
controller.sendMessage(Component.text("You are now visible"));
|
|
||||||
}
|
|
||||||
}.runTaskLater(JavaPlugin.getPlugin(Main.class), tickDelay);
|
|
||||||
|
|
||||||
final int seconds = tickDelay / 20;
|
|
||||||
|
|
||||||
controller.sendMessage(
|
controller.sendMessage(
|
||||||
Component.text("You are no longer controlling \"")
|
Component.text("You are no longer controlling \"")
|
||||||
|
|
|
@ -1,38 +1,60 @@
|
||||||
package pw.kaboom.icontrolu.utilities;
|
package pw.kaboom.icontrolu.utilities;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public final class PlayerList {
|
public final class PlayerList {
|
||||||
private PlayerList() {
|
|
||||||
|
private static final int VISIBILITY_DELAY_MS = 10000;
|
||||||
|
private static Map<UUID, Player> controllerFor = new HashMap<>();
|
||||||
|
private static Map<UUID, Player> targetFor = new HashMap<>();
|
||||||
|
private static Map<UUID, Long> scheduledVisibilities = new HashMap<>();
|
||||||
|
|
||||||
|
public static Player getController(final UUID playerUUID) {
|
||||||
|
return controllerFor.get(playerUUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static HashMap<UUID, Player> controllerFor = new HashMap<UUID, Player>();
|
public static Set<UUID> getControllers() {
|
||||||
private static HashMap<UUID, Player> targetFor = new HashMap<UUID, Player>();
|
return targetFor.keySet();
|
||||||
|
|
||||||
public static Player getController(final UUID playerUuid) {
|
|
||||||
return controllerFor.get(playerUuid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Player getTarget(final UUID playerUuid) {
|
public static Player getTarget(final UUID playerUUID) {
|
||||||
return targetFor.get(playerUuid);
|
return targetFor.get(playerUUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeController(final UUID playerUuid) {
|
public static Map getScheduledVisibilities() {
|
||||||
controllerFor.remove(playerUuid);
|
return scheduledVisibilities;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeTarget(final UUID playerUuid) {
|
public static boolean hasControllers() {
|
||||||
targetFor.remove(playerUuid);
|
return !targetFor.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setController(final UUID playerUuid, final Player player) {
|
public static boolean hasScheduledVisibilities() {
|
||||||
controllerFor.put(playerUuid, player);
|
return !scheduledVisibilities.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setTarget(final UUID playerUuid, final Player player) {
|
public static void removeController(final UUID playerUUID) {
|
||||||
targetFor.put(playerUuid, player);
|
controllerFor.remove(playerUUID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void removeTarget(final UUID playerUUID) {
|
||||||
|
targetFor.remove(playerUUID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setController(final UUID playerUUID, final Player player) {
|
||||||
|
controllerFor.put(playerUUID, player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setTarget(final UUID playerUUID, final Player player) {
|
||||||
|
targetFor.put(playerUUID, player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void scheduleVisibility(final UUID playerUUID) {
|
||||||
|
scheduledVisibilities.put(playerUUID, System.currentTimeMillis() + VISIBILITY_DELAY_MS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue