first commit
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s

This commit is contained in:
asminme committed 2026-10-24 15:18:03 +02:00
commit bbccd4a815
454 files changed
+45050

No files matched your search

@@ -0,0 +1,114 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent
* com.mojang.brigadier.builder.LiteralArgumentBuilder
* com.mojang.brigadier.tree.LiteralCommandNode
* com.mojang.brigadier.tree.RootCommandNode
* org.bukkit.command.Command
* org.bukkit.entity.Player
* org.bukkit.event.EventHandler
* org.bukkit.event.Listener
* org.bukkit.plugin.Plugin
*/
package de.maxhenkel.voicechat.commodore;
import com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.tree.LiteralCommandNode;
import com.mojang.brigadier.tree.RootCommandNode;
import de.maxhenkel.voicechat.commodore.AbstractCommodore;
import de.maxhenkel.voicechat.commodore.Commodore;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.function.Predicate;
import org.bukkit.command.Command;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
final class PaperCommodore
extends AbstractCommodore
implements Commodore,
Listener {
private final List<CommodoreCommand> commands = new ArrayList<CommodoreCommand>();
PaperCommodore(Plugin plugin) {
plugin.getServer().getPluginManager().registerEvents((Listener)this, plugin);
}
@Override
public void register(LiteralCommandNode<?> node) {
Objects.requireNonNull(node, "node");
this.commands.add(new CommodoreCommand(node, null));
}
@Override
public void register(Command command, LiteralCommandNode<?> node, Predicate<? super Player> permissionTest) {
Objects.requireNonNull(command, "command");
Objects.requireNonNull(node, "node");
Objects.requireNonNull(permissionTest, "permissionTest");
try {
PaperCommodore.setRequiredHackyFieldsRecursively(node, DUMMY_SUGGESTION_PROVIDER);
}
catch (Throwable e) {
e.printStackTrace();
}
Collection<String> aliases = PaperCommodore.getAliases(command);
if (!aliases.contains(node.getLiteral())) {
node = PaperCommodore.renameLiteralNode(node, command.getName());
}
for (String alias : aliases) {
if (node.getLiteral().equals(alias)) {
this.commands.add(new CommodoreCommand(node, permissionTest));
continue;
}
LiteralCommandNode redirectNode = ((LiteralArgumentBuilder)LiteralArgumentBuilder.literal((String)alias).redirect(node)).build();
this.commands.add(new CommodoreCommand(redirectNode, permissionTest));
}
}
@EventHandler
public void onPlayerSendCommandsEvent(AsyncPlayerSendCommandsEvent<?> event) {
if (event.isAsynchronous() || !event.hasFiredAsync()) {
for (CommodoreCommand command : this.commands) {
command.apply(event.getPlayer(), event.getCommandNode());
}
}
}
static void ensureSetup() {
}
static {
try {
Class.forName("com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent");
}
catch (ClassNotFoundException e) {
throw new UnsupportedOperationException("Not running on modern Paper!", e);
}
}
private static final class CommodoreCommand {
private final LiteralCommandNode<?> node;
private final Predicate<? super Player> permissionTest;
private CommodoreCommand(LiteralCommandNode<?> node, Predicate<? super Player> permissionTest) {
this.node = node;
this.permissionTest = permissionTest;
}
public void apply(Player player, RootCommandNode<?> root) {
if (this.permissionTest != null && !this.permissionTest.test((Player)player)) {
return;
}
AbstractCommodore.removeChild(root, this.node.getName());
root.addChild(this.node);
}
}
}