Added an option to notify staff for afk kick
Added an option to disable notifying staff for a player being marked as afk Updated minimessage
This commit is contained in:
@@ -2,25 +2,30 @@ package com.alttd.afkdectector;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.alttd.afkdectector.afkplayer.AFKPlayer;
|
||||
import com.alttd.afkdectector.config.Config;
|
||||
import com.alttd.afkdectector.config.Messages;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import net.kyori.adventure.title.Title;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
public class MessageTimer extends BukkitRunnable {
|
||||
|
||||
private AFKDetector plugin;
|
||||
private UUID uuid = null;
|
||||
private UUID uuid;
|
||||
private AFKPlayer afkPlayer;
|
||||
private int repeats;
|
||||
|
||||
public MessageTimer(AFKDetector plugin, UUID uuid, int repeats) {
|
||||
public MessageTimer(AFKDetector plugin, AFKPlayer afkPlayer, int repeats) {
|
||||
this.plugin = plugin;
|
||||
this.uuid = uuid;
|
||||
this.afkPlayer = afkPlayer;
|
||||
this.repeats = repeats;
|
||||
this.uuid = afkPlayer.getPlayerUuid();
|
||||
}
|
||||
|
||||
public void init() {
|
||||
@@ -45,12 +50,12 @@ public class MessageTimer extends BukkitRunnable {
|
||||
return;
|
||||
}
|
||||
if(Config.COUNTDOWNENABLED) {
|
||||
MiniMessage miniMessage = MiniMessage.get();
|
||||
Title title = Title.title(miniMessage.parse(Messages.COUNTDOWNTITLE1.getMessage()),
|
||||
miniMessage.parse(Messages.COUNTDOWNTITLE2.getMessage()));
|
||||
MiniMessage miniMessage = MiniMessage.miniMessage();
|
||||
Title title = Title.title(miniMessage.deserialize(Messages.COUNTDOWNTITLE1.getMessage()),
|
||||
miniMessage.deserialize(Messages.COUNTDOWNTITLE2.getMessage()));
|
||||
//Title.Times.of(Config.FADEIN, Config.STAY, Config.STAY);
|
||||
player.showTitle(title);
|
||||
player.sendMessage(miniMessage.parse(Messages.COUNTDOWNMESSAGE.getMessage()));
|
||||
player.sendMessage(miniMessage.deserialize(Messages.COUNTDOWNMESSAGE.getMessage()));
|
||||
}
|
||||
repeats = repeats - 1;
|
||||
|
||||
@@ -61,6 +66,14 @@ public class MessageTimer extends BukkitRunnable {
|
||||
//Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.kickCommand.replace("%player%", player.getName()));
|
||||
plugin.messageTimers.remove(player.getUniqueId());
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), return_placeholders(Config.KICKCOMMAND, player));
|
||||
TagResolver templates = TagResolver.resolver(
|
||||
Placeholder.unparsed("player", player.getName()),
|
||||
Placeholder.unparsed("afk_time", "" + afkPlayer.getafkTime())
|
||||
);
|
||||
Component message = MiniMessage.miniMessage().deserialize(Messages.AFKICKSTAFFMESSAGE.getMessage(), templates);
|
||||
Bukkit.getOnlinePlayers().stream()
|
||||
.filter(staff -> staff.hasPermission("afkdetector.notify"))
|
||||
.forEach(staff -> staff.sendMessage(message));
|
||||
cancel();
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user