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
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:
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user