warning handler for time delayed warnings

This commit is contained in:
SuperRonanCraft 2022-04-07 22:17:27 -04:00
parent 3fe5c25e7b
commit e1c7f32945
4 changed files with 36 additions and 2 deletions

View File

@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.PlayerInfo;
import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.events.EventListener; import me.SuperRonanCraft.BetterRTP.player.events.EventListener;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
import me.SuperRonanCraft.BetterRTP.references.WarningHandler;
import me.SuperRonanCraft.BetterRTP.references.database.DatabaseHandler; import me.SuperRonanCraft.BetterRTP.references.database.DatabaseHandler;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler;
import me.SuperRonanCraft.BetterRTP.references.Permissions; import me.SuperRonanCraft.BetterRTP.references.Permissions;
@ -39,6 +40,7 @@ public class BetterRTP extends JavaPlugin {
@Getter private final CooldownHandler cooldowns = new CooldownHandler(); @Getter private final CooldownHandler cooldowns = new CooldownHandler();
private final QueueHandler queue = new QueueHandler(); private final QueueHandler queue = new QueueHandler();
@Getter private final DatabaseHandler databaseHandler = new DatabaseHandler(); @Getter private final DatabaseHandler databaseHandler = new DatabaseHandler();
@Getter private final WarningHandler warningHandler = new WarningHandler();
public void onEnable() { public void onEnable() {
instance = this; instance = this;

View File

@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdInfo; import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdInfo;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdWorld; import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdWorld;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.WarningHandler;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
@ -79,8 +80,9 @@ public class RTP {
if (setup_info.getLocation() == null && BetterRTP.getInstance().getSettings().isUseLocationIfAvailable()) { if (setup_info.getLocation() == null && BetterRTP.getInstance().getSettings().isUseLocationIfAvailable()) {
setup_info.setLocation(HelperRTP.getRandomLocation(setup_info.getSender(), setup_info.getWorld())); setup_info.setLocation(HelperRTP.getRandomLocation(setup_info.getSender(), setup_info.getWorld()));
if (setup_info.getLocation() == null) if (setup_info.getLocation() == null)
BetterRTP.getInstance().getLogger().warning("UseLocationIfAvailable is set to `true`, but no location was found for " WarningHandler.warn(WarningHandler.WARNING.USELOCATION_ENABLED_NO_LOCATION_AVAILABLE,
+ setup_info.getSender().getName() + "! Using world defaults!"); "This is not an error! UseLocationIfAvailable is set to `true`, but no location was found for "
+ setup_info.getSender().getName() + "! Using world defaults! (Maybe they dont have permission?)");
} }
//Location //Location
if (setup_info.getLocation() != null) { if (setup_info.getLocation() != null) {

View File

@ -0,0 +1,24 @@
package me.SuperRonanCraft.BetterRTP.references;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import java.util.HashMap;
public class WarningHandler {
HashMap<WARNING, Long> lastWarning = new HashMap<>();
public static void warn(WARNING type, String str) {
WarningHandler handler = BetterRTP.getInstance().getWarningHandler();
Long lastTime = handler.lastWarning.getOrDefault(type, 0L);
if (lastTime <= System.currentTimeMillis()) {
BetterRTP.getInstance().getLogger().info(str);
lastTime += System.currentTimeMillis() + (1000 * 120);
}
handler.lastWarning.put(type, lastTime);
}
public enum WARNING {
USELOCATION_ENABLED_NO_LOCATION_AVAILABLE
}
}

View File

@ -21,11 +21,17 @@ public class QueueHandler implements Listener { //Randomly queues up some random
private final int queueSize = 32; private final int queueSize = 32;
public void registerEvents(BetterRTP pl) { public void registerEvents(BetterRTP pl) {
//DEBUG ONLY FOR THE TIME BEING
if (!BetterRTP.getInstance().getSettings().isDebug())
return;
PluginManager pm = pl.getServer().getPluginManager(); PluginManager pm = pl.getServer().getPluginManager();
pm.registerEvents(this, pl); pm.registerEvents(this, pl);
} }
public void load() { public void load() {
//DEBUG ONLY FOR THE TIME BEING
if (!BetterRTP.getInstance().getSettings().isDebug())
return;
loaded = false; loaded = false;
queueDownload(); queueDownload();
} }