Added "look" option
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user