Skip to content

Commit 67c595c

Browse files
committed
Change AFK to have meta
1 parent d7d79f2 commit 67c595c

7 files changed

Lines changed: 25 additions & 10 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins {
88
}
99

1010
group = "com.dumbdogdiner"
11-
version = "3.1.2"
11+
version = "3.1.3"
1212

1313
repositories {
1414
mavenCentral()

src/main/java/com/dumbdogdiner/stickycommands/User.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.bukkit.Bukkit;
99
import org.bukkit.Material;
1010
import org.bukkit.entity.Player;
11+
import org.bukkit.metadata.FixedMetadataValue;
1112
import org.jetbrains.annotations.NotNull;
1213

1314
import lombok.Getter;
@@ -31,14 +32,29 @@ public class User implements Cacheable {
3132

3233
/**
3334
* Whether or not this user is AFK.
35+
* We need a CUSTOM setter.
3436
*/
3537
@Getter
36-
@Setter
37-
private boolean afk;
38+
private boolean afk = false;
3839

3940
@Getter
40-
@Setter
4141
private Integer afkTime = 0;
42+
43+
public boolean setAfk(boolean AFKState){
44+
if(!AFKState)
45+
afkTime = 0;
46+
afk = AFKState;
47+
if(afk){
48+
getPlayer().setMetadata("AFK", new FixedMetadataValue(StickyCommands.getInstance(), "AFK"));
49+
} else {
50+
getPlayer().removeMetadata("AFK", StickyCommands.getInstance());
51+
}
52+
return afk;
53+
}
54+
55+
public int incAfkTime(){
56+
return ++afkTime;
57+
}
4258

4359
// I spent an hour trying to come up with a good solution to this weird problem where if you are being pushed by water, and on the corner water block, your from block is considered air and not water...
4460
// So, we need to keep a buffer of the last 3 blocks the player stood in, and if it contains water, we'll consider it as the water pushing them, since there's no event for

src/main/java/com/dumbdogdiner/stickycommands/commands/Afk.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public ExitCode executeCommand(CommandSender sender, String commandLabel, String
3636

3737
if (user.isAfk()) {
3838
user.setAfk(false);
39-
user.setAfkTime(0);
4039
for (Player p : Bukkit.getOnlinePlayers()) {
4140
p.sendMessage(StickyCommands.getInstance().getLocaleProvider().translate("afk.not-afk", variables));
4241
}

src/main/java/com/dumbdogdiner/stickycommands/listeners/AfkEventListener.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ private void checkAfk(Player player, PlayerEvent event) {
8989
StickyCommands.getInstance().getOnlineUserCache().put(player.getUniqueId(), User.fromPlayer(player));
9090

9191
assert user != null;
92-
user.setAfkTime(0);
9392
if (user.isAfk()) {
9493
variables.put("player", player.getName());
9594
// Reset their AFK time

src/main/java/com/dumbdogdiner/stickycommands/listeners/PlayerInteractionListener.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ public void onInteract(PlayerInteractEvent event) {
1515
var player = event.getPlayer();
1616
var is = player.getInventory().getItemInMainHand();
1717
var meta = is.getItemMeta();
18-
if (is.getType() == Material.AIR || is.getType() == null)
18+
if (is.getType() == Material.AIR)
1919
return;
20-
if (meta.hasLore()) {
20+
if (meta != null && meta.hasLore()) {
2121
List<String> lore = meta.getLore();
22+
assert lore != null;
2223
String[] metaCheck = lore.get(0).split(":");
2324
if (metaCheck[0].equalsIgnoreCase("command") && metaCheck[1] != null) {
2425
if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK

src/main/java/com/dumbdogdiner/stickycommands/runnables/AfkTimeRunnable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class AfkTimeRunnable extends TimerTask {
1717
@Override
1818
public void run() {
1919
for (User user : StickyCommands.getInstance().getOnlineUserCache().values()) {
20-
user.setAfkTime(user.getAfkTime() + 1);
20+
user.incAfkTime();
2121
if (user.getAfkTime() >= AFK_TIMEOUT) {
2222
var variables = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
2323
if (!user.isAfk()) {

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: StickyCommands
2-
version: 3.0.1
2+
version: 3.1.3
33
main: com.dumbdogdiner.stickycommands.StickyCommands
44
load: STARTUP
55
authors:

0 commit comments

Comments
 (0)