From a00b1d22b9f3ccba42cf03274d6f3c40f9b7a34f Mon Sep 17 00:00:00 2001 From: tanyaofei Date: Sun, 11 Aug 2024 23:25:27 +0800 Subject: [PATCH] Nothing important --- .../github/hello09x/fakeplayer/core/Main.java | 6 +- .../core/command/impl/ActionCommand.java | 7 +- .../{FakePlayer.java => Fakeplayer.java} | 17 ++--- .../core/entity/FakeplayerTicker.java | 4 +- .../core/listener/FakeplayerListener.java | 36 +--------- .../manager/FakeplayerAutofishManager.java | 71 +++++++++++++++++++ .../core/manager/FakeplayerList.java | 28 ++++---- .../core/manager/FakeplayerManager.java | 56 +++------------ .../FakeplayerReplenishManager.java} | 47 +++++++++--- .../core/manager/FakeplayerSkinManager.java | 6 +- .../core/manager/naming/NameManager.java | 6 +- ....java => FakeplayerProfileRepository.java} | 4 +- ...ory.java => FakeplayerSkinRepository.java} | 4 +- .../core/repository/model/Config.java | 11 +-- pom.xml | 2 +- 15 files changed, 171 insertions(+), 134 deletions(-) rename fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/{FakePlayer.java => Fakeplayer.java} (94%) create mode 100644 fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerAutofishManager.java rename fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/{listener/ReplenishListener.java => manager/FakeplayerReplenishManager.java} (86%) rename fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/{FakePlayerProfileRepository.java => FakeplayerProfileRepository.java} (95%) rename fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/{FakePlayerSkinRepository.java => FakeplayerSkinRepository.java} (95%) diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/Main.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/Main.java index f4812b8..b037ada 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/Main.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/Main.java @@ -13,8 +13,9 @@ import io.github.hello09x.fakeplayer.core.config.FakeplayerConfig; import io.github.hello09x.fakeplayer.core.listener.FakeplayerLifecycleListener; import io.github.hello09x.fakeplayer.core.listener.FakeplayerListener; import io.github.hello09x.fakeplayer.core.listener.PlayerListener; -import io.github.hello09x.fakeplayer.core.listener.ReplenishListener; +import io.github.hello09x.fakeplayer.core.manager.FakeplayerAutofishManager; import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager; +import io.github.hello09x.fakeplayer.core.manager.FakeplayerReplenishManager; import io.github.hello09x.fakeplayer.core.manager.WildFakeplayerManager; import io.github.hello09x.fakeplayer.core.repository.UsedIdRepository; import io.github.hello09x.fakeplayer.core.util.update.UpdateChecker; @@ -63,7 +64,8 @@ public final class Main extends JavaPlugin { manager.registerEvents(injector.getInstance(PlayerListener.class), this); manager.registerEvents(injector.getInstance(FakeplayerLifecycleListener.class), this); manager.registerEvents(injector.getInstance(FakeplayerListener.class), this); - manager.registerEvents(injector.getInstance(ReplenishListener.class), this); + manager.registerEvents(injector.getInstance(FakeplayerAutofishManager.class), this); + manager.registerEvents(injector.getInstance(FakeplayerReplenishManager.class), this); } if (injector.getInstance(FakeplayerConfig.class).isCheckForUpdates()) { diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/command/impl/ActionCommand.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/command/impl/ActionCommand.java index 03bf49a..2fc0fd1 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/command/impl/ActionCommand.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/command/impl/ActionCommand.java @@ -7,6 +7,7 @@ import dev.jorel.commandapi.executors.CommandArguments; import dev.jorel.commandapi.executors.CommandExecutor; import io.github.hello09x.fakeplayer.api.spi.ActionSetting; import io.github.hello09x.fakeplayer.api.spi.ActionType; +import io.github.hello09x.fakeplayer.core.manager.FakeplayerAutofishManager; import io.github.hello09x.fakeplayer.core.manager.action.ActionManager; import org.bukkit.Material; import org.bukkit.command.CommandSender; @@ -19,10 +20,12 @@ import static net.kyori.adventure.text.Component.translatable; public class ActionCommand extends AbstractCommand { private final ActionManager actionManager; + private final FakeplayerAutofishManager autofishManager; @Inject - public ActionCommand(ActionManager actionManager) { + public ActionCommand(ActionManager actionManager, FakeplayerAutofishManager autofishManager) { this.actionManager = actionManager; + this.autofishManager = autofishManager; } public @NotNull CommandExecutor action(@NotNull ActionType action, @NotNull ActionSetting setting) { @@ -41,7 +44,7 @@ public class ActionCommand extends AbstractCommand { var fake = super.getFakeplayer(sender, args); if (action == ActionType.USE && fake.getInventory().getItemInMainHand().getType() == Material.FISHING_ROD - && manager.isAutofish(fake) + && autofishManager.isAutofish(fake) ) { // 如果是自动钓鱼则改为 1 次 setting = ActionSetting.once(); diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/FakePlayer.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/Fakeplayer.java similarity index 94% rename from fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/FakePlayer.java rename to fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/Fakeplayer.java index 34d7d39..ca2320d 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/FakePlayer.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/Fakeplayer.java @@ -9,7 +9,9 @@ import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.config.FakeplayerConfig; import io.github.hello09x.fakeplayer.core.config.PreventKicking; import io.github.hello09x.fakeplayer.core.constant.MetadataKeys; +import io.github.hello09x.fakeplayer.core.manager.FakeplayerAutofishManager; import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager; +import io.github.hello09x.fakeplayer.core.manager.FakeplayerReplenishManager; import io.github.hello09x.fakeplayer.core.manager.FakeplayerSkinManager; import io.github.hello09x.fakeplayer.core.manager.action.ActionManager; import io.github.hello09x.fakeplayer.core.manager.naming.SequenceName; @@ -37,17 +39,16 @@ import static net.kyori.adventure.text.Component.translatable; import static net.kyori.adventure.text.format.NamedTextColor.*; import static net.kyori.adventure.text.format.TextDecoration.ITALIC; -public class FakePlayer { +public class Fakeplayer { private final static InternalAddressGenerator ipGen = new InternalAddressGenerator(); - private final static FakeplayerConfig config = Main.getInjector().getInstance(FakeplayerConfig.class); - private final static NMSBridge bridge = Main.getInjector().getInstance(NMSBridge.class); - private final static FakeplayerManager manager = Main.getInjector().getInstance(FakeplayerManager.class); - private final static FakeplayerSkinManager skinManager = Main.getInjector().getInstance(FakeplayerSkinManager.class); + private final static FakeplayerReplenishManager replenishManager = Main.getInjector().getInstance(FakeplayerReplenishManager.class); + private final static FakeplayerAutofishManager autofishManager = Main.getInjector().getInstance(FakeplayerAutofishManager.class); + @NotNull @Getter @@ -89,7 +90,7 @@ public class FakePlayer { * @param sequenceName 序列名 * @param lifespan 存活时间 */ - public FakePlayer( + public Fakeplayer( @NotNull CommandSender creator, @NotNull String creatorIp, @NotNull SequenceName sequenceName, @@ -157,10 +158,10 @@ public class FakePlayer { skinManager.useDefaultSkin(creator, player); } if (option.replenish()) { - manager.setReplenish(player, true); + replenishManager.setReplenish(player, true); } if (option.autofish()) { - manager.setAutofish(player, true); + autofishManager.setAutofish(player, true); } this.network = bridge.createNetwork(address); diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/FakeplayerTicker.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/FakeplayerTicker.java index 6e3f59d..b2b5593 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/FakeplayerTicker.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/entity/FakeplayerTicker.java @@ -12,7 +12,7 @@ public class FakeplayerTicker extends BukkitRunnable { public final static long NON_REMOVE_AT = -1; @NotNull - private final FakePlayer player; + private final Fakeplayer player; /** * 移除时间 @@ -26,7 +26,7 @@ public class FakeplayerTicker extends BukkitRunnable { private boolean firstTick; public FakeplayerTicker( - @NotNull FakePlayer player, + @NotNull Fakeplayer player, long lifespan ) { this.player = player; diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/listener/FakeplayerListener.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/listener/FakeplayerListener.java index e6acacd..64d7ea1 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/listener/FakeplayerListener.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/listener/FakeplayerListener.java @@ -4,16 +4,12 @@ import com.google.inject.Inject; import com.google.inject.Singleton; import io.github.hello09x.devtools.core.utils.ComponentUtils; import io.github.hello09x.devtools.core.utils.MetadataUtils; -import io.github.hello09x.fakeplayer.api.spi.ActionSetting; -import io.github.hello09x.fakeplayer.api.spi.ActionType; 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.manager.FakeplayerManager; -import io.github.hello09x.fakeplayer.core.manager.action.ActionManager; -import io.github.hello09x.fakeplayer.core.repository.FakePlayerProfileRepository; +import io.github.hello09x.fakeplayer.core.repository.FakeplayerProfileRepository; import io.github.hello09x.fakeplayer.core.repository.UsedIdRepository; -import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeInstance; @@ -22,7 +18,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; @@ -43,15 +38,13 @@ public class FakeplayerListener implements Listener { private final static Logger log = Main.getInstance().getLogger(); private final FakeplayerManager manager; - private final ActionManager actionManager; private final UsedIdRepository usedIdRepository; - private final FakePlayerProfileRepository profileRepository; + private final FakeplayerProfileRepository profileRepository; private final FakeplayerConfig config; @Inject - public FakeplayerListener(FakeplayerManager manager, ActionManager actionManager, UsedIdRepository usedIdRepository, FakePlayerProfileRepository profileRepository, FakeplayerConfig config) { + public FakeplayerListener(FakeplayerManager manager, UsedIdRepository usedIdRepository, FakeplayerProfileRepository profileRepository, FakeplayerConfig config) { this.manager = manager; - this.actionManager = actionManager; this.usedIdRepository = usedIdRepository; this.profileRepository = profileRepository; this.config = config; @@ -166,27 +159,4 @@ public class FakeplayerListener implements Listener { } } - @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) - public void autoFishing(@NotNull PlayerFishEvent event) { - if (event.getState() != PlayerFishEvent.State.BITE) { - return; - } - - var player = event.getPlayer(); - if (manager.isNotFake(player)) { - return; - } - - if (!player.hasMetadata(MetadataKeys.AUTOFISH)) { - return; - } - - Bukkit.getScheduler().runTaskLater(Main.getInstance(), () -> { - actionManager.setAction(player, ActionType.USE, ActionSetting.once()); - Bukkit.getScheduler().runTaskLater(Main.getInstance(), () -> { - actionManager.setAction(player, ActionType.USE, ActionSetting.once()); - }, Ticks.TICKS_PER_SECOND); - }, 1); - } - } diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerAutofishManager.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerAutofishManager.java new file mode 100644 index 0000000..72b6fcc --- /dev/null +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerAutofishManager.java @@ -0,0 +1,71 @@ +package io.github.hello09x.fakeplayer.core.manager; + +import com.google.inject.Inject; +import com.google.inject.Singleton; +import io.github.hello09x.fakeplayer.api.spi.ActionSetting; +import io.github.hello09x.fakeplayer.api.spi.ActionType; +import io.github.hello09x.fakeplayer.core.Main; +import io.github.hello09x.fakeplayer.core.constant.MetadataKeys; +import io.github.hello09x.fakeplayer.core.manager.action.ActionManager; +import net.kyori.adventure.util.Ticks; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.metadata.FixedMetadataValue; +import org.jetbrains.annotations.NotNull; + +/** + * @author tanyaofei + * @since 2024/8/11 + **/ +@Singleton +public class FakeplayerAutofishManager implements Listener { + + private final FakeplayerManager manager; + private final ActionManager actionManager; + + @Inject + public FakeplayerAutofishManager(FakeplayerManager manager, ActionManager actionManager) { + this.manager = manager; + this.actionManager = actionManager; + } + + public boolean isAutofish(@NotNull Player fake) { + return fake.hasMetadata(MetadataKeys.AUTOFISH); + } + + public void setAutofish(@NotNull Player target, boolean autofish) { + if (!autofish) { + target.removeMetadata(MetadataKeys.AUTOFISH, Main.getInstance()); + } else { + target.setMetadata(MetadataKeys.AUTOFISH, new FixedMetadataValue(Main.getInstance(), true)); + } + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) + public void autoFishing(@NotNull PlayerFishEvent event) { + if (event.getState() != PlayerFishEvent.State.BITE) { + return; + } + + var player = event.getPlayer(); + if (manager.isNotFake(player)) { + return; + } + + if (!player.hasMetadata(MetadataKeys.AUTOFISH)) { + return; + } + + Bukkit.getScheduler().runTaskLater(Main.getInstance(), () -> { + actionManager.setAction(player, ActionType.USE, ActionSetting.once()); + Bukkit.getScheduler().runTaskLater(Main.getInstance(), () -> { + actionManager.setAction(player, ActionType.USE, ActionSetting.once()); + }, Ticks.TICKS_PER_SECOND); + }, 1); + } + +} diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerList.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerList.java index 96541f4..418e4d0 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerList.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerList.java @@ -1,7 +1,7 @@ package io.github.hello09x.fakeplayer.core.manager; import com.google.inject.Singleton; -import io.github.hello09x.fakeplayer.core.entity.FakePlayer; +import io.github.hello09x.fakeplayer.core.entity.Fakeplayer; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; @@ -12,18 +12,16 @@ import java.util.stream.Stream; @Singleton public class FakeplayerList { - private final Map playersByName = new HashMap<>(); - - private final Map playersByUUID = new HashMap<>(); - - private final Map> playersByCreator = new HashMap<>(); + private final Map playersByName = new HashMap<>(); + private final Map playersByUUID = new HashMap<>(); + private final Map> playersByCreator = new HashMap<>(); /** * 添加一个假人到假人清单 * * @param player 假人 */ - public void add(@NotNull FakePlayer player) { + public void add(@NotNull Fakeplayer player) { this.playersByName.put(player.getName(), player); this.playersByUUID.put(player.getUUID(), player); this.playersByCreator.computeIfAbsent(player.getCreator().getName(), key -> new LinkedList<>()).add(player); @@ -35,7 +33,7 @@ public class FakeplayerList { * @param name 名称 * @return 假人 */ - public @Nullable FakePlayer getByName(@NotNull String name) { + public @Nullable Fakeplayer getByName(@NotNull String name) { return Optional.ofNullable(this.playersByName.get(name)).map(this::checkOnline).orElse(null); } @@ -45,7 +43,7 @@ public class FakeplayerList { * @param uuid UUID * @return 假人 */ - public @Nullable FakePlayer getByUUID(@NotNull UUID uuid) { + public @Nullable Fakeplayer getByUUID(@NotNull UUID uuid) { return Optional.ofNullable(this.playersByUUID.get(uuid)).map(this::checkOnline).orElse(null); } @@ -55,7 +53,7 @@ public class FakeplayerList { * @param creator 创建者 * @return 假人 */ - public @NotNull @Unmodifiable List getByCreator(@NotNull String creator) { + public @NotNull @Unmodifiable List getByCreator(@NotNull String creator) { return Optional.ofNullable(this.playersByCreator.get(creator)).map(Collections::unmodifiableList).orElse(Collections.emptyList()); } @@ -64,7 +62,7 @@ public class FakeplayerList { * * @param player 假人 */ - public void remove(@NotNull FakePlayer player) { + public void remove(@NotNull Fakeplayer player) { this.playersByName.remove(player.getName()); this.playersByUUID.remove(player.getUUID()); Optional.ofNullable(this.playersByCreator.get(player.getCreator().getName())).map(players -> players.remove(player)); @@ -76,7 +74,7 @@ public class FakeplayerList { * @param uuid UUID * @return 被移除的假人 */ - public @Nullable FakePlayer removeByUUID(@NotNull UUID uuid) { + public @Nullable Fakeplayer removeByUUID(@NotNull UUID uuid) { var player = getByUUID(uuid); if (player == null) { return null; @@ -103,7 +101,7 @@ public class FakeplayerList { * * @return 假人 */ - public @NotNull @Unmodifiable List getAll() { + public @NotNull @Unmodifiable List getAll() { return List.copyOf(this.playersByUUID.values()); } @@ -113,7 +111,7 @@ public class FakeplayerList { * @param player 假人 * @return 假人 */ - private @Nullable FakePlayer checkOnline(@NotNull FakePlayer player) { + private @Nullable Fakeplayer checkOnline(@NotNull Fakeplayer player) { if (!player.isOnline()) { this.remove(player); return null; @@ -122,7 +120,7 @@ public class FakeplayerList { return player; } - public @NotNull Stream stream() { + public @NotNull Stream stream() { return this.playersByUUID.values().stream(); } 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 e13c651..c23290d 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 @@ -11,7 +11,7 @@ import io.github.hello09x.fakeplayer.api.spi.NMSBridge; 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.Fakeplayer; import io.github.hello09x.fakeplayer.core.entity.SpawnOption; import io.github.hello09x.fakeplayer.core.manager.invsee.Invsee; import io.github.hello09x.fakeplayer.core.manager.naming.NameManager; @@ -99,7 +99,7 @@ public class FakeplayerManager { var sn = name == null ? nameManager.getRegularName(creator) : nameManager.getSpecifiedName(name); log.info("UUID of fake player %s is %s".formatted(sn.name(), sn.uuid())); - var fp = new FakePlayer( + var fp = new Fakeplayer( creator, AddressUtils.getAddress(creator), sn, @@ -139,7 +139,7 @@ public class FakeplayerManager { return Optional .ofNullable(this.playerList.getByName(name)) .filter(p -> p.isCreatedBy(creator)) - .map(FakePlayer::getPlayer) + .map(Fakeplayer::getPlayer) .orElse(null); } @@ -152,7 +152,7 @@ public class FakeplayerManager { public @Nullable Player get(@NotNull String name) { return Optional .ofNullable(this.playerList.getByName(name)) - .map(FakePlayer::getPlayer) + .map(Fakeplayer::getPlayer) .orElse(null); } @@ -165,7 +165,7 @@ public class FakeplayerManager { public @Nullable String getCreatorName(@NotNull Player target) { return Optional .ofNullable(this.playerList.getByUUID(target.getUniqueId())) - .map(FakePlayer::getCreator) + .map(Fakeplayer::getCreator) .map(CommandSender::getName) .orElse(null); } @@ -178,7 +178,7 @@ public class FakeplayerManager { */ public @Nullable CommandSender getCreator(@NotNull Player target) { return Optional.ofNullable(this.playerList.getByUUID(target.getUniqueId())) - .map(FakePlayer::getCreator) + .map(Fakeplayer::getCreator) .map(creator -> { if (creator instanceof Player p) { return Bukkit.getPlayer(p.getUniqueId()); @@ -245,7 +245,7 @@ public class FakeplayerManager { * @return 经过筛选的假人 */ public @NotNull List getAll(@Nullable Predicate predicate) { - var stream = this.playerList.getAll().stream().map(FakePlayer::getPlayer); + var stream = this.playerList.getAll().stream().map(Fakeplayer::getPlayer); if (predicate != null) { stream = stream.filter(predicate); } @@ -290,7 +290,7 @@ public class FakeplayerManager { * @return 假人 */ public @NotNull List getAll(@NotNull CommandSender creator, @Nullable Predicate predicate) { - var stream = this.playerList.getByCreator(creator.getName()).stream().map(FakePlayer::getPlayer); + var stream = this.playerList.getByCreator(creator.getName()).stream().map(Fakeplayer::getPlayer); if (predicate != null) { stream = stream.filter(predicate); } @@ -340,42 +340,6 @@ public class FakeplayerManager { return this.playerList.countByCreator(creator.getName()); } - /** - * 设置假人是否自动填装 - * - * @param target 假人 - * @param replenish 是否自动补货 - */ - public void setReplenish(@NotNull Player target, boolean replenish) { - if (!replenish) { - target.removeMetadata(MetadataKeys.REPLENISH, Main.getInstance()); - } else { - target.setMetadata(MetadataKeys.REPLENISH, new FixedMetadataValue(Main.getInstance(), true)); - } - } - - /** - * 判断假人是否自动补货 - * - * @param target 假人 - * @return 是否自动补货 - */ - public boolean isReplenish(@NotNull Player target) { - return target.hasMetadata(MetadataKeys.REPLENISH); - } - - public boolean isAutofish(@NotNull Player target) { - return target.hasMetadata(MetadataKeys.AUTOFISH); - } - - public void setAutofish(@NotNull Player target, boolean autofish) { - if (!autofish) { - target.removeMetadata(MetadataKeys.AUTOFISH, Main.getInstance()); - } else { - target.setMetadata(MetadataKeys.AUTOFISH, new FixedMetadataValue(Main.getInstance(), true)); - } - } - /** * 设置玩家当前选择的假人 * @@ -419,7 +383,7 @@ public class FakeplayerManager { return null; } - var target = Optional.ofNullable(this.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); } @@ -452,7 +416,7 @@ public class FakeplayerManager { } } - public void dispatchCommandsEarly(@NotNull FakePlayer fp, @NotNull List commands) { + public void dispatchCommandsEarly(@NotNull Fakeplayer fp, @NotNull List commands) { if (commands.isEmpty()) { return; } diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/listener/ReplenishListener.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerReplenishManager.java similarity index 86% rename from fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/listener/ReplenishListener.java rename to fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerReplenishManager.java index 83c90fa..0b32ee1 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/listener/ReplenishListener.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerReplenishManager.java @@ -1,5 +1,4 @@ -package io.github.hello09x.fakeplayer.core.listener; - +package io.github.hello09x.fakeplayer.core.manager; import com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent; import com.google.inject.Inject; @@ -7,7 +6,7 @@ import com.google.inject.Singleton; import io.github.hello09x.devtools.core.utils.BlockUtils; import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.command.Permission; -import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager; +import io.github.hello09x.fakeplayer.core.constant.MetadataKeys; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.BlockFace; @@ -24,28 +23,57 @@ import org.bukkit.event.player.PlayerItemBreakEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.FixedMetadataValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Optional; +/** + * @author tanyaofei + * @since 2024/8/11 + **/ @Singleton -public class ReplenishListener implements Listener { +public class FakeplayerReplenishManager implements Listener { private final FakeplayerManager manager; @Inject - public ReplenishListener(FakeplayerManager manager) { + public FakeplayerReplenishManager(FakeplayerManager manager) { this.manager = manager; } + /** + * 设置假人是否自动填装 + * + * @param target 假人 + * @param replenish 是否自动补货 + */ + public void setReplenish(@NotNull Player target, boolean replenish) { + if (!replenish) { + target.removeMetadata(MetadataKeys.REPLENISH, Main.getInstance()); + } else { + target.setMetadata(MetadataKeys.REPLENISH, new FixedMetadataValue(Main.getInstance(), true)); + } + } + + /** + * 判断假人是否自动补货 + * + * @param target 假人 + * @return 是否自动补货 + */ + public boolean isReplenish(@NotNull Player target) { + return target.hasMetadata(MetadataKeys.REPLENISH); + } + /** * 消耗物品自动填装 */ @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onItemUse(@NotNull PlayerItemConsumeEvent event) { var player = event.getPlayer(); - if (!manager.isReplenish(player)) { + if (!this.isReplenish(player)) { return; } @@ -64,7 +92,7 @@ public class ReplenishListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onBlockPlace(@NotNull BlockPlaceEvent event) { var player = event.getPlayer(); - if (!manager.isReplenish(player)) { + if (!this.isReplenish(player)) { return; } @@ -83,7 +111,7 @@ public class ReplenishListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onItemBreak(@NotNull PlayerItemBreakEvent event) { var player = event.getPlayer(); - if (!manager.isReplenish(player)) { + if (!this.isReplenish(player)) { return; } @@ -102,7 +130,7 @@ public class ReplenishListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onProjectileLaunch(@NotNull PlayerLaunchProjectileEvent event) { var player = event.getPlayer(); - if (!manager.isReplenish(event.getPlayer())) { + if (!this.isReplenish(event.getPlayer())) { return; } var item = event.getItemStack(); @@ -247,5 +275,4 @@ public class ReplenishListener implements Listener { } } - } diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerSkinManager.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerSkinManager.java index 07f982c..1ef579a 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerSkinManager.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/FakeplayerSkinManager.java @@ -10,7 +10,7 @@ import com.google.inject.Singleton; import io.github.hello09x.devtools.core.utils.SchedulerUtils; import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.config.FakeplayerConfig; -import io.github.hello09x.fakeplayer.core.repository.FakePlayerSkinRepository; +import io.github.hello09x.fakeplayer.core.repository.FakeplayerSkinRepository; import io.github.hello09x.fakeplayer.core.repository.model.FakePlayerSkin; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; @@ -32,7 +32,7 @@ import java.util.logging.Logger; public class FakeplayerSkinManager { private final static Logger log = Main.getInstance().getLogger(); - private final FakePlayerSkinRepository repository; + private final FakeplayerSkinRepository repository; private final FakeplayerConfig config; private final Cache profileCache = CacheBuilder .newBuilder() @@ -40,7 +40,7 @@ public class FakeplayerSkinManager { .build(); @Inject - public FakeplayerSkinManager(FakePlayerSkinRepository repository, FakeplayerConfig config) { + public FakeplayerSkinManager(FakeplayerSkinRepository repository, FakeplayerConfig config) { this.repository = repository; this.config = config; } diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/naming/NameManager.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/naming/NameManager.java index 08dbc59..7a27c56 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/naming/NameManager.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/manager/naming/NameManager.java @@ -5,7 +5,7 @@ import com.google.inject.Singleton; import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.config.FakeplayerConfig; import io.github.hello09x.fakeplayer.core.manager.naming.exception.IllegalCustomNameException; -import io.github.hello09x.fakeplayer.core.repository.FakePlayerProfileRepository; +import io.github.hello09x.fakeplayer.core.repository.FakeplayerProfileRepository; import io.github.hello09x.fakeplayer.core.repository.UsedIdRepository; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.RandomStringUtils; @@ -34,14 +34,14 @@ public class NameManager { private final static int MIN_LENGTH = 3; // mojang required private final UsedIdRepository legacyUsedIdRepository; - private final FakePlayerProfileRepository profileRepository; + private final FakeplayerProfileRepository profileRepository; private final FakeplayerConfig config; private final Map nameSources = new HashMap<>(); private final String serverId; @Inject - public NameManager(UsedIdRepository legacyUsedIdRepository, FakePlayerProfileRepository profileRepository, FakeplayerConfig config) { + public NameManager(UsedIdRepository legacyUsedIdRepository, FakeplayerProfileRepository profileRepository, FakeplayerConfig config) { this.legacyUsedIdRepository = legacyUsedIdRepository; this.profileRepository = profileRepository; this.config = config; diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakePlayerProfileRepository.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakeplayerProfileRepository.java similarity index 95% rename from fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakePlayerProfileRepository.java rename to fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakeplayerProfileRepository.java index 31ebfb4..229c8dd 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakePlayerProfileRepository.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakeplayerProfileRepository.java @@ -16,12 +16,12 @@ import java.util.UUID; * @since 2024/8/3 **/ @Singleton -public class FakePlayerProfileRepository { +public class FakeplayerProfileRepository { private final JdbcTemplate jdbc; @Inject - public FakePlayerProfileRepository(JdbcTemplate jdbc) { + public FakeplayerProfileRepository(JdbcTemplate jdbc) { this.jdbc = jdbc; this.initTables(); } diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakePlayerSkinRepository.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakeplayerSkinRepository.java similarity index 95% rename from fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakePlayerSkinRepository.java rename to fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakeplayerSkinRepository.java index 482c9e5..e8aa011 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakePlayerSkinRepository.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/FakeplayerSkinRepository.java @@ -16,12 +16,12 @@ import java.util.UUID; * @since 2024/8/8 **/ @Singleton -public class FakePlayerSkinRepository { +public class FakeplayerSkinRepository { private final JdbcTemplate jdbc; @Inject - public FakePlayerSkinRepository(JdbcTemplate jdbc) { + public FakeplayerSkinRepository(JdbcTemplate jdbc) { this.jdbc = jdbc; this.initTables(); } diff --git a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/model/Config.java b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/model/Config.java index 6a82900..2c366e3 100644 --- a/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/model/Config.java +++ b/fakeplayer-core/src/main/java/io/github/hello09x/fakeplayer/core/repository/model/Config.java @@ -3,7 +3,8 @@ package io.github.hello09x.fakeplayer.core.repository.model; import io.github.hello09x.devtools.core.utils.SingletonSupplier; import io.github.hello09x.fakeplayer.core.Main; import io.github.hello09x.fakeplayer.core.command.Permission; -import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager; +import io.github.hello09x.fakeplayer.core.manager.FakeplayerAutofishManager; +import io.github.hello09x.fakeplayer.core.manager.FakeplayerReplenishManager; import net.kyori.adventure.translation.Translatable; import org.bukkit.command.CommandSender; import org.bukkit.entity.LivingEntity; @@ -55,8 +56,8 @@ public record Config( ) implements Translatable { private static final Map> values = new HashMap<>(); - - private final static SingletonSupplier manager = new SingletonSupplier<>(() -> Main.getInjector().getInstance(FakeplayerManager.class)); + private static final SingletonSupplier autofishManager = new SingletonSupplier<>(() -> Main.getInjector().getInstance(FakeplayerAutofishManager.class)); + private static final SingletonSupplier replenishManager = new SingletonSupplier<>(() -> Main.getInjector().getInstance(FakeplayerReplenishManager.class)); public static Config collidable = build( "collidable", @@ -136,7 +137,7 @@ public record Config( List.of("true", "false"), Permission.replenish, Boolean::valueOf, - new Accessor<>(manager.get()::isReplenish, manager.get()::setReplenish) + new Accessor<>(replenishManager.get()::isReplenish, replenishManager.get()::setReplenish) ); public static Config autofish = build( @@ -147,7 +148,7 @@ public record Config( List.of("true", "false"), Permission.autofish, Boolean::valueOf, - new Accessor<>(Main.getInjector().getInstance(FakeplayerManager.class)::isAutofish, Main.getInjector().getInstance(FakeplayerManager.class)::setAutofish) + new Accessor<>(autofishManager.get()::isAutofish, autofishManager.get()::setAutofish) ); @SuppressWarnings("unchecked") diff --git a/pom.xml b/pom.xml index 699b2b4..d4aa8cd 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 21 UTF-8 - 0.3.9-b.2 + 0.3.9-b.4 0.1.3-SNAPSHOT