Skip to content

Commit

Permalink
Merge branch '1.20.1' into 1.19.4
Browse files Browse the repository at this point in the history
  • Loading branch information
ToCraft committed May 16, 2024
2 parents 68435b4 + 672c2b7 commit 87d1249
Show file tree
Hide file tree
Showing 29 changed files with 194 additions and 250 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/push_build_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: 'temurin'
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
Expand Down Expand Up @@ -63,10 +63,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: 'temurin'
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
remorphed 3.6.2
================
- update to CraftedCore 4.2 & Walkers 4.4.2
- temporarily disable caching thread in menu to prevent wrong rendering

remorphed 3.6.1
================
- fix issues with entity caching in menu
Expand Down
1 change: 0 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ apply from: "https://raw.githubusercontent.com/ToCraft/GradleMaster/main/main.gr
ext {
mod_meta = [
minecraft_version : minecraft_version, version: version,
architectury_version: architectury_version,
craftedcore_version : craftedcore_version,
woodwalkers_version : woodwalkers_version
]
Expand Down
1 change: 0 additions & 1 deletion common/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
apply from: "https://raw.githubusercontent.com/ToCraft/GradleMaster/main/common.gradle"

dependencies {
modApi "dev.architectury:architectury:${rootProject.architectury_version}"
modApi "dev.tocraft:craftedcore:${rootProject.minecraft_version}-${rootProject.craftedcore_version}"
modApi "dev.tocraft:walkers:${rootProject.minecraft_version}-${rootProject.woodwalkers_version}"
}
32 changes: 18 additions & 14 deletions common/src/main/java/tocraft/remorphed/Remorphed.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
package tocraft.remorphed;

import dev.architectury.event.events.common.CommandRegistrationEvent;
import dev.architectury.event.events.common.PlayerEvent;
import dev.architectury.networking.NetworkManager;
import dev.architectury.platform.Platform;
import dev.architectury.utils.Env;
import io.netty.buffer.Unpooled;
import net.fabricmc.api.EnvType;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
Expand All @@ -18,14 +14,21 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tocraft.craftedcore.config.ConfigLoader;
import tocraft.craftedcore.event.common.CommandEvents;
import tocraft.craftedcore.event.common.EntityEvents;
import tocraft.craftedcore.event.common.PlayerEvents;
import tocraft.craftedcore.network.ModernNetworking;
import tocraft.craftedcore.platform.PlatformData;
import tocraft.craftedcore.platform.VersionChecker;
import tocraft.remorphed.command.RemorphedCommand;
import tocraft.remorphed.config.RemorphedConfig;
import tocraft.remorphed.events.ShapeEventsCallback;
import tocraft.remorphed.handler.LivingDeathHandler;
import tocraft.remorphed.handler.PlayerRespawnHandler;
import tocraft.remorphed.impl.RemorphedPlayerDataProvider;
import tocraft.remorphed.network.NetworkHandler;
import tocraft.walkers.Walkers;
import tocraft.walkers.api.event.ShapeEvents;
import tocraft.walkers.api.events.ShapeEvents;
import tocraft.walkers.api.variant.ShapeType;

import java.util.ArrayList;
Expand All @@ -39,28 +42,30 @@ public class Remorphed {
public static final String MODID = "remorphed";
public static final RemorphedConfig CONFIG = ConfigLoader.read(MODID, RemorphedConfig.class);
public static boolean displayVariantsInMenu = true;
public static boolean displaySkillsInMenu = true;
public static boolean displayTraitsInMenu = true;

public void initialize() {
// add DarkShadow_2k to devs (for creating the special shape icon and concepts)
Walkers.devs.add(UUID.fromString("74b6d9b3-c8c1-40db-ab82-ccc290d1aa03"));

VersionChecker.registerDefaultGitHubChecker(MODID, "ToCraft", "Remorphed", Component.literal("Remorphed"));
VersionChecker.registerModrinthChecker(MODID, "remorphed", Component.literal("Remorphed"));

if (Platform.getEnvironment() == Env.CLIENT) new RemorphedClient().initialize();
if (PlatformData.getEnv() == EnvType.CLIENT) new RemorphedClient().initialize();

NetworkHandler.registerPacketReceiver();

ShapeEvents.UNLOCK_SHAPE.register(((player, type) -> new ShapeEventsCallback().event(player, type)));
ShapeEvents.SWAP_SHAPE.register(((player, shape) -> new ShapeEventsCallback().event(player, ShapeType.from(shape))));
CommandRegistrationEvent.EVENT.register(new RemorphedCommand());
CommandEvents.REGISTRATION.register(new RemorphedCommand());
EntityEvents.LIVING_DEATH.register(new LivingDeathHandler());
PlayerEvents.PLAYER_RESPAWN.register(new PlayerRespawnHandler());

// allow unlocking friendly mobs via the "normal" method
Walkers.CONFIG.unlockOverridesCurrentShape = Remorphed.CONFIG.unlockFriendlyNormal;
Walkers.CONFIG.save();

// Sync favorites
PlayerEvent.PLAYER_JOIN.register(NetworkHandler::sendFavoriteSync);
PlayerEvents.PLAYER_JOIN.register(NetworkHandler::sendFavoriteSync);
}

public static boolean canUseEveryShape(Player player) {
Expand Down Expand Up @@ -116,9 +121,8 @@ public static void sync(ServerPlayer changed, ServerPlayer packetTarget) {

if (!unlockedShapes.isEmpty()) compoundTag.put("UnlockedShapes", list);

packet.writeUUID(changed.getUUID());
packet.writeNbt(compoundTag);
NetworkManager.sendToPlayer(packetTarget, NetworkHandler.UNLOCKED_SYNC, packet);
compoundTag.putUUID("uuid", changed.getUUID());
ModernNetworking.sendToPlayer(packetTarget, NetworkHandler.UNLOCKED_SYNC, compoundTag);
}

public static ResourceLocation id(String name) {
Expand Down
12 changes: 8 additions & 4 deletions common/src/main/java/tocraft/remorphed/RemorphedClient.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package tocraft.remorphed;

import com.mojang.blaze3d.platform.InputConstants;
import dev.architectury.event.events.client.ClientTickEvent;
import dev.architectury.registry.client.keymappings.KeyMappingRegistry;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.KeyMapping;
import org.lwjgl.glfw.GLFW;
import tocraft.craftedcore.event.client.ClientPlayerEvents;
import tocraft.craftedcore.event.client.ClientTickEvents;
import tocraft.craftedcore.registration.KeyBindingRegistry;
import tocraft.remorphed.handler.client.ClientPlayerRespawnHandler;
import tocraft.remorphed.network.ClientNetworking;
import tocraft.remorphed.tick.KeyPressHandler;

Expand All @@ -16,10 +18,12 @@ public class RemorphedClient {
GLFW.GLFW_KEY_GRAVE_ACCENT, "key.categories.remorphed");

public void initialize() {
KeyMappingRegistry.register(MENU_KEY);
KeyBindingRegistry.register(MENU_KEY);

// Register event handlers
ClientTickEvent.CLIENT_PRE.register(new KeyPressHandler());
ClientTickEvents.CLIENT_PRE.register(new KeyPressHandler());
ClientNetworking.registerPacketHandlers();

ClientPlayerEvents.CLIENT_PLAYER_RESPAWN.register(new ClientPlayerRespawnHandler());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.tree.LiteralCommandNode;
import dev.architectury.event.events.common.CommandRegistrationEvent;
import net.minecraft.commands.CommandBuildContext;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
Expand All @@ -22,12 +21,13 @@
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import org.jetbrains.annotations.Nullable;
import tocraft.craftedcore.event.common.CommandEvents;
import tocraft.remorphed.Remorphed;
import tocraft.remorphed.impl.RemorphedPlayerDataProvider;
import tocraft.walkers.api.PlayerShapeChanger;
import tocraft.walkers.api.variant.ShapeType;

public class RemorphedCommand implements CommandRegistrationEvent {
public class RemorphedCommand implements CommandEvents.CommandRegistration {
private static int hasShape(CommandSourceStack source, ServerPlayer player, ResourceLocation id, @Nullable CompoundTag nbt) {
ShapeType<LivingEntity> type = getType(source.getLevel(), id, nbt);
Component name = Component.translatable(type.getEntityType().getDescriptionId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.util.HashMap;
import java.util.Map;

@SuppressWarnings("CanBeFinal")
public class RemorphedConfig implements Config {
@Synchronize
public boolean creativeUnlockAll = true;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package tocraft.remorphed.events;

import dev.architectury.event.EventResult;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.monster.Enemy;
Expand All @@ -11,7 +11,7 @@
import tocraft.walkers.api.variant.ShapeType;

public class ShapeEventsCallback {
public EventResult event(ServerPlayer player, ShapeType<?> type) {
public InteractionResult event(ServerPlayer player, ShapeType<?> type) {
// check if the walkers unlock mechanic should be used
if (!Remorphed.CONFIG.lockTransform && Remorphed.CONFIG.unlockFriendlyNormal) {
LivingEntity entityToBeUnlocked = type.create(player.level);
Expand All @@ -21,9 +21,9 @@ public EventResult event(ServerPlayer player, ShapeType<?> type) {
// check if entity is unlocked by remorphed, prevents native unlock mechanic by walkers
else if (!Remorphed.canUseShape(player, type)) {
if (!Walkers.hasSpecialShape(player.getUUID()) || !type.getEntityType().equals(EntityType.WOLF))
return EventResult.interruptFalse();
return InteractionResult.FAIL;
}

return EventResult.pass();
return InteractionResult.PASS;
}
}
Original file line number Diff line number Diff line change
@@ -1,33 +1,22 @@
package tocraft.remorphed.mixin;
package tocraft.remorphed.handler;

import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import tocraft.craftedcore.event.common.EntityEvents;
import tocraft.remorphed.Remorphed;
import tocraft.remorphed.impl.RemorphedPlayerDataProvider;
import tocraft.walkers.api.PlayerShape;
import tocraft.walkers.api.PlayerShapeChanger;
import tocraft.walkers.api.variant.ShapeType;

@Mixin(LivingEntity.class)
public abstract class LivingEntityMixin extends Entity {

private LivingEntityMixin(EntityType<? extends LivingEntity> type, Level world) {
super(type, world);
}

@Inject(method = "die", at = @At("HEAD"))
public void onDeath(DamageSource damageSource, CallbackInfo ci) {
if (!((Object) this instanceof Player) && damageSource.getEntity() instanceof ServerPlayer killer) {
ShapeType<?> type = ShapeType.from((LivingEntity) (Object) this);
public class LivingDeathHandler implements EntityEvents.LivingDeath {
@Override
public InteractionResult die(LivingEntity entity, DamageSource source) {
if (!(entity instanceof Player) && source.getEntity() instanceof ServerPlayer killer) {
ShapeType<?> type = ShapeType.from(entity);
if (type != null) {
((RemorphedPlayerDataProvider) killer).remorphed$addKill(type);

Expand All @@ -37,5 +26,7 @@ public void onDeath(DamageSource damageSource, CallbackInfo ci) {
}
}
}

return InteractionResult.PASS;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package tocraft.remorphed.handler;

import net.minecraft.client.player.LocalPlayer;
import net.minecraft.server.level.ServerPlayer;
import tocraft.craftedcore.event.client.ClientPlayerEvents;
import tocraft.craftedcore.event.common.PlayerEvents;
import tocraft.remorphed.impl.RemorphedPlayerDataProvider;

public class PlayerRespawnHandler implements PlayerEvents.PlayerRespawn {
@Override
public void clone(ServerPlayer oldPlayer, ServerPlayer newPlayer) {
((RemorphedPlayerDataProvider) newPlayer).remorphed$setUnlockedShapes(((RemorphedPlayerDataProvider) oldPlayer).remorphed$getUnlockedShapes());
((RemorphedPlayerDataProvider) newPlayer).remorphed$getFavorites().clear();
((RemorphedPlayerDataProvider) newPlayer).remorphed$getFavorites().addAll(((RemorphedPlayerDataProvider) oldPlayer).remorphed$getFavorites());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package tocraft.remorphed.handler.client;

import net.minecraft.client.player.LocalPlayer;
import tocraft.craftedcore.event.client.ClientPlayerEvents;
import tocraft.remorphed.impl.RemorphedPlayerDataProvider;

public class ClientPlayerRespawnHandler implements ClientPlayerEvents.ClientPlayerRespawn {
@Override
public void respawn(LocalPlayer oldPlayer, LocalPlayer newPlayer) {
((RemorphedPlayerDataProvider) newPlayer).remorphed$setUnlockedShapes(((RemorphedPlayerDataProvider) oldPlayer).remorphed$getUnlockedShapes());
((RemorphedPlayerDataProvider) newPlayer).remorphed$getFavorites().clear();
((RemorphedPlayerDataProvider) newPlayer).remorphed$getFavorites().addAll(((RemorphedPlayerDataProvider) oldPlayer).remorphed$getFavorites());
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import java.util.Map;
import java.util.Set;

@SuppressWarnings({"DataFlowIssue", "resource", "ControlFlowStatementWithoutBraces"})
@Mixin(Player.class)
public abstract class PlayerEntityMixin extends LivingEntity implements RemorphedPlayerDataProvider {
@Unique
Expand Down

This file was deleted.

Loading

0 comments on commit 87d1249

Please sign in to comment.