Compare commits

..

5 commits

Author SHA1 Message Date
7d99ffc1f4 Update Changelog.md
All checks were successful
Build TurnBasedMC and create Release / check-release-exists (push) Successful in 1s
Build TurnBasedMC and create Release / build-and-create-release (push) Successful in 3m15s
2024-10-25 15:36:46 +09:00
e430c38ac8 Update Changelog.md 2024-10-25 15:27:46 +09:00
570c68c675 Minor refactoring
Do not create Battle instance client-side from received "Ping" packet.
2024-10-25 15:24:19 +09:00
2eea03730b Update Changelog.md 2024-10-25 15:24:19 +09:00
b9fd70c8da Port to NeoForge 21.3.2-beta (MC 1.21.3) 2024-10-25 15:24:19 +09:00
8 changed files with 36 additions and 17 deletions

View file

@ -1,5 +1,17 @@
# Upcoming changes # Upcoming changes
# Version NeoForge-1.26.3
Port to NeoForge 21.3.2-beta (MC 1.21.3).
Note that MC 1.21.1 (NeoForge 21.1.72) will still be supported in a separate
branch (neoforge\_mc1.21.1) until MC version 1.22 is released.
# Version NeoForge-1.26.3-MC-1.21.1
Tweak to "Ping" packet to not create client-local Battle instance if it does
not exist.
# Version Forge-1.26.2 # Version Forge-1.26.2
Show battling Entities next to their attack button in the BattleGUI. Show battling Entities next to their attack button in the BattleGUI.

View file

@ -74,7 +74,7 @@ configured for them.)
Simply invoke `./gradlew build` in the mod directory and after some time the Simply invoke `./gradlew build` in the mod directory and after some time the
finished jar will be saved at finished jar will be saved at
`build/libs/TurnBasedMinecraft-NeoForge-1.26.2-all.jar` `build/libs/TurnBasedMinecraft-NeoForge-1.26.3-all.jar`
# Reproducibility # Reproducibility

View file

@ -13,17 +13,17 @@ parchment_mappings_version=2024.07.28
# Environment Properties # Environment Properties
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge # You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
# The Minecraft version must agree with the Neo version to get a valid artifact # The Minecraft version must agree with the Neo version to get a valid artifact
minecraft_version=1.21.1 minecraft_version=1.21.3
# The Minecraft version range can use any release version of Minecraft as bounds. # The Minecraft version range can use any release version of Minecraft as bounds.
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly # Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
# as they do not follow standard versioning conventions. # as they do not follow standard versioning conventions.
minecraft_version_range=[1.21.1, 1.22) minecraft_version_range=[1.21.3, 1.22)
# The Neo version must agree with the Minecraft version to get a valid artifact # The Neo version must agree with the Minecraft version to get a valid artifact
neo_version=21.1.72 neo_version=21.3.2-beta
# The Neo version range can use any version of Neo as bounds # The Neo version range can use any version of Neo as bounds
neo_version_range=[21.1.0,) neo_version_range=[21.3.0,)
# The loader version range can only use the major version of FML as bounds # The loader version range can only use the major version of FML as bounds
loader_version_range=[4,) loader_version_range=[4,)
@ -37,7 +37,7 @@ mod_name=TurnBasedMinecraftMod
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=MIT mod_license=MIT
# The mod version. See https://semver.org/ # The mod version. See https://semver.org/
mod_version=1.26.2 mod_version=1.26.3
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources. # This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html # See https://maven.apache.org/guides/mini/guide-naming-conventions.html

View file

@ -168,7 +168,7 @@ public class ClientProxy extends CommonProxy {
parentComponent.getSiblings().add(prefix); parentComponent.getSiblings().add(prefix);
parentComponent.getSiblings().add(text); parentComponent.getSiblings().add(text);
// UUID is required by sendMessage, but appears to be unused, so just give dummy UUID // UUID is required by sendMessage, but appears to be unused, so just give dummy UUID
Minecraft.getInstance().player.sendSystemMessage(parentComponent); Minecraft.getInstance().player.displayClientMessage(parentComponent, false);
} }
@Override @Override
@ -181,7 +181,7 @@ public class ClientProxy extends CommonProxy {
parentComponent.getSiblings().add(prefix); parentComponent.getSiblings().add(prefix);
parentComponent.getSiblings().add(text); parentComponent.getSiblings().add(text);
// UUID is required by sendMessage, but appears to be unused, so just give dummy UUID // UUID is required by sendMessage, but appears to be unused, so just give dummy UUID
Minecraft.getInstance().player.sendSystemMessage(parentComponent); Minecraft.getInstance().player.displayClientMessage(parentComponent, false);
} }
private void checkBattleTypes(boolean entityLeft) { private void checkBattleTypes(boolean entityLeft) {

View file

@ -6,6 +6,7 @@ import com.burnedkirby.TurnBasedMinecraft.common.networking.PacketBattlePing;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.effect.MobEffects; import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
@ -1134,7 +1135,13 @@ public class Battle {
final int nextItemToUse = next.itemToUse; final int nextItemToUse = next.itemToUse;
final int prevItem = ((Player)nextEntity).getInventory().selected; final int prevItem = ((Player)nextEntity).getInventory().selected;
((Player)nextEntity).getInventory().selected = nextItemToUse; ((Player)nextEntity).getInventory().selected = nextItemToUse;
((Player)nextEntity).getInventory().setItem(nextItemToUse, targetItem.use(nextEntity.level(), (Player)nextEntity, InteractionHand.MAIN_HAND).getObject()); InteractionResult interactionResult = targetItem.use(nextEntity.level(), (Player)nextEntity, InteractionHand.MAIN_HAND);
if (interactionResult instanceof InteractionResult.Success resultSuccess) {
ItemStack transformed = resultSuccess.heldItemTransformedTo();
if (transformed != null) {
((Player) nextEntity).getInventory().setItem(nextItemToUse, transformed);
}
}
((Player)nextEntity).getInventory().selected = prevItem; ((Player)nextEntity).getInventory().selected = prevItem;
} }
} }

View file

@ -41,7 +41,7 @@ import org.apache.logging.log4j.Logger;
public class TurnBasedMinecraftMod { public class TurnBasedMinecraftMod {
public static final String MODID = "com_burnedkirby_turnbasedminecraft"; public static final String MODID = "com_burnedkirby_turnbasedminecraft";
public static final String NAME = "Turn Based Minecraft Mod"; public static final String NAME = "Turn Based Minecraft Mod";
public static final String VERSION = "1.26.2"; public static final String VERSION = "1.26.3";
public static final String CONFIG_FILENAME = "TBM_Config.toml"; public static final String CONFIG_FILENAME = "TBM_Config.toml";
public static final String DEFAULT_CONFIG_FILENAME = "TBM_Config_DEFAULT.toml"; public static final String DEFAULT_CONFIG_FILENAME = "TBM_Config_DEFAULT.toml";
public static final String CONFIG_DIRECTORY = "config/TurnBasedMinecraft/"; public static final String CONFIG_DIRECTORY = "config/TurnBasedMinecraft/";

View file

@ -1,5 +1,6 @@
package com.burnedkirby.TurnBasedMinecraft.common; package com.burnedkirby.TurnBasedMinecraft.common;
import net.minecraft.core.component.DataComponents;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
@ -68,6 +69,6 @@ public class Utility
} }
public static boolean isItemEdible(ItemStack itemStack, @Nullable LivingEntity entity) { public static boolean isItemEdible(ItemStack itemStack, @Nullable LivingEntity entity) {
return itemStack.getFoodProperties(entity) != null; return itemStack.get(DataComponents.CONSUMABLE) != null;
} }
} }

View file

@ -31,13 +31,12 @@ public record PacketBattlePing(int battleID, int remainingSeconds) implements Cu
@Override @Override
public void handle(final @NotNull PacketBattlePing pkt, IPayloadContext ctx) { public void handle(final @NotNull PacketBattlePing pkt, IPayloadContext ctx) {
ctx.enqueueWork(() -> { ctx.enqueueWork(() -> {
if (TurnBasedMinecraftMod.proxy.getLocalBattle() == null) { if (TurnBasedMinecraftMod.proxy.getLocalBattle() != null) {
TurnBasedMinecraftMod.proxy.createLocalBattle(pkt.battleID);
}
TurnBasedMinecraftMod.proxy.setBattleGuiAsGui(); TurnBasedMinecraftMod.proxy.setBattleGuiAsGui();
TurnBasedMinecraftMod.proxy.setBattleGuiBattleChanged(); TurnBasedMinecraftMod.proxy.setBattleGuiBattleChanged();
TurnBasedMinecraftMod.proxy.setBattleGuiTime(pkt.remainingSeconds); TurnBasedMinecraftMod.proxy.setBattleGuiTime(pkt.remainingSeconds);
TurnBasedMinecraftMod.proxy.pauseMCMusic(); TurnBasedMinecraftMod.proxy.pauseMCMusic();
}
}).exceptionally(e -> { }).exceptionally(e -> {
ctx.disconnect(Component.literal("Exception handling PacketBattlePing! " + e.getMessage())); ctx.disconnect(Component.literal("Exception handling PacketBattlePing! " + e.getMessage()));
return null; return null;