mirror of
https://github.com/Minestom/Minestom.git
synced 2024-09-27 14:13:24 +02:00
Renamed CooldownUtils to Cooldown
This commit is contained in:
parent
79da0de502
commit
d332855bc4
@ -37,7 +37,7 @@ import net.minestom.server.utils.chunk.ChunkCallback;
|
||||
import net.minestom.server.utils.chunk.ChunkUtils;
|
||||
import net.minestom.server.utils.entity.EntityUtils;
|
||||
import net.minestom.server.utils.player.PlayerUtils;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.time.UpdateOption;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
@ -684,7 +684,7 @@ public class Entity implements Viewable, EventHandler, DataContainer, Permission
|
||||
}
|
||||
|
||||
// Scheduled synchronization
|
||||
if (!CooldownUtils.hasCooldown(time, lastAbsoluteSynchronizationTime, getSynchronizationCooldown())) {
|
||||
if (!Cooldown.hasCooldown(time, lastAbsoluteSynchronizationTime, getSynchronizationCooldown())) {
|
||||
this.lastAbsoluteSynchronizationTime = time;
|
||||
sendSynchronization();
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import net.minestom.server.instance.Instance;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.item.StackingRule;
|
||||
import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.time.UpdateOption;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -75,7 +75,7 @@ public class ItemEntity extends ObjectEntity {
|
||||
@Override
|
||||
public void update(long time) {
|
||||
if (isMergeable() && isPickable() &&
|
||||
(mergeUpdateOption == null || !CooldownUtils.hasCooldown(time, lastMergeCheck, mergeUpdateOption))) {
|
||||
(mergeUpdateOption == null || !Cooldown.hasCooldown(time, lastMergeCheck, mergeUpdateOption))) {
|
||||
this.lastMergeCheck = time;
|
||||
|
||||
final Chunk chunk = instance.getChunkAt(getPosition());
|
||||
|
@ -25,7 +25,7 @@ import net.minestom.server.utils.BlockPosition;
|
||||
import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.Vector;
|
||||
import net.minestom.server.utils.block.BlockIterator;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.time.UpdateOption;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -39,8 +39,7 @@ public class LivingEntity extends Entity implements EquipmentHandler {
|
||||
|
||||
// Item pickup
|
||||
protected boolean canPickupItem;
|
||||
protected UpdateOption itemPickupCooldown = new UpdateOption(5, TimeUnit.TICK);
|
||||
private long lastItemPickupCheckTime;
|
||||
protected Cooldown itemPickupCooldown = new Cooldown(new UpdateOption(5, TimeUnit.TICK));
|
||||
|
||||
protected boolean isDead;
|
||||
|
||||
@ -213,8 +212,8 @@ public class LivingEntity extends Entity implements EquipmentHandler {
|
||||
}
|
||||
|
||||
// Items picking
|
||||
if (canPickupItem() && !CooldownUtils.hasCooldown(time, lastItemPickupCheckTime, itemPickupCooldown)) {
|
||||
this.lastItemPickupCheckTime = time;
|
||||
if (canPickupItem() && itemPickupCooldown.isReady(time)) {
|
||||
itemPickupCooldown.refreshLastUpdate(time);
|
||||
|
||||
final Chunk chunk = getChunk(); // TODO check surrounding chunks
|
||||
final Set<Entity> entities = instance.getChunkEntities(chunk);
|
||||
@ -551,7 +550,7 @@ public class LivingEntity extends Entity implements EquipmentHandler {
|
||||
playerConnection.sendPacket(getEquipmentsPacket());
|
||||
playerConnection.sendPacket(getPropertiesPacket());
|
||||
|
||||
if (getTeam() != null){
|
||||
if (getTeam() != null) {
|
||||
playerConnection.sendPacket(getTeam().createTeamsCreationPacket());
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ import net.minestom.server.utils.chunk.ChunkCallback;
|
||||
import net.minestom.server.utils.chunk.ChunkUtils;
|
||||
import net.minestom.server.utils.entity.EntityUtils;
|
||||
import net.minestom.server.utils.instance.InstanceUtils;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.time.UpdateOption;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
@ -78,7 +78,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArraySet;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.UnaryOperator;
|
||||
|
||||
@ -152,8 +151,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
||||
private float lastPlayerSyncYaw, lastPlayerSyncPitch;
|
||||
|
||||
// Experience orb pickup
|
||||
protected UpdateOption experiencePickupCooldown = new UpdateOption(10, TimeUnit.TICK);
|
||||
private long lastExperiencePickupCheckTime;
|
||||
protected Cooldown experiencePickupCooldown = new Cooldown(new UpdateOption(10, TimeUnit.TICK));
|
||||
|
||||
private BelowNameTag belowNameTag;
|
||||
|
||||
@ -374,9 +372,8 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
||||
}
|
||||
|
||||
// Experience orb pickup
|
||||
if (!CooldownUtils.hasCooldown(time, lastExperiencePickupCheckTime, experiencePickupCooldown)) {
|
||||
this.lastExperiencePickupCheckTime = time;
|
||||
|
||||
if (experiencePickupCooldown.isReady(time)) {
|
||||
experiencePickupCooldown.refreshLastUpdate(time);
|
||||
final Chunk chunk = getChunk(); // TODO check surrounding chunks
|
||||
final Set<Entity> entities = instance.getChunkEntities(chunk);
|
||||
for (Entity entity : entities) {
|
||||
|
@ -7,7 +7,7 @@ import net.minestom.server.entity.ai.GoalSelector;
|
||||
import net.minestom.server.entity.pathfinding.Navigator;
|
||||
import net.minestom.server.entity.type.projectile.EntityProjectile;
|
||||
import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -122,12 +122,12 @@ public class CombinedAttackGoal extends GoalSelector {
|
||||
boolean comeClose = false;
|
||||
// First of all, checking if to perform melee or ranged attack depending on the distance to target.
|
||||
if (distanceSquared <= this.meleeRangeSquared) {
|
||||
if (!CooldownUtils.hasCooldown(time, this.lastAttack, this.meleeTimeUnit, this.meleeDelay)) {
|
||||
if (!Cooldown.hasCooldown(time, this.lastAttack, this.meleeTimeUnit, this.meleeDelay)) {
|
||||
this.entityCreature.attack(target, true);
|
||||
this.lastAttack = time;
|
||||
}
|
||||
} else if (distanceSquared <= this.rangedRangeSquared) {
|
||||
if (!CooldownUtils.hasCooldown(time, this.lastAttack, this.rangedTimeUnit, this.rangedDelay)) {
|
||||
if (!Cooldown.hasCooldown(time, this.lastAttack, this.rangedTimeUnit, this.rangedDelay)) {
|
||||
if (this.entityCreature.hasLineOfSight(target)) {
|
||||
// If target is on line of entity sight, ranged attack can be performed
|
||||
Position to = target.getPosition().clone().add(0D, target.getEyeHeight(), 0D);
|
||||
|
@ -6,11 +6,9 @@ import net.minestom.server.entity.ai.GoalSelector;
|
||||
import net.minestom.server.entity.ai.TargetSelector;
|
||||
import net.minestom.server.entity.pathfinding.Navigator;
|
||||
import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Attacks the entity's target ({@link EntityCreature#getTarget()}) OR the closest entity
|
||||
@ -67,7 +65,7 @@ public class MeleeAttackGoal extends GoalSelector {
|
||||
|
||||
// Attack the target entity
|
||||
if (entityCreature.getDistance(target) <= range) {
|
||||
if (!CooldownUtils.hasCooldown(time, lastHit, timeUnit, delay)) {
|
||||
if (!Cooldown.hasCooldown(time, lastHit, timeUnit, delay)) {
|
||||
entityCreature.attack(target, true);
|
||||
this.lastHit = time;
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import net.minestom.server.entity.ai.GoalSelector;
|
||||
import net.minestom.server.entity.pathfinding.Navigator;
|
||||
import net.minestom.server.entity.type.projectile.EntityProjectile;
|
||||
import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -83,7 +83,7 @@ public class RangedAttackGoal extends GoalSelector {
|
||||
double distanceSquared = this.entityCreature.getDistanceSquared(target);
|
||||
boolean comeClose = false;
|
||||
if (distanceSquared <= this.attackRangeSquared) {
|
||||
if (!CooldownUtils.hasCooldown(time, this.lastShot, this.timeUnit, this.delay)) {
|
||||
if (!Cooldown.hasCooldown(time, this.lastShot, this.timeUnit, this.delay)) {
|
||||
if (this.entityCreature.hasLineOfSight(target)) {
|
||||
Position to = target.getPosition().clone().add(0D, target.getEyeHeight(), 0D);
|
||||
|
||||
|
@ -19,7 +19,7 @@ import net.minestom.server.utils.block.CustomBlockUtils;
|
||||
import net.minestom.server.utils.callback.OptionalCallback;
|
||||
import net.minestom.server.utils.chunk.ChunkCallback;
|
||||
import net.minestom.server.utils.chunk.ChunkUtils;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.UpdateOption;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
import net.minestom.server.world.biomes.Biome;
|
||||
@ -145,7 +145,7 @@ public class DynamicChunk extends Chunk {
|
||||
final UpdateOption updateOption = customBlock.getUpdateOption();
|
||||
if (updateOption != null) {
|
||||
final long lastUpdate = updatableBlocksLastUpdate.get(index);
|
||||
final boolean hasCooldown = CooldownUtils.hasCooldown(time, lastUpdate, updateOption);
|
||||
final boolean hasCooldown = Cooldown.hasCooldown(time, lastUpdate, updateOption);
|
||||
if (hasCooldown)
|
||||
continue;
|
||||
|
||||
|
@ -30,7 +30,7 @@ import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.chunk.ChunkCallback;
|
||||
import net.minestom.server.utils.chunk.ChunkUtils;
|
||||
import net.minestom.server.utils.entity.EntityUtils;
|
||||
import net.minestom.server.utils.time.CooldownUtils;
|
||||
import net.minestom.server.utils.time.Cooldown;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.time.UpdateOption;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
@ -1026,7 +1026,7 @@ public abstract class Instance implements BlockModifier, EventHandler, DataConta
|
||||
this.time += timeRate;
|
||||
|
||||
// time needs to be send to players
|
||||
if (timeUpdate != null && !CooldownUtils.hasCooldown(time, lastTimeUpdate, timeUpdate)) {
|
||||
if (timeUpdate != null && !Cooldown.hasCooldown(time, lastTimeUpdate, timeUpdate)) {
|
||||
PacketUtils.sendGroupedPacket(getPlayers(), createTimePacket());
|
||||
this.lastTimeUpdate = time;
|
||||
}
|
||||
|
@ -2,10 +2,22 @@ package net.minestom.server.utils.time;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public final class CooldownUtils {
|
||||
public final class Cooldown {
|
||||
|
||||
private CooldownUtils() {
|
||||
private UpdateOption updateOption;
|
||||
private long lastUpdate;
|
||||
|
||||
public Cooldown(@NotNull UpdateOption updateOption) {
|
||||
this.updateOption = updateOption;
|
||||
this.lastUpdate = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public void refreshLastUpdate(long lastUpdate) {
|
||||
this.lastUpdate = lastUpdate;
|
||||
}
|
||||
|
||||
public boolean isReady(long time) {
|
||||
return !hasCooldown(time, lastUpdate, updateOption.getTimeUnit(), updateOption.getValue());
|
||||
}
|
||||
|
||||
/**
|
Loading…
Reference in New Issue
Block a user