update version number
This commit is contained in:
@@ -5,6 +5,7 @@ All notable changes since version 1.0.0 are documented in this file.
|
||||
## Unreleased
|
||||
|
||||
### 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 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.
|
||||
|
||||
@@ -13,6 +13,7 @@ import net.minecraft.world.phys.AABB;
|
||||
import net.minecraftforge.event.TickEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.network.PacketDistributor;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -36,6 +37,9 @@ public final class NpcHelpUpHandler {
|
||||
if (attempt != null) {
|
||||
Mob helper = findMob(attempt.helperId);
|
||||
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 {
|
||||
helper.getNavigation().stop();
|
||||
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) {
|
||||
ATTEMPTS.remove(playerId);
|
||||
helper.getNavigation().stop();
|
||||
clearProgress(player);
|
||||
KnockedManager.removeKnockedState(player);
|
||||
player.heal(Config.COMMON.npcHelpUpHealAmount.get().floatValue());
|
||||
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) {
|
||||
double range = Config.COMMON.npcHelpUpSearchRange.get();
|
||||
return ((ServerLevel) player.level()).getEntitiesOfClass(Mob.class,
|
||||
|
||||
Reference in New Issue
Block a user