Archived
0

Added "look" option

This commit is contained in:
Pepich
2017-10-22 15:24:20 +02:00
parent 32da4b770b
commit a990cba473

View File

@@ -30,10 +30,11 @@ import com.redstoner.modules.datamanager.DataManager;
@Commands(CommandHolderType.File) @Commands(CommandHolderType.File)
@AutoRegisterListener @AutoRegisterListener
@Version(major = 4, minor = 0, revision = 3, compatible = 4) @Version(major = 4, minor = 0, revision = 4, compatible = 4)
public class AFK implements Module, Listener public class AFK implements Module, Listener
{ {
private CustomListener listener = new CustomListener(); private CustomListener listener = new CustomListener();
boolean move = true, look = false;
@Override @Override
public void firstLoad() public void firstLoad()
@@ -42,11 +43,23 @@ public class AFK implements Module, Listener
DataManager.setConfig("indicator", "&7[AFK]"); DataManager.setConfig("indicator", "&7[AFK]");
String[] choices = new String[] {"listen", "ignore"}; String[] choices = new String[] {"listen", "ignore"};
DataManager.setConfig("move", "listen", choices); DataManager.setConfig("move", "listen", choices);
DataManager.setConfig("look", "listen", choices);
DataManager.setConfig("chat", "listen", choices); DataManager.setConfig("chat", "listen", choices);
DataManager.setConfig("interact", "listen", choices); DataManager.setConfig("interact", "listen", choices);
DataManager.setConfig("command", "ignore", choices); DataManager.setConfig("command", "ignore", choices);
} }
@Override
public void migrate(Version old)
{
Module.super.migrate(old);
if ((old.major() == 4) && (old.minor() == 0) && (old.revision()) == 3)
{
String[] choices = new String[] {"listen", "ignore"};
DataManager.setConfig("look", "listen", choices);
}
}
@Override @Override
public void postEnable() public void postEnable()
{ {
@@ -116,7 +129,9 @@ public class AFK implements Module, Listener
return recipient.hasPermission("utils.afk.admin"); return recipient.hasPermission("utils.afk.admin");
} }
}); });
if (DataManager.getConfigOrDefault("move", "listen").equals("listen")) move = DataManager.getConfigOrDefault("move", "listen").equals("listen");
look = DataManager.getConfigOrDefault("look", "ignore").equals("listen");
if (move || look)
Bukkit.getPluginManager().registerEvent(PlayerMoveEvent.class, listener, EventPriority.MONITOR, listener, Bukkit.getPluginManager().registerEvent(PlayerMoveEvent.class, listener, EventPriority.MONITOR, listener,
Main.plugin); Main.plugin);
else else
@@ -148,16 +163,36 @@ public class AFK implements Module, Listener
class CustomListener implements Listener, EventExecutor class CustomListener implements Listener, EventExecutor
{ {
private boolean move = true, look = false;
@Override @Override
public void execute(Listener listener, Event event) throws EventException public void execute(Listener listener, Event event) throws EventException
{ {
if (event instanceof PlayerEvent) if (event instanceof PlayerEvent)
{ {
PlayerEvent pevent = (PlayerEvent) event; if (event instanceof PlayerMoveEvent)
Player player = pevent.getPlayer(); {
if (isafk(player)) PlayerMoveEvent pevent = (PlayerMoveEvent) event;
if (!isVanished(player)) double distance = pevent.getFrom().distance(pevent.getTo());
unafk(player); boolean moved = distance > 0;
boolean looked = (pevent.getFrom().getPitch() != pevent.getTo().getPitch())
|| (pevent.getFrom().getYaw() != pevent.getTo().getYaw());
if ((move && moved) || (look && looked))
{
Player player = pevent.getPlayer();
if (isafk(player))
if (!isVanished(player))
unafk(player);
}
}
else
{
PlayerEvent pevent = (PlayerEvent) event;
Player player = pevent.getPlayer();
if (isafk(player))
if (!isVanished(player))
unafk(player);
}
} }
} }
@@ -176,4 +211,14 @@ class CustomListener implements Listener, EventExecutor
{ {
return DataManager.getState(player, "vanished"); return DataManager.getState(player, "vanished");
} }
public void listenMove(boolean move)
{
this.move = move;
}
public void listenLook(boolean look)
{
this.look = look;
}
} }