diff --git a/src/client/java/io/github/dennisochulor/tickrate/TickIndicator.java b/src/client/java/io/github/dennisochulor/tickrate/TickIndicator.java index 5bbe32a..5597ee6 100644 --- a/src/client/java/io/github/dennisochulor/tickrate/TickIndicator.java +++ b/src/client/java/io/github/dennisochulor/tickrate/TickIndicator.java @@ -22,9 +22,9 @@ public static void tick() { if(!TickIndicator.isEnabled() || !TickRateClientManager.serverHasMod()) return; MinecraftClient client = MinecraftClient.getInstance(); TickState chunkState = TickRateClientManager.getChunkState(client.player.getChunkPos().toLong()); - int chunkRate = (int) chunkState.rate(); + float chunkRate = (float) chunkState.rate(); TickState entityState = client.targetedEntity!=null ? TickRateClientManager.getEntityState(client.targetedEntity) : null; - int entityRate = (int) (entityState!=null ? entityState.rate() : 0); + float entityRate = (float) (entityState!=null ? entityState.rate() : 0.0f); String chunkStateStr = ""; String entityStateStr = ""; diff --git a/src/main/java/io/github/dennisochulor/tickrate/api_impl/TickRateAPIImpl.java b/src/main/java/io/github/dennisochulor/tickrate/api_impl/TickRateAPIImpl.java index 8940bfa..0c39e9e 100644 --- a/src/main/java/io/github/dennisochulor/tickrate/api_impl/TickRateAPIImpl.java +++ b/src/main/java/io/github/dennisochulor/tickrate/api_impl/TickRateAPIImpl.java @@ -81,7 +81,7 @@ public float queryServer() { @Override public void rateServer(float rate) { if(rate < 1) throw new IllegalArgumentException("rate must be >= 1"); - int roundRate = Math.round(rate); + float roundRate = Math.round(rate*100)/100; tickManager.tickRate$setServerRate(roundRate); tickManager.tickRate$sendUpdatePacket(); send(() -> TickRateEvents.SERVER_RATE.invoker().onServerRate(roundRate)); @@ -138,9 +138,9 @@ public void rateEntity(Collection entities, float rate) { entityCheck(entities); int roundRate = Math.round(rate); - tickManager.tickRate$setEntityRate(roundRate, entities); + tickManager.tickRate$setEntityRate(rate, entities); tickManager.tickRate$sendUpdatePacket(); - send(() -> entities.forEach(entity -> TickRateEvents.ENTITY_RATE.invoker().onEntityRate(entity, roundRate))); + send(() -> entities.forEach(entity -> TickRateEvents.ENTITY_RATE.invoker().onEntityRate(entity, rate))); } @Override @@ -209,7 +209,7 @@ public void rateChunk(World world, Collection chunks, float rate) { if(rate < 1.0f && rate != 0.0f) throw new IllegalArgumentException("rate must be >= 1 or exactly 0"); chunkCheck(world, chunks); - int roundRate = Math.round(rate); + float roundRate = Math.round(rate*100)/100; tickManager.tickRate$setChunkRate(rate, world, chunks); tickManager.tickRate$sendUpdatePacket(); send(() -> chunks.forEach(chunkPos -> TickRateEvents.CHUNK_RATE.invoker().onChunkRate(world, chunkPos, roundRate))); diff --git a/src/main/java/io/github/dennisochulor/tickrate/mixin/core/TickCommandMixin.java b/src/main/java/io/github/dennisochulor/tickrate/mixin/core/TickCommandMixin.java index 3af5f45..790d677 100644 --- a/src/main/java/io/github/dennisochulor/tickrate/mixin/core/TickCommandMixin.java +++ b/src/main/java/io/github/dennisochulor/tickrate/mixin/core/TickCommandMixin.java @@ -155,10 +155,10 @@ private static LiteralArgumentBuilder register(LiteralArgum private static int executeRate(ServerCommandSource source, float rate) { int roundRate = Math.round(rate); // can't actually accept decimals ServerTickManager tickManager = source.getServer().getTickManager(); - tickManager.tickRate$setServerRate(roundRate); + tickManager.tickRate$setServerRate(rate); tickManager.tickRate$sendUpdatePacket(); - send(source, () -> TickRateEvents.SERVER_RATE.invoker().onServerRate(roundRate)); - source.sendFeedback(() -> Text.translatable("commands.tick.rate.success", roundRate), true); + send(source, () -> TickRateEvents.SERVER_RATE.invoker().onServerRate(rate)); + source.sendFeedback(() -> Text.translatable("commands.tick.rate.success", rate), true); return roundRate; } @@ -230,12 +230,12 @@ private static int executeChunkRate(ServerCommandSource source, List c int roundRate = Math.round(rate); // can't actually accept decimals ServerTickManager tickManager = source.getServer().getTickManager(); - tickManager.tickRate$setChunkRate(roundRate, source.getWorld(), chunks); + tickManager.tickRate$setChunkRate(rate, source.getWorld(), chunks); tickManager.tickRate$sendUpdatePacket(); send(source, () -> chunks.forEach(chunkPos -> TickRateEvents.CHUNK_RATE.invoker().onChunkRate(source.getWorld(), chunkPos, rate))); if(roundRate != 0) { - source.sendFeedback(() -> Text.of("Set tick rate of " + chunks.size() + " chunks to " + roundRate + " TPS."), false); + source.sendFeedback(() -> Text.of("Set tick rate of " + chunks.size() + " chunks to " + rate + " TPS."), false); return roundRate; } else { @@ -312,11 +312,11 @@ private static int executeEntityRate(ServerCommandSource source, Collection entities.forEach(entity -> TickRateEvents.ENTITY_RATE.invoker().onEntityRate(entity, rate))); if(roundRate != 0) { - source.sendFeedback(() -> Text.of("Set tick rate of " + entities.size() + " entities to " + roundRate + " TPS."), false); + source.sendFeedback(() -> Text.of("Set tick rate of " + entities.size() + " entities to " + rate + " TPS."), false); return roundRate; } else {