From deb04a5ecb9536854f65a1a351ff1b47c23a7c71 Mon Sep 17 00:00:00 2001 From: Madeline Miller Date: Mon, 9 Oct 2023 20:22:42 +1000 Subject: [PATCH] Use same fake player system between Fabric & Forge --- worldedit-forge/build.gradle.kts | 2 +- .../worldedit/forge/WorldEditFakePlayer.java | 38 ++++++++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index ade93ec5c..83538ea16 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -16,7 +16,7 @@ val minecraftVersion = "1.20.2" val nextMajorMinecraftVersion: String = minecraftVersion.split('.').let { (useless, major) -> "$useless.${major.toInt() + 1}" } -val forgeVersion = "48.0.1" +val forgeVersion = "48.0.20" val apiClasspath = configurations.create("apiClasspath") { isCanBeResolved = true diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/WorldEditFakePlayer.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/WorldEditFakePlayer.java index 7c0ec5859..277ffd28a 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/WorldEditFakePlayer.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/WorldEditFakePlayer.java @@ -20,34 +20,46 @@ package com.sk89q.worldedit.forge; import com.mojang.authlib.GameProfile; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ClientInformation; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.MenuProvider; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.stats.Stat; +import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.HumanoidArm; import net.minecraft.world.entity.player.ChatVisiblity; -import net.minecraftforge.common.util.FakePlayer; -import java.util.OptionalInt; import java.util.UUID; -import javax.annotation.Nullable; -public class WorldEditFakePlayer extends FakePlayer { - private static final GameProfile FAKE_GAME_PROFILE = new GameProfile(UUID.nameUUIDFromBytes("worldedit".getBytes()), "[WorldEdit]"); +public class WorldEditFakePlayer extends ServerPlayer { + private static final GameProfile FAKE_WORLDEDIT_PROFILE = new GameProfile(UUID.nameUUIDFromBytes("worldedit".getBytes()), "[WorldEdit]"); private static final ClientInformation FAKE_CLIENT_INFO = new ClientInformation( "en_US", 16, ChatVisiblity.FULL, true, 0, HumanoidArm.LEFT, false, false ); public WorldEditFakePlayer(ServerLevel world) { - super(world, FAKE_GAME_PROFILE, FAKE_CLIENT_INFO); + super(world.getServer(), world, FAKE_WORLDEDIT_PROFILE, FAKE_CLIENT_INFO); } @Override - public boolean canEat(boolean checkHunger) { + public void tick() { + } + + @Override + public void awardStat(Stat stat, int incrementer) { + } + + @Override + public void awardStat(Stat stat) { + } + + @Override + public void displayClientMessage(Component message, boolean actionBar) { + super.displayClientMessage(message, actionBar); + } + + @Override + public boolean isInvulnerableTo(DamageSource damageSource) { return true; } - - @Override - public OptionalInt openMenu(@Nullable MenuProvider menuProvider) { - return OptionalInt.empty(); - } }