1
0
Fork 0
mirror of https://github.com/xHyroM/lighteco.git synced 2024-11-22 06:51:05 +01:00

refactor: cleanup, rename bukkit to paper

This commit is contained in:
Jozef Steinhübl 2024-07-03 19:28:03 +02:00
parent 35eebc1609
commit ce2743bd36
No known key found for this signature in database
GPG key ID: E6BC90C91973B08F
23 changed files with 187 additions and 203 deletions

View file

@ -18,6 +18,7 @@ tasks {
filesMatching(listOf("plugin.yml")) { filesMatching(listOf("plugin.yml")) {
expand( expand(
"name" to project.name, "name" to project.name,
"coreName" to "LightEco",
"version" to project.version, "version" to project.version,
"description" to project.description, "description" to project.description,
"author" to "xHyroM" "author" to "xHyroM"

View file

@ -1,43 +0,0 @@
package dev.xhyrom.lighteco.bukkit.listeners;
import com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent;
import com.mojang.brigadier.tree.CommandNode;
import com.mojang.brigadier.tree.LiteralCommandNode;
import dev.xhyrom.lighteco.bukkit.BukkitLightEcoPlugin;
import dev.xhyrom.lighteco.bukkit.brigadier.BukkitBrigadier;
import dev.xhyrom.lighteco.bukkit.chat.BukkitCommandSender;
import dev.xhyrom.lighteco.common.command.CommandSource;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class BukkitCommandSuggestionsListener implements Listener {
private final BukkitLightEcoPlugin plugin;
public BukkitCommandSuggestionsListener(BukkitLightEcoPlugin plugin) {
this.plugin = plugin;
}
@SuppressWarnings({"rawtypes", "unchecked", "deprecation"})
@EventHandler
public void onPlayerSendCommandsEvent(AsyncPlayerSendCommandsEvent<?> event) {
BukkitCommandSender sender = new BukkitCommandSender(event.getPlayer(), this.plugin.getCommandManager().audienceFactory);
CommandSource source = new CommandSource(this.plugin, sender);
if (event.isAsynchronous() || !event.hasFiredAsync()) {
for (CommandNode<CommandSource> command : this.plugin.getCommandManager().getDispatcher().getRoot().getChildren()) {
BukkitBrigadier.removeChild(event.getCommandNode(), command.getName());
BukkitBrigadier.removeChild(event.getCommandNode(), command.getName() + ":" + command.getName());
if (!command.canUse(source)) continue;
CommandNode<CommandSource> clone = new LiteralCommandNode(command.getName(), command.getCommand(), command.getRequirement(), command.getRedirect(), command.getRedirectModifier(), command.isFork());
for (CommandNode<CommandSource> child : command.getChildren()) {
if (child.canUse(source))
clone.addChild(child);
}
event.getCommandNode().addChild((CommandNode) clone);
}
}
}
}

View file

@ -1,91 +0,0 @@
package dev.xhyrom.lighteco.bukkit.manager;
import com.mojang.brigadier.ParseResults;
import com.mojang.brigadier.tree.CommandNode;
import dev.xhyrom.lighteco.bukkit.chat.BukkitCommandSender;
import dev.xhyrom.lighteco.common.command.CommandManager;
import dev.xhyrom.lighteco.common.command.CommandSource;
import dev.xhyrom.lighteco.common.command.abstraction.Command;
import dev.xhyrom.lighteco.common.model.currency.Currency;
import dev.xhyrom.lighteco.common.plugin.LightEcoPlugin;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandMap;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class BukkitCommandManager extends CommandManager {
public final BukkitAudiences audienceFactory;
private CommandMap commandMap;
public BukkitCommandManager(LightEcoPlugin plugin) {
super(plugin);
this.audienceFactory = BukkitAudiences.create((JavaPlugin) this.plugin.getBootstrap().getLoader());
try {
Field field = Bukkit.getServer().getClass().getDeclaredField("commandMap");
field.setAccessible(true);
this.commandMap = (CommandMap) field.get(Bukkit.getServer());
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
@Override
public Command[] register(Currency currency, boolean main) {
Command[] commands = super.register(currency, main);
for (Command command : commands) {
this.registerToBukkit(command);
}
return commands;
}
private void registerToBukkit(Command command) {
org.bukkit.command.Command bukkitCommand = new org.bukkit.command.Command(
command.getName(),
command.getDescription(),
"/" + command.getName(),
command.getAliases()
) {
private final CommandNode<CommandSource> node = getDispatcher().getRoot().getChild(getName());
@Override
public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, @NotNull String[] strings) {
bukkitCommandManagerExecute(new BukkitCommandSender(commandSender, audienceFactory), s, strings);
return true;
}
@Override
public @NotNull List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException {
final List<String> suggestions = new ArrayList<>();
final CommandSource source = new CommandSource(plugin, new BukkitCommandSender(sender, audienceFactory));
final ParseResults<CommandSource> parseResults = getDispatcher().parse(
getName() + (args.length > 0 ? " " + String.join(" ", args) : ""),
source
);
getDispatcher().getCompletionSuggestions(
parseResults
).join().getList().forEach(suggestion -> suggestions.add(suggestion.getText()));
return suggestions;
}
};
commandMap.register(command.getName(), bukkitCommand);
}
private void bukkitCommandManagerExecute(dev.xhyrom.lighteco.common.model.chat.CommandSender sender, String name, String[] args) {
super.execute(sender, name, args);
}
}

View file

@ -7,4 +7,4 @@ api-version: 1.20
softdepend: softdepend:
- Vault - Vault
- lighteco-bukkit - LightEco

View file

@ -8,4 +8,4 @@ load: STARTUP
softdepend: softdepend:
- Vault - Vault
- lighteco-bukkit - LightEco

View file

@ -1,6 +1,6 @@
package dev.xhyrom.lighteco.bukkit; package dev.xhyrom.lighteco.paper;
import dev.xhyrom.lighteco.bukkit.logger.BukkitLogger; import dev.xhyrom.lighteco.paper.logger.PaperLogger;
import dev.xhyrom.lighteco.common.plugin.bootstrap.LightEcoBootstrap; import dev.xhyrom.lighteco.common.plugin.bootstrap.LightEcoBootstrap;
import dev.xhyrom.lighteco.common.plugin.bootstrap.LoaderBootstrap; import dev.xhyrom.lighteco.common.plugin.bootstrap.LoaderBootstrap;
import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger; import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger;
@ -20,8 +20,8 @@ import java.util.Optional;
import java.util.UUID; import java.util.UUID;
@Getter @Getter
public class BukkitLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstrap { public class PaperLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstrap {
private final BukkitLightEcoPlugin plugin = new BukkitLightEcoPlugin(this); private final PaperLightEcoPlugin plugin = new PaperLightEcoPlugin(this);
@Getter @Getter
private final JavaPlugin loader; private final JavaPlugin loader;
@ -29,12 +29,13 @@ public class BukkitLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr
private final PluginLogger logger; private final PluginLogger logger;
@Getter @Getter
private final SchedulerAdapter scheduler; private final SchedulerAdapter scheduler;
@Getter
private BukkitAudiences audience; private BukkitAudiences audience;
public BukkitLightEcoBootstrap(JavaPlugin loader) { public PaperLightEcoBootstrap(JavaPlugin loader) {
this.loader = loader; this.loader = loader;
this.logger = new BukkitLogger(loader.getLogger()); this.logger = new PaperLogger(loader.getLogger());
this.scheduler = new BukkitSchedulerAdapter(this); this.scheduler = new PaperSchedulerAdapter(this);
} }
@Override @Override
@ -46,7 +47,7 @@ public class BukkitLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr
public void onEnable() { public void onEnable() {
this.plugin.enable(); this.plugin.enable();
this.audience = BukkitAudiences.create(loader); this.audience = BukkitAudiences.create(this.loader);
} }
@Override @Override

View file

@ -1,14 +1,14 @@
package dev.xhyrom.lighteco.bukkit; package dev.xhyrom.lighteco.paper;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
// Used inside plugin.yml // Used inside plugin.yml
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class BukkitLightEcoLoader extends JavaPlugin { public class PaperLightEcoLoader extends JavaPlugin {
private final BukkitLightEcoBootstrap bootstrap; private final PaperLightEcoBootstrap bootstrap;
public BukkitLightEcoLoader() { public PaperLightEcoLoader() {
this.bootstrap = new BukkitLightEcoBootstrap(this); this.bootstrap = new PaperLightEcoBootstrap(this);
} }
@Override @Override

View file

@ -1,13 +1,13 @@
package dev.xhyrom.lighteco.bukkit; package dev.xhyrom.lighteco.paper;
import dev.xhyrom.lighteco.api.LightEco; import dev.xhyrom.lighteco.api.LightEco;
import dev.xhyrom.lighteco.api.manager.ContextManager; import dev.xhyrom.lighteco.api.manager.ContextManager;
import dev.xhyrom.lighteco.api.platform.Platform; import dev.xhyrom.lighteco.api.platform.Platform;
import dev.xhyrom.lighteco.bukkit.hooks.Hooks; import dev.xhyrom.lighteco.paper.hooks.Hooks;
import dev.xhyrom.lighteco.bukkit.listeners.BukkitCommandSuggestionsListener; import dev.xhyrom.lighteco.paper.listeners.PaperCommandSuggestionsListener;
import dev.xhyrom.lighteco.bukkit.listeners.BukkitConnectionListener; import dev.xhyrom.lighteco.paper.listeners.PaperConnectionListener;
import dev.xhyrom.lighteco.bukkit.manager.BukkitCommandManager; import dev.xhyrom.lighteco.paper.manager.PaperCommandManager;
import dev.xhyrom.lighteco.bukkit.manager.BukkitContextManager; import dev.xhyrom.lighteco.paper.manager.PaperContextManager;
import dev.xhyrom.lighteco.common.manager.currency.StandardCurrencyManager; import dev.xhyrom.lighteco.common.manager.currency.StandardCurrencyManager;
import dev.xhyrom.lighteco.common.messaging.MessagingFactory; import dev.xhyrom.lighteco.common.messaging.MessagingFactory;
import dev.xhyrom.lighteco.common.plugin.AbstractLightEcoPlugin; import dev.xhyrom.lighteco.common.plugin.AbstractLightEcoPlugin;
@ -18,34 +18,34 @@ import org.bukkit.plugin.ServicePriority;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
@Getter @Getter
public class BukkitLightEcoPlugin extends AbstractLightEcoPlugin { public class PaperLightEcoPlugin extends AbstractLightEcoPlugin {
private final BukkitLightEcoBootstrap bootstrap; private final PaperLightEcoBootstrap bootstrap;
@Getter @Getter
private StandardUserManager userManager; private StandardUserManager userManager;
@Getter @Getter
private StandardCurrencyManager currencyManager; private StandardCurrencyManager currencyManager;
@Getter @Getter
private BukkitCommandManager commandManager; private PaperCommandManager commandManager;
@Getter @Getter
private ContextManager<Player> contextManager; private ContextManager<Player> contextManager;
public BukkitLightEcoPlugin(BukkitLightEcoBootstrap bootstrap) { public PaperLightEcoPlugin(PaperLightEcoBootstrap bootstrap) {
this.bootstrap = bootstrap; this.bootstrap = bootstrap;
} }
@Override @Override
protected void registerListeners() { protected void registerListeners() {
this.bootstrap.getLoader().getServer().getPluginManager().registerEvents(new BukkitConnectionListener(this), this.bootstrap.getLoader()); this.bootstrap.getLoader().getServer().getPluginManager().registerEvents(new PaperConnectionListener(this), this.bootstrap.getLoader());
this.bootstrap.getLoader().getServer().getPluginManager().registerEvents(new BukkitCommandSuggestionsListener(this), this.bootstrap.getLoader()); this.bootstrap.getLoader().getServer().getPluginManager().registerEvents(new PaperCommandSuggestionsListener(this), this.bootstrap.getLoader());
} }
@Override @Override
public void setupManagers() { public void setupManagers() {
this.userManager = new StandardUserManager(this); this.userManager = new StandardUserManager(this);
this.currencyManager = new StandardCurrencyManager(this); this.currencyManager = new StandardCurrencyManager(this);
this.commandManager = new BukkitCommandManager(this); this.commandManager = new PaperCommandManager(this);
this.contextManager = new BukkitContextManager(); this.contextManager = new PaperContextManager();
} }
@Override @Override

View file

@ -1,21 +1,20 @@
package dev.xhyrom.lighteco.bukkit; package dev.xhyrom.lighteco.paper;
import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerAdapter; import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerAdapter;
import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerTask; import dev.xhyrom.lighteco.common.plugin.scheduler.SchedulerTask;
import lombok.Getter;
import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scheduler.BukkitTask; import org.bukkit.scheduler.BukkitTask;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class BukkitSchedulerAdapter implements SchedulerAdapter { public class PaperSchedulerAdapter implements SchedulerAdapter {
private final Executor async; private final Executor async;
private final BukkitLightEcoBootstrap bootstrap; private final PaperLightEcoBootstrap bootstrap;
private final BukkitScheduler scheduler; private final BukkitScheduler scheduler;
public BukkitSchedulerAdapter(BukkitLightEcoBootstrap bootstrap) { public PaperSchedulerAdapter(PaperLightEcoBootstrap bootstrap) {
this.bootstrap = bootstrap; this.bootstrap = bootstrap;
this.scheduler = bootstrap.getLoader().getServer().getScheduler(); this.scheduler = bootstrap.getLoader().getServer().getScheduler();

View file

@ -1,21 +1,15 @@
package dev.xhyrom.lighteco.bukkit.chat; package dev.xhyrom.lighteco.paper.chat;
import dev.xhyrom.lighteco.common.model.chat.AbstractCommandSender; import dev.xhyrom.lighteco.common.model.chat.AbstractCommandSender;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.UUID; import java.util.UUID;
public class BukkitCommandSender extends AbstractCommandSender<CommandSender> { public class PaperCommandSender extends AbstractCommandSender<CommandSender> {
private final Audience audience; public PaperCommandSender(CommandSender sender) {
public BukkitCommandSender(CommandSender sender, BukkitAudiences audienceFactory) {
super(sender); super(sender);
this.audience = audienceFactory.sender(sender);
} }
@Override @Override
@ -39,6 +33,6 @@ public class BukkitCommandSender extends AbstractCommandSender<CommandSender> {
@Override @Override
public void sendMessage(Component message) { public void sendMessage(Component message) {
this.audience.sendMessage(message); this.delegate.sendMessage(message);
} }
} }

View file

@ -1,6 +1,6 @@
package dev.xhyrom.lighteco.bukkit.hooks; package dev.xhyrom.lighteco.paper.hooks;
import dev.xhyrom.lighteco.bukkit.BukkitLightEcoPlugin; import dev.xhyrom.lighteco.paper.PaperLightEcoPlugin;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -8,7 +8,7 @@ import org.bukkit.Bukkit;
public class Hooks { public class Hooks {
private static PlaceholderAPIExpansion placeholderAPIExpansion; private static PlaceholderAPIExpansion placeholderAPIExpansion;
public static void register(BukkitLightEcoPlugin plugin) { public static void register(PaperLightEcoPlugin plugin) {
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
placeholderAPIExpansion = new PlaceholderAPIExpansion(plugin); placeholderAPIExpansion = new PlaceholderAPIExpansion(plugin);
placeholderAPIExpansion.register(); placeholderAPIExpansion.register();

View file

@ -1,6 +1,6 @@
package dev.xhyrom.lighteco.bukkit.hooks; package dev.xhyrom.lighteco.paper.hooks;
import dev.xhyrom.lighteco.bukkit.BukkitLightEcoPlugin; import dev.xhyrom.lighteco.paper.PaperLightEcoPlugin;
import dev.xhyrom.lighteco.common.model.currency.Currency; import dev.xhyrom.lighteco.common.model.currency.Currency;
import dev.xhyrom.lighteco.common.model.user.User; import dev.xhyrom.lighteco.common.model.user.User;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -11,7 +11,7 @@ import org.checkerframework.checker.nullness.qual.Nullable;
@RequiredArgsConstructor @RequiredArgsConstructor
public class PlaceholderAPIExpansion extends PlaceholderExpansion { public class PlaceholderAPIExpansion extends PlaceholderExpansion {
private final BukkitLightEcoPlugin plugin; private final PaperLightEcoPlugin plugin;
@Override @Override
public @NonNull String getIdentifier() { public @NonNull String getIdentifier() {

View file

@ -0,0 +1,55 @@
package dev.xhyrom.lighteco.paper.listeners;
import com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent;
import com.mojang.brigadier.tree.CommandNode;
import com.mojang.brigadier.tree.LiteralCommandNode;
import dev.xhyrom.lighteco.paper.PaperLightEcoPlugin;
import dev.xhyrom.lighteco.paper.util.PaperBrigadier;
import dev.xhyrom.lighteco.paper.chat.PaperCommandSender;
import dev.xhyrom.lighteco.common.command.CommandSource;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class PaperCommandSuggestionsListener implements Listener {
private final PaperLightEcoPlugin plugin;
public PaperCommandSuggestionsListener(PaperLightEcoPlugin plugin) {
this.plugin = plugin;
}
@SuppressWarnings("deprecation")
@EventHandler
public void onPlayerSendCommandsEvent(AsyncPlayerSendCommandsEvent<?> event) {
PaperCommandSender sender = new PaperCommandSender(event.getPlayer());
CommandSource source = new CommandSource(this.plugin, sender);
if (event.isAsynchronous() || !event.hasFiredAsync()) {
for (CommandNode<CommandSource> command : this.plugin.getCommandManager().getDispatcher().getRoot().getChildren()) {
PaperBrigadier.removeChild(event.getCommandNode(), command.getName());
PaperBrigadier.removeChild(event.getCommandNode(), this.plugin.getBootstrap().getLoader().getName().toLowerCase() + ":" + command.getName());
if (!command.canUse(source)) continue;
addChild(event, source, command, createClone(command));
addChild(event, source, command, createClone(this.plugin.getBootstrap().getLoader().getName().toLowerCase() + ":" + command.getName(), command));
}
}
}
@SuppressWarnings({"rawtypes", "unchecked", "deprecation"})
private void addChild(AsyncPlayerSendCommandsEvent<?> event, CommandSource source, CommandNode<CommandSource> command, CommandNode<CommandSource> clone) {
for (CommandNode<CommandSource> child : command.getChildren()) {
if (child.canUse(source))
clone.addChild(child);
}
event.getCommandNode().addChild((CommandNode) clone);
}
private CommandNode<CommandSource> createClone(CommandNode<CommandSource> command) {
return createClone(command.getName(), command);
}
private CommandNode<CommandSource> createClone(String name, CommandNode<CommandSource> command) {
return new LiteralCommandNode<>(name, command.getCommand(), command.getRequirement(), command.getRedirect(), command.getRedirectModifier(), command.isFork());
}
}

View file

@ -1,6 +1,6 @@
package dev.xhyrom.lighteco.bukkit.listeners; package dev.xhyrom.lighteco.paper.listeners;
import dev.xhyrom.lighteco.bukkit.BukkitLightEcoPlugin; import dev.xhyrom.lighteco.paper.PaperLightEcoPlugin;
import dev.xhyrom.lighteco.common.model.currency.Currency; import dev.xhyrom.lighteco.common.model.currency.Currency;
import dev.xhyrom.lighteco.common.model.user.User; import dev.xhyrom.lighteco.common.model.user.User;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
@ -14,11 +14,11 @@ import org.bukkit.event.player.PlayerQuitEvent;
import java.util.UUID; import java.util.UUID;
public class BukkitConnectionListener implements Listener { public class PaperConnectionListener implements Listener {
private final BukkitLightEcoPlugin plugin; private final PaperLightEcoPlugin plugin;
private final MiniMessage miniMessage = MiniMessage.miniMessage(); private final MiniMessage miniMessage = MiniMessage.miniMessage();
public BukkitConnectionListener(BukkitLightEcoPlugin plugin) { public PaperConnectionListener(PaperLightEcoPlugin plugin) {
this.plugin = plugin; this.plugin = plugin;
} }

View file

@ -1,14 +1,14 @@
package dev.xhyrom.lighteco.bukkit.logger; package dev.xhyrom.lighteco.paper.logger;
import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger; import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class BukkitLogger implements PluginLogger { public class PaperLogger implements PluginLogger {
private final Logger logger; private final Logger logger;
public BukkitLogger(Logger logger) { public PaperLogger(Logger logger) {
this.logger = logger; this.logger = logger;
} }

View file

@ -0,0 +1,72 @@
package dev.xhyrom.lighteco.paper.manager;
import com.mojang.brigadier.ParseResults;
import dev.xhyrom.lighteco.paper.chat.PaperCommandSender;
import dev.xhyrom.lighteco.common.command.CommandManager;
import dev.xhyrom.lighteco.common.command.CommandSource;
import dev.xhyrom.lighteco.common.command.abstraction.Command;
import dev.xhyrom.lighteco.common.model.currency.Currency;
import dev.xhyrom.lighteco.common.plugin.LightEcoPlugin;
import dev.xhyrom.lighteco.paper.util.PaperCommandMapUtil;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.TabCompleter;
import java.util.ArrayList;
import java.util.List;
public class PaperCommandManager extends CommandManager {
private final PaperCommandMapUtil commandMapUtil;
public PaperCommandManager(LightEcoPlugin plugin) {
super(plugin);
this.commandMapUtil = new PaperCommandMapUtil(plugin);
}
@Override
public Command[] register(Currency currency, boolean main) {
Command[] commands = super.register(currency, main);
for (Command command : commands) {
this.registerToBukkit(command);
}
return commands;
}
private void registerToBukkit(Command command) {
CommandExecutor executor = (sender, bukkitCommand, s, args) -> {
if (s.startsWith("lighteco:")) {
s = s.substring(9);
}
execute(new PaperCommandSender(sender), s, args);
return true;
};
TabCompleter completer = (sender, bukkitCommand, s, args) -> {
final List<String> suggestions = new ArrayList<>();
final CommandSource source = new CommandSource(plugin, new PaperCommandSender(sender));
final ParseResults<CommandSource> parseResults = getDispatcher().parse(
command.getName() + (args.length > 0 ? " " + String.join(" ", args) : ""),
source
);
getDispatcher().getCompletionSuggestions(
parseResults
).join().getList().forEach(suggestion -> suggestions.add(suggestion.getText()));
return suggestions;
};
List<String> aliases = new ArrayList<>(command.getAliases());
aliases.add(command.getName());
this.commandMapUtil.register(
executor,
completer,
aliases
);
}
}

View file

@ -1,4 +1,4 @@
package dev.xhyrom.lighteco.bukkit.manager; package dev.xhyrom.lighteco.paper.manager;
import dev.xhyrom.lighteco.api.manager.ContextManager; import dev.xhyrom.lighteco.api.manager.ContextManager;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -6,7 +6,7 @@ import org.checkerframework.checker.nullness.qual.NonNull;
import java.util.UUID; import java.util.UUID;
public class BukkitContextManager implements ContextManager<Player> { public class PaperContextManager implements ContextManager<Player> {
@Override @Override
public @NonNull UUID getPlayerUniqueId(@NonNull Player player) { public @NonNull UUID getPlayerUniqueId(@NonNull Player player) {
return player.getUniqueId(); return player.getUniqueId();

View file

@ -1,16 +1,12 @@
package dev.xhyrom.lighteco.bukkit.brigadier; package dev.xhyrom.lighteco.paper.util;
import com.mojang.brigadier.suggestion.SuggestionProvider;
import com.mojang.brigadier.tree.ArgumentCommandNode;
import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.CommandNode;
import com.mojang.brigadier.tree.LiteralCommandNode;
import com.mojang.brigadier.tree.RootCommandNode; import com.mojang.brigadier.tree.RootCommandNode;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Iterator;
import java.util.Map; import java.util.Map;
public class BukkitBrigadier { public class PaperBrigadier {
private static final Field CHILDREN_FIELD; private static final Field CHILDREN_FIELD;
private static final Field LITERALS_FIELD; private static final Field LITERALS_FIELD;
private static final Field ARGUMENTS_FIELD; private static final Field ARGUMENTS_FIELD;

View file

@ -1,7 +1,7 @@
name: ${name} name: ${coreName}
description: ${description} description: ${description}
version: ${version} version: ${version}
main: dev.xhyrom.lighteco.bukkit.BukkitLightEcoLoader main: dev.xhyrom.lighteco.paper.PaperLightEcoLoader
author: ${author} author: ${author}
api-version: 1.16 api-version: 1.16
load: STARTUP load: STARTUP

View file

@ -3,7 +3,7 @@ rootProject.name = "lighteco-parent"
sequenceOf( sequenceOf(
"api", "api",
"common", "common",
"bukkit", "paper",
"bukkittest", "bukkittest",
"sponge-8", "sponge-8",
"currency-money" "currency-money"