cooldown check fix + cooldown in chat fix

This commit is contained in:
SuperRonanCraft
2022-10-14 00:01:52 -04:00
parent 831f5d29da
commit 2f1ea6556b
23 changed files with 68 additions and 55 deletions

View File

@@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<packaging>jar</packaging>
<version>3.5.0-DEV</version>
<version>3.5.0-DEV2</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>

View File

@@ -63,18 +63,18 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
private String cooldown(PlayerData data, World world) {
if (world == null) return "Invalid World";
CooldownData cooldownData = data.getCooldowns().getOrDefault(HelperRTP.getActualWorld(data.player, world), null);
if (cooldownData != null)
return HelperDate.left(cooldownData.getTime());
else
return HelperDate.total(0L);
long lng = BetterRTP.getInstance().getCooldowns().locked(data.player) ? -1L :
HelperRTP_Check.getCooldown(data.player, HelperRTP.getPlayerWorld(new RTPSetupInformation(world, data.player, data.player, true)));
return HelperDate.total(lng);
}
private String cooldownTime(PlayerData data, World world) {
if (world == null) return "Invalid World";
RTPSetupInformation setup_info = new RTPSetupInformation(HelperRTP.getActualWorld(data.player, world), data.player, data.player, true);
WorldPlayer pWorld = HelperRTP.getPlayerWorld(setup_info);
return HelperDate.total(HelperRTP_Check.applyCooldown(data.player, data.player) ? pWorld.getCooldown() * 1000L : 0L);
Long cooldownTime = BetterRTP.getInstance().getCooldowns().locked(data.player) ? -1L :
(HelperRTP_Check.applyCooldown(data.player, data.player) ? pWorld.getCooldown() * 1000L : 0L);
return HelperDate.total(cooldownTime);
}
private String canRTP(Player player, World world) {
@@ -86,7 +86,7 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true);
WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation);
//Cooldown
if (!HelperRTP_Check.isCoolingDown(player, player, pWorld))
if (HelperRTP_Check.isCoolingDown(player, player, pWorld))
return BetterRTP.getInstance().getSettings().getPlaceholder_cooldown();
//Price
if (!BetterRTP.getInstance().getEco().hasBalance(player, pWorld))

View File

@@ -27,17 +27,19 @@ public class HelperDate {
long max = Math.max(from, to);
if (max == min)
return settings.getPlaceholder_timeZero();
if (max < 0L || min < 0L)
return settings.getPlaceholder_timeInf();
long diffInMillies = max - min;
long days = 0, hours = 0, minutes = 0, seconds = 0;
if (diffInMillies > 0) {
days = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
diffInMillies -= (((1000 * 60) * 60) * 24) * days;
hours = TimeUnit.HOURS.convert(diffInMillies, TimeUnit.MILLISECONDS);
diffInMillies -= ((1000 * 60) * 60) * hours;
minutes = TimeUnit.MINUTES.convert(diffInMillies, TimeUnit.MILLISECONDS);
diffInMillies -= (1000 * 60) * minutes;
seconds = TimeUnit.SECONDS.convert(diffInMillies, TimeUnit.MILLISECONDS);
}
long days, hours, minutes, seconds;
days = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
diffInMillies -= (((1000 * 60) * 60) * 24) * days;
hours = TimeUnit.HOURS.convert(diffInMillies, TimeUnit.MILLISECONDS);
diffInMillies -= ((1000 * 60) * 60) * hours;
minutes = TimeUnit.MINUTES.convert(diffInMillies, TimeUnit.MILLISECONDS);
diffInMillies -= (1000 * 60) * minutes;
seconds = TimeUnit.SECONDS.convert(diffInMillies, TimeUnit.MILLISECONDS);
String time_str = "";
if (days > 0)
time_str += settings.getPlaceholder_timeDays().replace("{0}", String.valueOf(days));

View File

@@ -8,6 +8,9 @@ import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_ERROR_REQUEST_REASON;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.WarningHandler;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.placeholder.Placeholders;
import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.PermissionGroup;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*;
import org.bukkit.Bukkit;
@@ -55,7 +58,12 @@ public class HelperRTP {
WorldPlayer pWorld = getPlayerWorld(setup_info);
RTP_ERROR_REQUEST_REASON cantReason = HelperRTP_Check.canRTP(player, sendi, pWorld, ignoreCooldown);
if (cantReason != null) {
cantReason.getMsg().send(sendi, pWorld);
String msg = cantReason.getMsg().get(player, null);
if (cantReason == RTP_ERROR_REQUEST_REASON.COOLDOWN) {
msg = msg.replace(Placeholders.COOLDOWN.name, HelperDate.total(HelperRTP_Check.getCooldown(player, pWorld)));
msg = msg.replace(Placeholders.TIME.name, HelperDate.total(HelperRTP_Check.getCooldown(player, pWorld)));
}
Message_RTP.sms(sendi, msg, pWorld);
return;
}
//ignore cooldown or else

View File

@@ -24,7 +24,7 @@ public class HelperRTP_Check {
if (getPl().getRTP().getDisabledWorlds().contains(pWorld.getWorld().getName())) {
return RTP_ERROR_REQUEST_REASON.WORLD_DISABLED;
}
if (sendi == player && applyCooldown(sendi, player) && isCoolingDown(sendi, player, pWorld)) { //Is Cooling down
if (sendi == player && isCoolingDown(sendi, player, pWorld)) { //Is Cooling down
return RTP_ERROR_REQUEST_REASON.COOLDOWN;
}
if (!getPl().getEco().hasBalance(sendi, pWorld))
@@ -41,33 +41,30 @@ public class HelperRTP_Check {
public static boolean isCoolingDown(CommandSender sendi, Player player, WorldPlayer pWorld) {
if (!applyCooldown(sendi, player)) //Bypassing/Forced?
return false;
return getCooldown(player, pWorld) > 0L || isLocked(player);
}
public static boolean isLocked(Player player) {
return getPl().getCooldowns().locked(player);
}
public static long getCooldown(Player player, WorldPlayer pWorld) {
CooldownHandler cooldownHandler = getPl().getCooldowns();
if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
MessagesCore.COOLDOWN.send(sendi, String.valueOf(-1L));
return true;
return 1L;
}
//Cooldown Data
CooldownData cooldownData = getPl().getCooldowns().get(player, pWorld.getWorld());
if (cooldownData != null) {
if (cooldownData.getTime() == 0) //Global cooldown with nothing
return false;
else if (cooldownHandler.locked(player)) { //Infinite cooldown (locked)
MessagesCore.NOPERMISSION.send(sendi);
return true;
return 0;
else if (isLocked(player)) { //Infinite cooldown (locked)
return -1L;
} else { //Normal cooldown
long timeLeft = cooldownHandler.timeLeft(player, cooldownData, pWorld);
if (timeLeft > 0) {
//Still cooling down
MessagesCore.COOLDOWN.send(sendi, String.valueOf(timeLeft));
return true;
} else {
//Reset timer, but allow them to tp
//cooldowns.add(id);
return false;
}
return cooldownHandler.timeLeft(player, cooldownData, pWorld);
}
}
return false;
return 0L;
}
public static boolean applyCooldown(CommandSender sendi, Player player) {

View File

@@ -1,6 +1,9 @@
package me.SuperRonanCraft.BetterRTP.references.messages.placeholder;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperDate;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.Location;

View File

@@ -103,7 +103,7 @@ public class CooldownHandler {
long timeLeft = ((cooldown / 1000) + pWorld.getCooldown()) - (System.currentTimeMillis() / 1000);
if (BetterRTP.getInstance().getSettings().isDelayEnabled() && !PermissionNode.BYPASS_DELAY.check(sendi))
timeLeft = timeLeft + BetterRTP.getInstance().getSettings().getDelayTime();
return timeLeft;
return timeLeft * 1000L;
}
public boolean locked(Player player) {

View File

@@ -34,6 +34,7 @@ public class Settings {
@Getter private String placeholder_timeMinutes;
@Getter private String placeholder_timeSeconds;
@Getter private String placeholder_timeZero;
@Getter private String placeholder_timeInf;
public void load() { //Load Settings
@@ -63,6 +64,7 @@ public class Settings {
placeholder_timeMinutes = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Minutes");
placeholder_timeSeconds = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Seconds");
placeholder_timeZero = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.ZeroAll");
placeholder_timeInf = FileOther.FILETYPE.PLACEHOLDERS.getString("Config.TimeFormat.Infinite");
depends.load();
}

View File

@@ -24,11 +24,11 @@ Messages:
Basic: '&cDesculpe! &7Você não tem permissão para usar este comando!'
World: '&cDesculpe! &7Você não tem permissão para o rtp no mundo %world%!'
DisabledWorld: '&cMundo desativado %world%! &7RTP falhou!'
Cooldown: '&cDesculpe! &7Você não pode fazer rtp por mais &c%time% &7segundos!'
Locked: '&cDesculpe! &7Você usou todos os seus RTP's!'
Cooldown: '&cDesculpe! &7Você não pode fazer rtp por mais &c%time%&7!'
Locked: '&cDesculpe! &7Você usou todos os seus RTP''s!'
Invalid: '&cArgumento inválido. Tente ''/%command% ajuda'''
NotOnline: '&cO jogador &7%player% &cnão está online!'
Delay: '&aTeleportando em &f%time% &asegundos! Não se mova!
Delay: '&aTeleportando em &f%time% &asegundos! Não se mova!'
Moved: '&cVocê se moveu! &7RTP foi cancelado!'
NotExist: '&cParece que o mundo &7%world% &cnão existe!'
Already: '&cOpa! &7Parece que você já tem um RTP em andamento, tenha paciência!'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&cPozor! &7Na tento příkaz nemáš práva!'
World: '&cPozor! &7Ve světě %world% se nelze teleportovat!'
DisabledWorld: '&cSvět %world% je uzamčen! &7Teleport nebyl možný!'
Cooldown: '&cPozor! &7Nemůžeš se teleportovat ještě &c%time% &7sekund!'
Cooldown: '&cPozor! &7Nemůžeš se teleportovat ještě &c%time%&7!'
Locked: '&cPozor! &7Využil/a jsi všechny své teleporty!'
Invalid: '&cNeplatný příkaz. Zkus ''/%command% help''.'
NotOnline: '&cHráč &7%player% &cnení online!'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&Beklager! &7Du har ikke tilladelse til at bruge denne kommando!'
World: '&cBeklager! &7Du har ikke tilladelse til at rtp i %world% verden!'
DisabledWorld: '&cVerden %world% er ikke aktiv! &7Kunne ikke RTP!'
Cooldown: '&cBeklager! &7Du kan ikke rtp før om &c%time% &7sekunder!'
Cooldown: '&cBeklager! &7Du kan ikke rtp før om &c%time%&7!'
Locked: '&cBeklager! &7Du har brugt alle dine RTP''er!'
Invalid: '&cUgyldigt parameter. Prøv ''/%command% help'''
NotOnline: '&cSpilleren &7%player% &cer ikke online!'

View File

@@ -19,11 +19,11 @@ Messages:
Basic: '&cUnzureichte Rechte'
World: '&cDu hast keine Rechte um hier RTP nutzen zu können!'
DisabledWorld: '&cIn Welt %world% würde RTP Deaktiviert'
Cooldown: '&c&7Du kannst erst in &c%time% Sekunden &c den Befehl wieder nutzen!'
Cooldown: '&c&7Du kannst erst in &c%time% &c den Befehl wieder nutzen!'
Locked: '&cEs tut uns leid! &7Sie haben alle Ihre RTPs aufgebraucht!'
Invalid: '&cFalsches Argurment. Versuche ''/%command% help'''
NotOnline: '&c &7%player% &cist nicht online'
Delay: '&aDu wirst in &f%time% &Sekunden teleportiert! Nicht bewegehen'
Delay: '&aDu wirst in &f%time% &aSekunden teleportiert! Nicht bewegehen'
Moved: '&cWeil du dich bewegt hast würde die RTP Anfrage zurückgezogen!'
NotExist: '&cSieht so aus als ob die Wlet &7%world% &cnicht existiert!'
Already: '&cHoppla! &7Sieht so aus, als würden Sie bereits rtpen, haben Sie etwas Geduld!'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&cSorry! &7You don''t have permission to use this command!'
World: '&cSorry! &7You are not allowed rtp in the %world% world!'
DisabledWorld: '&cDisabled World %world%! &7Could not RTP!'
Cooldown: '&cSorry! &7You can''t rtp for another &c%time% &7seconds!'
Cooldown: '&cSorry! &7You can''t rtp for another &c%time%&7!'
Locked: '&cSorry! &7You''ve used up all your RTP''s!'
Invalid: '&cInvalid argument. Try ''/%command% help'''
NotOnline: '&cThe player &7%player% &cis not online!'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&c¡Lo siento! &7¡No tienes permiso para usar este comando!'
World: '&c¡Lo siento! &7¡No tienes permitido teletransportarte aleatoriamente en el mundo %world%!'
DisabledWorld: '&c¡Mundo %world% Deshabilitado! &7¡No se puede usar RTP!'
Cooldown: '&c¡Lo siento! &7¡No puedes teletransportarte aleatoriamente por otros &c%time% &7segundos!'
Cooldown: '&c¡Lo siento! &7¡No puedes teletransportarte aleatoriamente por otros &c%time%&7!'
Locked: '&c¡Lo siento! &7¡Has usado todos tus RTPs!'
Invalid: '&cArgumento inválido. Intenta ''/%command% help'''
NotOnline: '&c¡El jugador &7%player% &cno está conectado!'

View File

@@ -20,7 +20,7 @@ Messages:
Basic: '&cDésolé ! Vous n''avez pas la permission de faire cela !'
World: '&cDésolé ! Vous n''êtes pas autorisé à vous téléporter dans le monde %world%!'
DisabledWorld: '&cLe monde %world% est désactivé ! &7Impossible de se téléporter!'
Cooldown: '&cDésolé ! Vous ne pouvez pas vous téléporter pendant encore &6%time% &csecondes !'
Cooldown: '&cDésolé ! Vous ne pouvez pas vous téléporter pendant encore &6%time%&c!'
Locked: '&cSDésolé ! &7Vous avez utilisé tous vos RTP''s !'
Invalid: '&cArgument invalide. Essayer ''/%command% help'''
NotOnline: '&cLe joueur &7%player% &cn''est pas en ligne !'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&cNon hai il permesso di usare questo comando!'
World: '&cNon hai i permessi per teletrasportati nel mondo &f%world%&c!'
DisabledWorld: '&cIl mondo &f%world%&c è disabilitato! &7Teletrasporto non avvenuto!'
Cooldown: '&cAttendi ancora &f%time% &7secondi &cprima di teletrasportarti nuovamente!'
Cooldown: '&cAttendi ancora &f%time% &cprima di teletrasportarti nuovamente!'
Locked: '&cHai esaurito tutti i tuoi RTP disponibili!'
Invalid: '&cArgomento non valido, digita ''/%command% help'''
NotOnline: '&cIl giocatore &7%player% &cnon è online!'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&cSorry! &7Je hebt geen toestemming om dit commando te gebruiken!'
World: '&cSorry! &7Je mag geen rtp in de %world% wereld!'
DisabledWorld: '&cUitgeschakelde wereld %world%! &7Kon geen rtp!'
Cooldown: '&cSorry! &7Je kunt niet rtp gebruiken voor nog eens &c%time% &7seconden!'
Cooldown: '&cSorry! &7Je kunt niet rtp gebruiken voor nog eens &c%time%&7!'
Locked: '&cSorry! &7Je hebt al je rtp''s opgebruikt!'
Invalid: '&cOngeldig argument. Probeer ''/%command% help'''
NotOnline: '&cDe speler &7%player% &cis niet online!'

View File

@@ -23,7 +23,7 @@ Messages:
Locked: '&cBeklager! &7Du har brukt opp alle RTP-ene dine! '
Invalid: '&cUgyldig argument. Prøv '' /%command% help '' '
NotOnline: '&cSpilleren &7%player% &cer ikke online!'
Delay: '&aTeleporterer om &f%time% &asekunder! Ikke flytt deg! '
Delay: '&aTeleporterer om &f%time%&a! Ikke flytt deg! '
Moved: '&cDu har flyttet deg! &7RTP ble kansellert! '
NotExist: '&cSer ut som &7%world% &cIkke eksisterer!'
Already: '&cWhoops! &7 Ser ut som om du allerede rtp''er, ha litt tålmodighet! '

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&cHej! &7Nie masz uprawnień do tej komendy!'
World: '&cHej! &7Nie masz uprawnień aby wykonać losową teleoprtację w świecie %world%!'
DisabledWorld: '&cŚwiat %world% jest wyłączony! &7Nie udało się wykonać losowej teleportacji!'
Cooldown: '&cWybacz! &7Nie możesz wykonać losowej teleportacji przez następne &c%time% &7sekund!'
Cooldown: '&cWybacz! &7Nie możesz wykonać losowej teleportacji przez następne &c%time%&7!'
Locked: '&cWybacz! &7Wykorzystałeś wszystkie losowe teleportacje!'
Invalid: '&cNiewłaściwy argument. Spróbuj ''/%command% help'''
NotOnline: '&cGraz &7%player% &cnie jest online!'

View File

@@ -18,7 +18,7 @@ Messages:
Basic: '&cScuze! &7Nu ai permisiunile necesare pentru a folosi aceasta comanda!'
World: '&cScuze! &7Nu ai voie sa te teleportezi in lumea %world%!'
DisabledWorld: '&cLumea %world% este dezactivata! &7Nu te-am putut teleporta!'
Cooldown: '&cScuze! &7Nu te mai poti teleporta pentru inca &c%time% &7secunde!'
Cooldown: '&cScuze! &7Nu te mai poti teleporta pentru inca &c%time%&7!'
Locked: '&cScuze! &7Ti-ai folosit toate rtp-urile!'
Invalid: '&cArgument Invalid. Incearca ''/%command% help'''
NotOnline: '&cJucatorul &7%player% &cnu este online!'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&cИзвините! Недостаточно полномочий для выполнения команды.'
World: '&cК сожалению, Вам не разрешено использовать рандомную телепортацию в мире &7%world%.'
DisabledWorld: '&cНевозможно использовать рандомную телепортацию - мир &7%world%&c отключен!'
Cooldown: '&cК сожалению, рандомная телепортация будет недоступна еще &7%time%&c секунд.'
Cooldown: '&cК сожалению, рандомная телепортация будет недоступна еще &7%time%&c.'
Locked: '&cК сожалению, Вы истратили все свои рандомные телепортации.'
Invalid: '&cНеверный аргумент. Используйте: ''/%command% help'''
NotOnline: '&cИгрок &7%player% &cне в игре.'

View File

@@ -19,7 +19,7 @@ Messages:
Basic: '&cXin Lỗi! &7Bạn không có quyền!'
World: '&cXin Lỗi! &7Bạn không có quyền dịch chuyển đến %world% world!'
DisabledWorld: '&c%world% đã bị tắt dịch chuyển! &7Không thể dịch chuyển!'
Cooldown: '&cXin Lỗi! &7Bạn không thể dịc chuyển trong &c%time% &7giây!'
Cooldown: '&cXin Lỗi! &7Bạn không thể dịc chuyển trong &c%time%&7!'
Locked: '&cXin Lỗi! &7Bạn đã sử dụng hết tất cả RTP của mình!'
Invalid: '&cĐối số không hợp lệ. Thử ''/%command% help'''
NotOnline: '&cNgười chơi &7%player% &ckhông hoạt động!'

View File

@@ -15,6 +15,7 @@ Config:
Minutes: '{0} Mins and '
Seconds: '{0} Secs'
ZeroAll: 'None'
Infinite: 'Inf'
CanRTP:
Success: '&aYes'
NoPermission: '&cNo Permission'