diff --git a/gradle.properties b/gradle.properties index 6609cd9..ac1f83d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=1.20.1 yarn_mappings=1.20.1+build.10 loader_version=0.18.3 # Mod Properties -mod_version=26.3.22 +mod_version=26.3.23 maven_group=dev.tggamesyt archives_base_name=szar # Dependencies diff --git a/src/client/java/dev/tggamesyt/szar/client/VideoManager.java b/src/client/java/dev/tggamesyt/szar/client/VideoManager.java index 69b0263..6d8be4d 100644 --- a/src/client/java/dev/tggamesyt/szar/client/VideoManager.java +++ b/src/client/java/dev/tggamesyt/szar/client/VideoManager.java @@ -1,10 +1,10 @@ package dev.tggamesyt.szar.client; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.world.ClientWorld; import net.minecraft.client.sound.PositionedSoundInstance; import net.minecraft.client.sound.SoundInstance; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; import net.minecraft.util.Identifier; @@ -106,7 +106,7 @@ public class VideoManager { ClientWorld world = client.world; if (world == null) return; - ClientPlayerEntity player = (ClientPlayerEntity) world.getPlayerByUuid(playerUuid); + PlayerEntity player = world.getPlayerByUuid(playerUuid); if (player == null) return; Identifier soundId = new Identifier(MOD_ID, "firtana"); diff --git a/src/main/java/dev/tggamesyt/szar/FaszItem.java b/src/main/java/dev/tggamesyt/szar/FaszItem.java index 1b62207..7181dfe 100644 --- a/src/main/java/dev/tggamesyt/szar/FaszItem.java +++ b/src/main/java/dev/tggamesyt/szar/FaszItem.java @@ -123,7 +123,7 @@ public class FaszItem extends BlockItem { if (e.getBoundingBox().contains(px, py, pz)) { if (e instanceof LivingEntity living) { // Always deal half a heart - RegistryEntry radiationEntry = SERVER.getRegistryManager() + RegistryEntry radiationEntry = living.getServer().getRegistryManager() .get(RegistryKeys.DAMAGE_TYPE) .getEntry(FCK_DAMAGE) .orElseThrow(() -> new IllegalStateException("FCK DamageType not registered!")); diff --git a/src/main/java/dev/tggamesyt/szar/PlaneEntity.java b/src/main/java/dev/tggamesyt/szar/PlaneEntity.java index 89e539d..d6712bc 100644 --- a/src/main/java/dev/tggamesyt/szar/PlaneEntity.java +++ b/src/main/java/dev/tggamesyt/szar/PlaneEntity.java @@ -14,6 +14,7 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; @@ -290,9 +291,13 @@ public class PlaneEntity extends Entity { } private void playServerAnimation(PlaneAnimation anim) { if (this.currentServerAnimation == anim) return; + if (this.getWorld().isClient) return; + + MinecraftServer server = this.getWorld().getServer(); + if (server == null) return; this.currentServerAnimation = anim; - Szar.playPlaneAnimation(anim, this.getId()); + Szar.playPlaneAnimation(anim, this.getId(), server); } @Environment(EnvType.CLIENT) diff --git a/src/main/java/dev/tggamesyt/szar/RadiationStatusEffect.java b/src/main/java/dev/tggamesyt/szar/RadiationStatusEffect.java index 2f020f3..328988d 100644 --- a/src/main/java/dev/tggamesyt/szar/RadiationStatusEffect.java +++ b/src/main/java/dev/tggamesyt/szar/RadiationStatusEffect.java @@ -29,18 +29,14 @@ public class RadiationStatusEffect extends StatusEffect { @Override public void applyUpdateEffect(LivingEntity entity, int amplifier) { int level = amplifier + 1; - float damage = (float) getInterpolatedDamage(level); - RegistryEntry radiationEntry = SERVER.getRegistryManager() + RegistryEntry radiationEntry = entity.getWorld().getRegistryManager() .get(RegistryKeys.DAMAGE_TYPE) .getEntry(RADIATION_DAMAGE) .orElseThrow(() -> new IllegalStateException("Radiation DamageType not registered!")); - entity.damage( - new DamageSource(radiationEntry), - damage - ); + entity.damage(new DamageSource(radiationEntry), damage); } /* ========================= */ diff --git a/src/main/java/dev/tggamesyt/szar/Szar.java b/src/main/java/dev/tggamesyt/szar/Szar.java index 7a93d53..1b11db7 100644 --- a/src/main/java/dev/tggamesyt/szar/Szar.java +++ b/src/main/java/dev/tggamesyt/szar/Szar.java @@ -101,7 +101,6 @@ import static dev.tggamesyt.szar.ServerCosmetics.sync; public class Szar implements ModInitializer { public static final String MOD_ID = "szar"; public static final Logger LOGGER = LogManager.getLogger(MOD_ID); - public static MinecraftServer SERVER; public static int april = 4; public static int fools = 1; public static final Identifier DRUNK_TYPE_PACKET = new Identifier(MOD_ID, "drunk_type"); @@ -570,7 +569,7 @@ public class Szar implements ModInitializer { SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.PLAYERS, 0.5f, 1.8f); if (isHeadshot) { - RegistryEntry bullet_damage = SERVER.getRegistryManager() + RegistryEntry bullet_damage = server.getRegistryManager() .get(RegistryKeys.DAMAGE_TYPE) .getEntry(BULLET_DAMAGE) .orElseThrow(() -> new IllegalStateException("Bullet DamageType not registered!")); @@ -643,13 +642,6 @@ public class Szar implements ModInitializer { } } }); - ServerLifecycleEvents.SERVER_STARTED.register(server -> { - SERVER = server; - }); - - ServerLifecycleEvents.SERVER_STOPPED.register(server -> { - SERVER = null; - }); // register block Registry.register( Registries.BLOCK, @@ -2313,8 +2305,8 @@ public class Szar implements ModInitializer { return Text.literal(filtered); } - public static void playPlaneAnimation(PlaneAnimation animation, int entityId) { - for (ServerWorld world : SERVER.getWorlds()) { + public static void playPlaneAnimation(PlaneAnimation animation, int entityId, MinecraftServer server) { + for (ServerWorld world : server.getWorlds()) { for (ServerPlayerEntity player : world.getPlayers()) { PacketByteBuf buf = PacketByteBufs.create(); buf.writeInt(entityId); // <-- important change diff --git a/src/main/java/dev/tggamesyt/szar/mixin/RadiatedItemMixin.java b/src/main/java/dev/tggamesyt/szar/mixin/RadiatedItemMixin.java index 76521f6..617c1d2 100644 --- a/src/main/java/dev/tggamesyt/szar/mixin/RadiatedItemMixin.java +++ b/src/main/java/dev/tggamesyt/szar/mixin/RadiatedItemMixin.java @@ -17,16 +17,13 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import static dev.tggamesyt.szar.Szar.RADIATION_DAMAGE; -import static dev.tggamesyt.szar.Szar.SERVER; - @Mixin(Item.class) public abstract class RadiatedItemMixin { @Inject(method = "use", at = @At("RETURN")) private void onUse(World world, PlayerEntity user, Hand hand, CallbackInfoReturnable> cir) { ItemStack stack = cir.getReturnValue().getValue(); if (!world.isClient && stack.hasNbt() && stack.getNbt().getBoolean("Radiated")) { - RegistryEntry radiationEntry = Szar.SERVER.getRegistryManager() + RegistryEntry radiationEntry = world.getRegistryManager() .get(RegistryKeys.DAMAGE_TYPE) .getEntry(Szar.RADIATION_DAMAGE) .orElseThrow();