switch restock timestamp and always format positive time

This commit is contained in:
xGinko 2024-02-13 19:14:38 +01:00
parent afc1814e40
commit 74bb0b0e9e
3 changed files with 11 additions and 9 deletions

View File

@ -207,7 +207,7 @@ public final class WrappedVillager {
* @return True if the villager has been loaded long enough. * @return True if the villager has been loaded long enough.
*/ */
public boolean canRestock(final long cooldown_millis) { public boolean canRestock(final long cooldown_millis) {
return getLastRestock() + cooldown_millis <= villager.getWorld().getFullTime(); return getLastRestock() + cooldown_millis <= System.currentTimeMillis();
} }
/** /**
@ -223,7 +223,7 @@ public final class WrappedVillager {
* Saves the time of the in-game world when the entity was last restocked. * Saves the time of the in-game world when the entity was last restocked.
*/ */
public void saveRestockTime() { public void saveRestockTime() {
dataContainer.set(Keyring.VillagerOptimizer.LAST_RESTOCK.getKey(), PersistentDataType.LONG, villager.getWorld().getFullTime()); dataContainer.set(Keyring.VillagerOptimizer.LAST_RESTOCK.getKey(), PersistentDataType.LONG, System.currentTimeMillis());
} }
/** /**
@ -247,7 +247,7 @@ public final class WrappedVillager {
public long getRestockCooldownMillis(final long cooldown_millis) { public long getRestockCooldownMillis(final long cooldown_millis) {
if (dataContainer.has(Keyring.VillagerOptimizer.LAST_RESTOCK.getKey(), PersistentDataType.LONG)) if (dataContainer.has(Keyring.VillagerOptimizer.LAST_RESTOCK.getKey(), PersistentDataType.LONG))
return villager.getWorld().getFullTime() - (dataContainer.get(Keyring.VillagerOptimizer.LAST_RESTOCK.getKey(), PersistentDataType.LONG) + cooldown_millis); return System.currentTimeMillis() - (dataContainer.get(Keyring.VillagerOptimizer.LAST_RESTOCK.getKey(), PersistentDataType.LONG) + cooldown_millis);
return cooldown_millis; return cooldown_millis;
} }
@ -269,7 +269,7 @@ public final class WrappedVillager {
* @return Whether the villager can be leveled up or not with the checked milliseconds * @return Whether the villager can be leveled up or not with the checked milliseconds
*/ */
public boolean canLevelUp(final long cooldown_millis) { public boolean canLevelUp(final long cooldown_millis) {
if (villager.getWorld().getFullTime() < getLastLevelUpTime() + cooldown_millis) { if (System.currentTimeMillis() < getLastLevelUpTime() + cooldown_millis) {
return false; return false;
} }
@ -285,7 +285,7 @@ public final class WrappedVillager {
* Saves the time of the in-game world when the entity was last leveled up. * Saves the time of the in-game world when the entity was last leveled up.
*/ */
public void saveLastLevelUp() { public void saveLastLevelUp() {
dataContainer.set(Keyring.VillagerOptimizer.LAST_LEVELUP.getKey(), PersistentDataType.LONG, villager.getWorld().getFullTime()); dataContainer.set(Keyring.VillagerOptimizer.LAST_LEVELUP.getKey(), PersistentDataType.LONG, System.currentTimeMillis());
} }
/** /**
@ -302,7 +302,7 @@ public final class WrappedVillager {
public long getLevelCooldownMillis(final long cooldown_millis) { public long getLevelCooldownMillis(final long cooldown_millis) {
if (dataContainer.has(Keyring.VillagerOptimizer.LAST_LEVELUP.getKey(), PersistentDataType.LONG)) if (dataContainer.has(Keyring.VillagerOptimizer.LAST_LEVELUP.getKey(), PersistentDataType.LONG))
return villager.getWorld().getFullTime() - (dataContainer.get(Keyring.VillagerOptimizer.LAST_LEVELUP.getKey(), PersistentDataType.LONG) + cooldown_millis); return System.currentTimeMillis() - (dataContainer.get(Keyring.VillagerOptimizer.LAST_LEVELUP.getKey(), PersistentDataType.LONG) + cooldown_millis);
return cooldown_millis; return cooldown_millis;
} }

View File

@ -1,10 +1,10 @@
package me.xginko.villageroptimizer.modules.gameplay; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.WrappedVillager;
import me.xginko.villageroptimizer.config.Config; import me.xginko.villageroptimizer.config.Config;
import me.xginko.villageroptimizer.enums.permissions.Bypass; import me.xginko.villageroptimizer.enums.permissions.Bypass;
import me.xginko.villageroptimizer.WrappedVillager;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule; import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import me.xginko.villageroptimizer.utils.CommonUtil; import me.xginko.villageroptimizer.utils.CommonUtil;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
@ -57,7 +57,7 @@ public class RestockOptimizedTrades implements VillagerOptimizerModule, Listener
return true; return true;
} }
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
private void onInteract(PlayerInteractEntityEvent event) { private void onInteract(PlayerInteractEntityEvent event) {
if (!event.getRightClicked().getType().equals(EntityType.VILLAGER)) return; if (!event.getRightClicked().getType().equals(EntityType.VILLAGER)) return;

View File

@ -10,6 +10,8 @@ import java.time.Duration;
public class CommonUtil { public class CommonUtil {
public static @NotNull String formatDuration(Duration duration) { public static @NotNull String formatDuration(Duration duration) {
if (duration.isNegative()) duration = duration.negated();
final int seconds = duration.toSecondsPart(); final int seconds = duration.toSecondsPart();
final int minutes = duration.toMinutesPart(); final int minutes = duration.toMinutesPart();
final int hours = duration.toHoursPart(); final int hours = duration.toHoursPart();