From 05b73e86e68ed9a748a2bf0c69d6861b51d53fea Mon Sep 17 00:00:00 2001 From: tanyaofei Date: Wed, 22 Nov 2023 15:51:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{common => constant}/ConstantPool.java | 2 +- .../fakeplayer/core/constant/MetadataKeys.java | 13 +++++++++++++ .../core/manager/FakeplayerManager.java | 18 ++++++++++-------- .../v1_20_R1/spi/NMSServerPlayerImpl.java | 2 +- .../v1_20_R2/spi/NMSServerPlayerImpl.java | 2 +- 5 files changed, 26 insertions(+), 11 deletions(-) rename fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/{common => constant}/ConstantPool.java (83%) create mode 100644 fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/constant/MetadataKeys.java diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/common/ConstantPool.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/constant/ConstantPool.java similarity index 83% rename from fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/common/ConstantPool.java rename to fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/constant/ConstantPool.java index 1427539..0e766cf 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/common/ConstantPool.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/constant/ConstantPool.java @@ -1,4 +1,4 @@ -package io.github.hello09x.fakeplayer.core.common; +package io.github.hello09x.fakeplayer.core.constant; public interface ConstantPool { diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/constant/MetadataKeys.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/constant/MetadataKeys.java new file mode 100644 index 0000000..3ca43ac --- /dev/null +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/constant/MetadataKeys.java @@ -0,0 +1,13 @@ +package io.github.hello09x.fakeplayer.core.constant; + +public interface MetadataKeys { + + + String SELECTION = "fakeplayer:selection"; + + String REPLENISH = "fakeplayer:replenish"; + + + + +} diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerManager.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerManager.java index 25772ef..1696c66 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerManager.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerManager.java @@ -5,6 +5,7 @@ import io.github.hello09x.bedrock.i18n.I18n; import io.github.hello09x.fakeplayer.api.spi.Action; import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.config.FakeplayerConfig; +import io.github.hello09x.fakeplayer.core.constant.MetadataKeys; import io.github.hello09x.fakeplayer.core.entity.FakePlayer; import io.github.hello09x.fakeplayer.core.entity.SpawnOption; import io.github.hello09x.fakeplayer.core.manager.invsee.Invsee; @@ -356,9 +357,9 @@ public class FakeplayerManager { */ public void setReplenish(@NotNull Player target, boolean replenish) { if (!replenish) { - target.removeMetadata("fakeplayer:replenish", Main.getInstance()); + target.removeMetadata(MetadataKeys.REPLENISH, Main.getInstance()); } else { - target.setMetadata("fakeplayer:replenish", new FixedMetadataValue(Main.getInstance(), true)); + target.setMetadata(MetadataKeys.REPLENISH, new FixedMetadataValue(Main.getInstance(), true)); } } @@ -369,7 +370,7 @@ public class FakeplayerManager { * @return 是否自动补货 */ public boolean isReplenish(@NotNull Player target) { - return target.hasMetadata("fakeplayer:replenish"); + return target.hasMetadata(MetadataKeys.REPLENISH); } /** @@ -380,7 +381,7 @@ public class FakeplayerManager { */ public void setSelection(@NotNull Player creator, @Nullable Player target) { if (target == null) { - creator.removeMetadata("fakeplayer:selection", Main.getInstance()); + creator.removeMetadata(MetadataKeys.SELECTION, Main.getInstance()); return; } @@ -388,7 +389,7 @@ public class FakeplayerManager { return; } - creator.setMetadata("fakeplayer:selection", new FixedMetadataValue(Main.getInstance(), target.getUniqueId())); + creator.setMetadata(MetadataKeys.SELECTION, new FixedMetadataValue(Main.getInstance(), target.getUniqueId())); } /** @@ -401,21 +402,22 @@ public class FakeplayerManager { if (!(creator instanceof Player p)) { return null; } - if (!p.hasMetadata("fakeplayer:selection")) { + if (!p.hasMetadata(MetadataKeys.SELECTION)) { return null; } - var uuid = (UUID) p.getMetadata("fakeplayer:selection") + var uuid = (UUID) p.getMetadata(MetadataKeys.SELECTION) .stream() .map(MetadataValue::value) .filter(Objects::nonNull) + .filter(v -> v.getClass() == UUID.class) .findAny() .orElse(null); if (uuid == null) { return null; } - var target = Optional.ofNullable(playerList.getByUUID(uuid)).map(FakePlayer::getPlayer).orElse(null); + var target = Optional.ofNullable(this.playerList.getByUUID(uuid)).map(FakePlayer::getPlayer).orElse(null); if (target == null) { this.setSelection(p, null); } diff --git a/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/spi/NMSServerPlayerImpl.java b/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/spi/NMSServerPlayerImpl.java index a9040d8..32f995b 100644 --- a/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/spi/NMSServerPlayerImpl.java +++ b/fakeplayer-v1_20_R1/src/main/java/io/github/hello09x/fakeplayer/v1_20_R1/spi/NMSServerPlayerImpl.java @@ -1,7 +1,7 @@ package io.github.hello09x.fakeplayer.v1_20_R1.spi; import io.github.hello09x.fakeplayer.api.spi.NMSServerPlayer; -import io.github.hello09x.fakeplayer.core.common.ConstantPool; +import io.github.hello09x.fakeplayer.core.constant.ConstantPool; import io.github.hello09x.fakeplayer.core.util.Reflections; import io.github.hello09x.fakeplayer.v1_20_R1.network.EmptyAdvancements; import lombok.Getter; diff --git a/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/spi/NMSServerPlayerImpl.java b/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/spi/NMSServerPlayerImpl.java index 742259d..bdae1f8 100644 --- a/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/spi/NMSServerPlayerImpl.java +++ b/fakeplayer-v1_20_R2/src/main/java/io/github/hello09x/fakeplayer/v1_20_R2/spi/NMSServerPlayerImpl.java @@ -1,7 +1,7 @@ package io.github.hello09x.fakeplayer.v1_20_R2.spi; import io.github.hello09x.fakeplayer.api.spi.NMSServerPlayer; -import io.github.hello09x.fakeplayer.core.common.ConstantPool; +import io.github.hello09x.fakeplayer.core.constant.ConstantPool; import io.github.hello09x.fakeplayer.core.util.Reflections; import io.github.hello09x.fakeplayer.v1_20_R2.network.EmptyAdvancements; import lombok.Getter;