Add warning message if ignore claims remains enabled

This commit is contained in:
destro174
2022-02-15 15:31:04 +01:00
parent c17fb9cd5f
commit 0583968f67
7 changed files with 70 additions and 983 deletions
@@ -20,6 +20,7 @@ package me.ryanhamshire.GriefPrevention;
import me.ryanhamshire.GriefPrevention.DataStore.NoTransferException;
import me.ryanhamshire.GriefPrevention.alttd.tasks.ClaimExpireTask;
import me.ryanhamshire.GriefPrevention.alttd.tasks.IgnoreClaimWarningTask;
import me.ryanhamshire.GriefPrevention.events.PreventBlockBreakEvent;
import me.ryanhamshire.GriefPrevention.events.SaveTrappedPlayerEvent;
import me.ryanhamshire.GriefPrevention.events.TrustChangedEvent;
@@ -246,6 +247,8 @@ public class GriefPrevention extends JavaPlugin
private Pl3xMapHook pl3xmapHook;
private HashMap<UUID, IgnoreClaimWarningTask> ignoreClaimWarningTasks;
//how far away to search from a tree trunk for its branch blocks
public static final int TREE_RADIUS = 5;
@@ -403,6 +406,7 @@ public class GriefPrevention extends JavaPlugin
if (getServer().getPluginManager().isPluginEnabled("Pl3xMap")) {
pl3xmapHook = new Pl3xMapHook(this);
}
ignoreClaimWarningTasks = new HashMap<>();
AddLogEntry("Boot finished.");
try
@@ -1301,14 +1305,21 @@ public class GriefPrevention extends JavaPlugin
playerData.ignoreClaims = !playerData.ignoreClaims;
UUID uuid = player.getUniqueId();
//toggle ignore claims mode on or off
if (!playerData.ignoreClaims)
{
GriefPrevention.sendMessage(player, TextMode.Success, Messages.RespectingClaims);
if(ignoreClaimWarningTasks.containsKey(uuid))
{
ignoreClaimWarningTasks.get(uuid).cancel();
ignoreClaimWarningTasks.remove(uuid);
}
}
else
{
GriefPrevention.sendMessage(player, TextMode.Success, Messages.IgnoringClaims);
ignoreClaimWarningTasks.put(uuid, new IgnoreClaimWarningTask(this, uuid));
}
return true;
@@ -165,4 +165,13 @@ public class AlttdConfig extends AbstractConfiguration
EXPIRING_CLAIM_TOOLTIP = config.getString("settings.region.tooltip.expiring-claim", EXPIRING_CLAIM_TOOLTIP);
}
public static int ignoreClaimWarningDelay = 20 * 600;
public static String ignoreClaimWarningMessage = "<player> has had ignore claims on since <time>.";
public static String ignoreClaimWarningPermission = "griefprevention.ignoreclaimwarnings";
public static void ignoreClaimSettings() {
ignoreClaimWarningDelay = config.getInt("settings.ignore-claim-warning-delay", ignoreClaimWarningDelay);
ignoreClaimWarningMessage = config.getString("settings.ignore-claim-warning-message", ignoreClaimWarningMessage);
ignoreClaimWarningPermission = config.getString("settings.ignore-claim-warning-permission", ignoreClaimWarningPermission);
}
}
@@ -0,0 +1,50 @@
package me.ryanhamshire.GriefPrevention.alttd.tasks;
import me.ryanhamshire.GriefPrevention.GriefPrevention;
import me.ryanhamshire.GriefPrevention.alttd.config.AlttdConfig;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class IgnoreClaimWarningTask extends BukkitRunnable
{
private GriefPrevention plugin;
private UUID uuid;
private String time;
public IgnoreClaimWarningTask(GriefPrevention plugin, UUID uuid)
{
this.plugin = plugin;
this.uuid = uuid;
LocalTime localTime = LocalTime.now();
this.time = localTime.format(DateTimeFormatter.ofPattern("HH:mm"));
this.init();
}
public void init()
{
runTaskLater(plugin, AlttdConfig.ignoreClaimWarningDelay);
}
@Override
public void run()
{
Player player = Bukkit.getPlayer(uuid);
if (player == null) return;
List<Template> templates = new ArrayList<>(List.of(
Template.template("player", player.displayName()),
Template.template("time", time)
));
Bukkit.broadcast(MiniMessage.miniMessage().deserialize(AlttdConfig.ignoreClaimWarningMessage, TemplateResolver.templates(templates)), AlttdConfig.ignoreClaimWarningPermission);
this.init();
}
}