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
|
## 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,
|
||||||
|
|||||||
Reference in New Issue
Block a user