Merge branch 'hytale' into hytale-curseforge

This commit is contained in:
PiggyPiglet
2026-02-02 21:39:16 +08:00
21 changed files with 41 additions and 27 deletions

View File

@@ -7,7 +7,7 @@ plugins {
} }
group = "at.helpch" group = "at.helpch"
version = "1.0.4-DEV-${System.getProperty("BUILD_NUMBER")}" version = "1.0.4"
description = "An awesome placeholder provider!" description = "An awesome placeholder provider!"

View File

@@ -20,10 +20,7 @@
package at.helpch.placeholderapi.commands; package at.helpch.placeholderapi.commands;
import java.util.HashSet; import java.util.*;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.stream.Stream; import java.util.stream.Stream;
import at.helpch.placeholderapi.PlaceholderAPIPlugin; import at.helpch.placeholderapi.PlaceholderAPIPlugin;
@@ -39,22 +36,20 @@ public abstract class PlaceholderCommand {
@NotNull @NotNull
private final Set<String> alias; private final Set<String> alias;
@Nullable private Set<String> permissions = new HashSet<>();
private String permission;
protected PlaceholderCommand(@NotNull final String label, @NotNull final String... alias) { protected PlaceholderCommand(@NotNull final String label, @NotNull final String... alias) {
this.label = label; this.label = label;
this.alias = Set.of(alias); this.alias = Set.of(alias);
setPermission("placeholderapi." + label); setPermissions("placeholderapi.*");
} }
@NotNull @NotNull
public static Stream<PlaceholderCommand> filterByPermission(@NotNull final CommandSender sender, public static Stream<PlaceholderCommand> filterByPermission(@NotNull final CommandSender sender,
@NotNull final Stream<PlaceholderCommand> commands) { @NotNull final Stream<PlaceholderCommand> commands) {
return commands.filter( return commands.filter(target -> target.getPermissions().stream().anyMatch(sender::hasPermission));
target -> target.getPermission() == null || sender.hasPermission(target.getPermission()));
} }
public static void suggestByParameter(@NotNull final Stream<String> possible, public static void suggestByParameter(@NotNull final Stream<String> possible,
@@ -87,13 +82,13 @@ public abstract class PlaceholderCommand {
return set; return set;
} }
@Nullable @NotNull
public final String getPermission() { public final Set<String> getPermissions() {
return permission; return permissions;
} }
public void setPermission(@NotNull final String permission) { public void setPermissions(@NotNull final String @NotNull ... permissions) {
this.permission = permission; this.permissions.addAll(Arrays.asList(permissions));
} }
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin, public void evaluate(@NotNull final PlaceholderAPIPlugin plugin,

View File

@@ -29,16 +29,9 @@ import java.util.concurrent.CompletableFuture;
import at.helpch.placeholderapi.PlaceholderAPIPlugin; import at.helpch.placeholderapi.PlaceholderAPIPlugin;
import at.helpch.placeholderapi.commands.impl.cloud.CommandECloud; import at.helpch.placeholderapi.commands.impl.cloud.CommandECloud;
import at.helpch.placeholderapi.commands.impl.local.*; import at.helpch.placeholderapi.commands.impl.local.*;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.Message;
import com.hypixel.hytale.server.core.command.system.*; import com.hypixel.hytale.server.core.command.system.*;
import com.hypixel.hytale.server.core.command.system.CommandSender; import com.hypixel.hytale.server.core.command.system.CommandSender;
import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
import com.hypixel.hytale.server.core.entity.entities.Player;
import com.hypixel.hytale.server.core.universe.PlayerRef;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Unmodifiable; import org.jetbrains.annotations.Unmodifiable;
@@ -85,6 +78,11 @@ public final class PlaceholderCommandRouter extends AbstractCommand {
this.commands = commands; this.commands = commands;
} }
@Override
protected boolean canGeneratePermission() {
return false;
}
@Override @Override
protected @Nullable CompletableFuture<Void> execute(@NotNull final CommandContext context) { protected @Nullable CompletableFuture<Void> execute(@NotNull final CommandContext context) {
final String[] args = context.getInputString().replace("papi", "").replace("placeholderapi", "").trim().split(" "); final String[] args = context.getInputString().replace("papi", "").replace("placeholderapi", "").trim().split(" ");
@@ -108,8 +106,8 @@ public final class PlaceholderCommandRouter extends AbstractCommand {
return CompletableFuture.completedFuture(null); return CompletableFuture.completedFuture(null);
} }
final String permission = target.getPermission(); final Set<String> permissions = target.getPermissions();
if (permission != null && !permission.isEmpty() && !sender.hasPermission(permission)) { if (permissions.stream().noneMatch(sender::hasPermission)) {
sender.sendMessage(Message.raw("You do not have permission to do this!").color(Color.RED)); sender.sendMessage(Message.raw("You do not have permission to do this!").color(Color.RED));
return CompletableFuture.completedFuture(null); return CompletableFuture.completedFuture(null);

View File

@@ -30,6 +30,7 @@ import org.jetbrains.annotations.Unmodifiable;
import java.awt.*; import java.awt.*;
import java.util.*; import java.util.*;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
public final class CommandECloud extends PlaceholderCommand { public final class CommandECloud extends PlaceholderCommand {
@@ -46,7 +47,7 @@ public final class CommandECloud extends PlaceholderCommand {
static { static {
COMMANDS COMMANDS
.forEach(command -> command.setPermission("placeholderapi.ecloud." + command.getLabel())); .forEach(command -> command.setPermissions("placeholderapi.ecloud." + command.getLabel()));
} }
@NotNull @NotNull
@@ -64,6 +65,9 @@ public final class CommandECloud extends PlaceholderCommand {
} }
this.commands = commands; this.commands = commands;
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud");
COMMANDS.stream().map(PlaceholderCommand::getPermissions).flatMap(Set::stream).forEach(this::setPermissions);
} }
@@ -129,8 +133,8 @@ public final class CommandECloud extends PlaceholderCommand {
return; return;
} }
final String permission = target.getPermission(); final Set<String> permissions = target.getPermissions();
if (permission != null && !permission.isEmpty() && !sender.hasPermission(permission)) { if (permissions.stream().noneMatch(sender::hasPermission)) {
sender.sendMessage(Message.raw("You do not have permission to do this!").color(Color.RED)); sender.sendMessage(Message.raw("You do not have permission to do this!").color(Color.RED));
// Msg.msg(sender, "&cYou do not have permission to do this!"); // Msg.msg(sender, "&cYou do not have permission to do this!");
return; return;

View File

@@ -34,6 +34,7 @@ public final class CommandECloudClear extends PlaceholderCommand {
public CommandECloudClear() { public CommandECloudClear() {
super("clear"); super("clear");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.clear");
} }
@Override @Override

View File

@@ -36,6 +36,7 @@ public final class CommandECloudDownload extends PlaceholderCommand {
public CommandECloudDownload() { public CommandECloudDownload() {
super("download"); super("download");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.download");
} }
private boolean isBlockedExpansion(String name) { private boolean isBlockedExpansion(String name) {

View File

@@ -35,6 +35,7 @@ public final class CommandECloudExpansionInfo extends PlaceholderCommand {
public CommandECloudExpansionInfo() { public CommandECloudExpansionInfo() {
super("info"); super("info");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.info");
} }
@Override @Override

View File

@@ -55,6 +55,7 @@ public final class CommandECloudExpansionList extends PlaceholderCommand {
public CommandECloudExpansionList() { public CommandECloudExpansionList() {
super("list"); super("list");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.list");
} }
@NotNull @NotNull

View File

@@ -38,6 +38,7 @@ public final class CommandECloudExpansionPlaceholders extends PlaceholderCommand
public CommandECloudExpansionPlaceholders() { public CommandECloudExpansionPlaceholders() {
super("placeholders"); super("placeholders");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.placeholders");
} }
@Override @Override

View File

@@ -34,6 +34,7 @@ public final class CommandECloudRefresh extends PlaceholderCommand {
public CommandECloudRefresh() { public CommandECloudRefresh() {
super("refresh"); super("refresh");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.refresh");
} }
@Override @Override

View File

@@ -35,6 +35,7 @@ public final class CommandECloudStatus extends PlaceholderCommand {
public CommandECloudStatus() { public CommandECloudStatus() {
super("status"); super("status");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.status");
} }
@Override @Override

View File

@@ -45,6 +45,7 @@ public final class CommandECloudUpdate extends PlaceholderCommand {
public CommandECloudUpdate() { public CommandECloudUpdate() {
super("update"); super("update");
setPermissions("placeholderapi.ecloud.*", "placeholderapi.ecloud.update");
} }
@Override @Override

View File

@@ -67,6 +67,7 @@ public final class CommandDump extends PlaceholderCommand {
public CommandDump() { public CommandDump() {
super("dump"); super("dump");
setPermissions("placeholderapi.admin", "placeholderapi.dump");
} }
@Override @Override

View File

@@ -39,6 +39,7 @@ public final class CommandExpansionRegister extends PlaceholderCommand {
public CommandExpansionRegister() { public CommandExpansionRegister() {
super("register"); super("register");
setPermissions("placeholderapi.admin", "placeholderapi.register");
} }
@Override @Override

View File

@@ -36,6 +36,7 @@ public final class CommandExpansionUnregister extends PlaceholderCommand {
public CommandExpansionUnregister() { public CommandExpansionUnregister() {
super("unregister"); super("unregister");
setPermissions("placeholderapi.admin", "placeholderapi.unregister");
} }
@Override @Override

View File

@@ -36,6 +36,7 @@ public final class CommandHelp extends PlaceholderCommand {
public CommandHelp() { public CommandHelp() {
super("help"); super("help");
setPermissions("placeholderapi.admin", "placeholderapi.help");
} }

View File

@@ -35,6 +35,7 @@ public final class CommandInfo extends PlaceholderCommand {
public CommandInfo() { public CommandInfo() {
super("info"); super("info");
setPermissions("placeholderapi.admin", "placeholderapi.info");
} }
@Override @Override

View File

@@ -38,6 +38,7 @@ public final class CommandList extends PlaceholderCommand {
public CommandList() { public CommandList() {
super("list"); super("list");
setPermissions("placeholderapi.admin", "placeholderapi.list");
} }

View File

@@ -44,6 +44,7 @@ public final class CommandParse extends PlaceholderCommand {
public CommandParse() { public CommandParse() {
super("parse", "bcparse", "parserel", "cmdparse"); super("parse", "bcparse", "parserel", "cmdparse");
setPermissions("placeholderapi.admin", "placeholderapi.parse");
} }

View File

@@ -32,6 +32,7 @@ public final class CommandReload extends PlaceholderCommand {
public CommandReload() { public CommandReload() {
super("reload"); super("reload");
setPermissions("placeholderapi.admin", "placeholderapi.reload");
} }
@Override @Override

View File

@@ -37,6 +37,7 @@ public final class CommandVersion extends PlaceholderCommand {
public CommandVersion() { public CommandVersion() {
super("version"); super("version");
setPermissions("placeholderapi.admin", "placeholderapi.version");
} }