blob: a4b415475e507b4fdd9517538d18b5c0d4f8c47c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
package com.redstoner.modules.afk;
import com.redstoner.misc.Utils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.*;
public class AFKListener implements Listener {
private boolean
move = false,
look = false,
chat = false,
interact = false,
command = false;
protected void listenTo(boolean move, boolean look, boolean chat, boolean interact, boolean command) {
this.move = move;
this.look = look;
this.chat = chat;
this.interact = interact;
this.command = command;
String lt = "Listening to:";
if (move) lt += " move";
if (look) lt += " look";
if (chat) lt += " chat";
if (interact) lt+= " interact";
if (command) lt += " command";
Utils.broadcast(null, lt, recipient -> recipient.hasPermission("utils.afk.admin"));
}
@EventHandler
public void onMove(PlayerMoveEvent event) {
Player player = event.getPlayer();
if (!AFKUtil.isAfk(player) || AFKUtil.isVanished(player) || AFKUtil.isIgnoringMovement(player))
return;
double distance = event.getFrom().distance(event.getTo());
boolean moved = distance > 0;
boolean looked = (event.getFrom().getPitch() != event.getTo().getPitch()) || (event.getFrom().getYaw() != event.getTo().getYaw());
if ((move && moved) || (look && looked)) AFKUtil.unAfk(event.getPlayer());
}
@EventHandler
@SuppressWarnings("deprecation")
public void onChat(PlayerChatEvent event) {
if (chat) AFKUtil.checkedUnAfk(event.getPlayer());
}
@EventHandler
public void onInteract(PlayerInteractEvent event) {
if (interact) AFKUtil.checkedUnAfk(event.getPlayer());
}
@EventHandler
public void onCommand(PlayerCommandPreprocessEvent event) {
if (command) AFKUtil.checkedUnAfk(event.getPlayer());
}
@EventHandler
public void onLeave(PlayerQuitEvent event) {
AFKUtil.unAfk(event.getPlayer(), true);
}
}
|