update version number

This commit is contained in:
2026-07-21 19:19:51 +02:00
parent c8554ce8d1
commit b82489f9d3
2 changed files with 24 additions and 1 deletions
+1
View File
@@ -5,6 +5,7 @@ All notable changes since version 1.0.0 are documented in this file.
## Unreleased ## Unreleased
### Added ### Added
- Added the help-up progress bar when a friendly NPC is reviving the player.
- Added achievements for being rescued by an NPC, owned pet, friendly villager, or iron golem. - Added achievements for being rescued by an NPC, owned pet, friendly villager, or iron golem.
- Added separate configuration for mob execution time, executor movement, and knocked-player movement. - Added separate configuration for mob execution time, executor movement, and knocked-player movement.
- Added configurable NPC help-up behavior for owned pets, friendly villagers, golems, and allowlisted modded NPCs. - Added configurable NPC help-up behavior for owned pets, friendly villagers, golems, and allowlisted modded NPCs.
@@ -13,6 +13,7 @@ import net.minecraft.world.phys.AABB;
import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
import java.util.HashMap; import java.util.HashMap;
@@ -36,6 +37,9 @@ public final class NpcHelpUpHandler {
if (attempt != null) { if (attempt != null) {
Mob helper = findMob(attempt.helperId); Mob helper = findMob(attempt.helperId);
if (helper != null) helper.getNavigation().stop(); if (helper != null) helper.getNavigation().stop();
ServerPlayer player = NetworkHandlerHelper.getPlayerByUuid(
net.minecraftforge.server.ServerLifecycleHooks.getCurrentServer(), playerId);
if (player != null) clearProgress(player);
} }
} }
@@ -75,7 +79,9 @@ public final class NpcHelpUpHandler {
} else { } else {
helper.getNavigation().stop(); helper.getNavigation().stop();
helper.getLookControl().setLookAt(player, 30.0F, 30.0F); helper.getLookControl().setLookAt(player, 30.0F, 30.0F);
if (--attempt.timeLeft <= 0) complete(playerId, player, helper); attempt.timeLeft--;
sendProgress(player, attempt.timeLeft);
if (attempt.timeLeft <= 0) complete(playerId, player, helper);
} }
} }
@@ -85,11 +91,27 @@ public final class NpcHelpUpHandler {
private static void complete(UUID playerId, ServerPlayer player, Mob helper) { private static void complete(UUID playerId, ServerPlayer player, Mob helper) {
ATTEMPTS.remove(playerId); ATTEMPTS.remove(playerId);
helper.getNavigation().stop(); helper.getNavigation().stop();
clearProgress(player);
KnockedManager.removeKnockedState(player); KnockedManager.removeKnockedState(player);
player.heal(Config.COMMON.npcHelpUpHealAmount.get().floatValue()); player.heal(Config.COMMON.npcHelpUpHealAmount.get().floatValue());
KnockedbackAdvancements.recordNpcRescue(player, helper); KnockedbackAdvancements.recordNpcRescue(player, helper);
} }
private static void sendProgress(ServerPlayer player, int timeLeft) {
NetworkHandler.CHANNEL.send(
PacketDistributor.PLAYER.with(() -> player),
new ExecutionProgressPacket(timeLeft, Config.COMMON.npcHelpUpTime.get(),
ExecutionProgressPacket.Action.HELP_UP, "", null)
);
}
private static void clearProgress(ServerPlayer player) {
NetworkHandler.CHANNEL.send(
PacketDistributor.PLAYER.with(() -> player),
new ExecutionProgressPacket(0, 1, ExecutionProgressPacket.Action.NONE, "", null)
);
}
private static Mob findHelper(ServerPlayer player) { private static Mob findHelper(ServerPlayer player) {
double range = Config.COMMON.npcHelpUpSearchRange.get(); double range = Config.COMMON.npcHelpUpSearchRange.get();
return ((ServerLevel) player.level()).getEntitiesOfClass(Mob.class, return ((ServerLevel) player.level()).getEntitiesOfClass(Mob.class,