-
-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathCooldownModerationModule.java
More file actions
79 lines (65 loc) · 2.29 KB
/
CooldownModerationModule.java
File metadata and controls
79 lines (65 loc) · 2.29 KB
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
72
73
74
75
76
77
78
79
package dev._2lstudios.chatsentinel.shared.modules;
import dev._2lstudios.chatsentinel.shared.chat.ChatEventResult;
import dev._2lstudios.chatsentinel.shared.chat.ChatPlayer;
public class CooldownModerationModule extends ModerationModule {
private int repeatTimeGlobal;
private int repeatTime;
private int normalTime;
private int commandTime;
private long lastMessageTime = 0L;
private String lastMessage = "";
public void loadData(boolean enabled, int repeatTimeGlobal, int repeatTime,
int normalTime,
int commandTime) {
setEnabled(enabled);
this.repeatTimeGlobal = repeatTimeGlobal;
this.repeatTime = repeatTime;
this.normalTime = normalTime;
this.commandTime = commandTime;
}
public float getRemainingTime(ChatPlayer chatPlayer, String message) {
if (isEnabled() && message != null) {
long currentTime = System.currentTimeMillis();
long lastMessageTimePassed = currentTime - chatPlayer.getLastMessageTime();
long lastMessageTimePassedGlobal = currentTime - this.lastMessageTime;
long remainingTime;
if (message.startsWith("/")) {
remainingTime = this.commandTime - lastMessageTimePassed;
} else if (chatPlayer.isLastMessage(message) && lastMessageTimePassed < this.repeatTime) {
remainingTime = this.repeatTime - lastMessageTimePassed;
} else if (this.lastMessage.equals(message) && lastMessageTimePassedGlobal < this.repeatTimeGlobal) {
remainingTime = this.repeatTimeGlobal - lastMessageTimePassedGlobal;
} else {
remainingTime = this.normalTime - lastMessageTimePassed;
}
if (remainingTime > 0) {
return ((int) (remainingTime / 100F)) / 10F;
}
}
return 0;
}
@Override
public ChatEventResult processEvent(ChatPlayer chatPlayer, MessagesModule messagesModule, String playerName,
String originalMessage, String lang) {
if (isEnabled() && getRemainingTime(chatPlayer, originalMessage) > 0) {
return new ChatEventResult(originalMessage, true);
}
return null;
}
@Override
public String getName() {
return "Cooldown";
}
@Override
public String getCustomName() {
return getName();
}
@Override
public String getWarnNotification(String[][] placeholders) {
return null;
}
public void setLastMessage(String lastMessage, long lastMessageTime) {
this.lastMessage = lastMessage;
this.lastMessageTime = lastMessageTime;
}
}