mirror of
https://github.com/tanyaofei/minecraft-fakeplayer.git
synced 2025-07-14 21:32:21 +08:00
PlaceholderAPI supporting
This commit is contained in:
parent
835f139132
commit
4b6fbcfb67
@ -10,9 +10,12 @@ import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager;
|
|||||||
import io.github.hello09x.fakeplayer.core.manager.invsee.InvseeManager;
|
import io.github.hello09x.fakeplayer.core.manager.invsee.InvseeManager;
|
||||||
import io.github.hello09x.fakeplayer.core.manager.invsee.OpenInvInvseeManagerImpl;
|
import io.github.hello09x.fakeplayer.core.manager.invsee.OpenInvInvseeManagerImpl;
|
||||||
import io.github.hello09x.fakeplayer.core.manager.invsee.SimpleInvseeManagerImpl;
|
import io.github.hello09x.fakeplayer.core.manager.invsee.SimpleInvseeManagerImpl;
|
||||||
|
import io.github.hello09x.fakeplayer.core.placeholder.FakeplayerPlaceholderExpansion;
|
||||||
|
import io.github.hello09x.fakeplayer.core.placeholder.FakeplayerPlaceholderExpansionImpl;
|
||||||
import io.github.hello09x.fakeplayer.core.util.ClassUtils;
|
import io.github.hello09x.fakeplayer.core.util.ClassUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
@ -59,4 +62,13 @@ public class FakeplayerModule extends AbstractModule {
|
|||||||
return bridge;
|
return bridge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
@Provides
|
||||||
|
private @Nullable FakeplayerPlaceholderExpansion fakeplayerPlaceholderExpansion(FakeplayerManager fakeplayerManager) {
|
||||||
|
if (!Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI") || !ClassUtils.isClassExists("me.clip.placeholderapi.expansion.PlaceholderExpansion")) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new FakeplayerPlaceholderExpansionImpl(fakeplayerManager);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import io.github.hello09x.fakeplayer.core.manager.FakeplayerAutofishManager;
|
|||||||
import io.github.hello09x.fakeplayer.core.manager.FakeplayerReplenishManager;
|
import io.github.hello09x.fakeplayer.core.manager.FakeplayerReplenishManager;
|
||||||
import io.github.hello09x.fakeplayer.core.manager.WildFakeplayerManager;
|
import io.github.hello09x.fakeplayer.core.manager.WildFakeplayerManager;
|
||||||
import io.github.hello09x.fakeplayer.core.manager.invsee.InvseeManager;
|
import io.github.hello09x.fakeplayer.core.manager.invsee.InvseeManager;
|
||||||
|
import io.github.hello09x.fakeplayer.core.placeholder.FakeplayerPlaceholderExpansion;
|
||||||
import io.github.hello09x.fakeplayer.core.util.update.UpdateChecker;
|
import io.github.hello09x.fakeplayer.core.util.update.UpdateChecker;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
@ -67,6 +68,16 @@ public final class Main extends JavaPlugin {
|
|||||||
manager.registerEvents(injector.getInstance(InvseeManager.class), this);
|
manager.registerEvents(injector.getInstance(InvseeManager.class), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
var placeholderExpansion = injector.getInstance(FakeplayerPlaceholderExpansion.class);
|
||||||
|
if (placeholderExpansion != null) {
|
||||||
|
if (placeholderExpansion.register()) {
|
||||||
|
getServer().getPluginManager().registerEvents(placeholderExpansion, this);
|
||||||
|
getLogger().info("Successfully registered PlaceholderExpansion");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (injector.getInstance(FakeplayerConfig.class).isCheckForUpdates()) {
|
if (injector.getInstance(FakeplayerConfig.class).isCheckForUpdates()) {
|
||||||
checkForUpdatesAsync();
|
checkForUpdatesAsync();
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,7 @@ public class FakeplayerList {
|
|||||||
return this.playersByUUID.values().stream();
|
return this.playersByUUID.values().stream();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int count() {
|
public int getSize() {
|
||||||
return this.playersByUUID.size();
|
return this.playersByUUID.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,6 +293,10 @@ public class FakeplayerManager {
|
|||||||
return stream.toList();
|
return stream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getSize() {
|
||||||
|
return this.playerList.getSize();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断一名玩家是否是假人
|
* 判断一名玩家是否是假人
|
||||||
*
|
*
|
||||||
@ -467,7 +471,7 @@ public class FakeplayerManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.playerList.count() >= this.config.getServerLimit()) {
|
if (this.playerList.getSize() >= this.config.getServerLimit()) {
|
||||||
throw new CommandException(translatable("fakeplayer.command.spawn.error.server-limit"));
|
throw new CommandException(translatable("fakeplayer.command.spawn.error.server-limit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
package io.github.hello09x.fakeplayer.core.placeholder;
|
||||||
|
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tanyaofei
|
||||||
|
* @since 2024/8/15
|
||||||
|
**/
|
||||||
|
public interface FakeplayerPlaceholderExpansion extends Listener {
|
||||||
|
|
||||||
|
boolean register();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package io.github.hello09x.fakeplayer.core.placeholder;
|
||||||
|
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import com.google.inject.Singleton;
|
||||||
|
import io.github.hello09x.fakeplayer.core.Main;
|
||||||
|
import io.github.hello09x.fakeplayer.core.manager.FakeplayerManager;
|
||||||
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.server.PluginDisableEvent;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tanyaofei
|
||||||
|
* @since 2024/8/15
|
||||||
|
**/
|
||||||
|
@Singleton
|
||||||
|
public class FakeplayerPlaceholderExpansionImpl extends PlaceholderExpansion implements FakeplayerPlaceholderExpansion, Listener {
|
||||||
|
|
||||||
|
private final FakeplayerManager manager;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public FakeplayerPlaceholderExpansionImpl(FakeplayerManager manager) {
|
||||||
|
this.manager = manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getIdentifier() {
|
||||||
|
return Main.getInstance().getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getAuthor() {
|
||||||
|
return Iterables.getFirst(Main.getInstance().getPluginMeta().getAuthors(), "hello09x");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getVersion() {
|
||||||
|
return "1.0";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String onPlaceholderRequest(@Nullable Player player, @NotNull String params) {
|
||||||
|
// /papi parse --null fakeplayer_total
|
||||||
|
if (params.equalsIgnoreCase("total")) {
|
||||||
|
return String.valueOf(manager.getSize());
|
||||||
|
}
|
||||||
|
|
||||||
|
// /papi parse CONSOLE_1 fakeplayer_creator
|
||||||
|
if (params.equalsIgnoreCase("creator") && player != null && manager.isFake(player)) {
|
||||||
|
return Optional.ofNullable(manager.getCreatorName(player)).orElse(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
return params;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void unregister(@NotNull PluginDisableEvent event) {
|
||||||
|
if (event.getPlugin() == Main.getInstance()) {
|
||||||
|
this.unregister();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -9,6 +9,7 @@ depend:
|
|||||||
|
|
||||||
softdepend:
|
softdepend:
|
||||||
- OpenInv
|
- OpenInv
|
||||||
|
- PlaceholderAPI
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
fakeplayer.command.spawn:
|
fakeplayer.command.spawn:
|
||||||
|
Loading…
Reference in New Issue
Block a user