Add warning message if ignore claims remains enabled
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user