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)
@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
{
private CustomListener listener = new CustomListener();
boolean move = true, look = false;
@Override
public void firstLoad()
@@ -42,11 +43,23 @@ public class AFK implements Module, Listener
DataManager.setConfig("indicator", "&7[AFK]");
String[] choices = new String[] {"listen", "ignore"};
DataManager.setConfig("move", "listen", choices);
DataManager.setConfig("look", "listen", choices);
DataManager.setConfig("chat", "listen", choices);
DataManager.setConfig("interact", "listen", 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
public void postEnable()
{
@@ -116,7 +129,9 @@ public class AFK implements Module, Listener
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,
Main.plugin);
else
@@ -148,16 +163,36 @@ public class AFK implements Module, Listener
class CustomListener implements Listener, EventExecutor
{
private boolean move = true, look = false;
@Override
public void execute(Listener listener, Event event) throws EventException
{
if (event instanceof PlayerEvent)
{
PlayerEvent pevent = (PlayerEvent) event;
Player player = pevent.getPlayer();
if (isafk(player))
if (!isVanished(player))
unafk(player);
if (event instanceof PlayerMoveEvent)
{
PlayerMoveEvent pevent = (PlayerMoveEvent) event;
double distance = pevent.getFrom().distance(pevent.getTo());
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");
}
public void listenMove(boolean move)
{
this.move = move;
}
public void listenLook(boolean look)
{
this.look = look;
}
}