Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions EssC/essc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@
<repository>
<id>skinsrestorer</id>
<url>https://repo.skinsrestorer.net/repository/maven-public/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>

</repositories>
Expand Down Expand Up @@ -189,13 +195,8 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>${java.version}</release>
<encoding>${project.build.sourceEncoding}</encoding>
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
<release>${maven.compiler.release}</release>
</configuration>
</plugin>
<plugin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,13 @@ private void registerCommands() {
register("user", new UserCommand(plugin));
register("suicide", new SuicideCommand(plugin));
register("smite", new SmiteCommand(plugin));
register("gm", new GamemodeCommand(plugin, "gm"));
register("gms", new GamemodeCommand(plugin, "gms"));
register("gmc", new GamemodeCommand(plugin, "gmc"));
register("gmsp", new GamemodeCommand(plugin, "gmsp"));
register("gma", new GamemodeCommand(plugin, "gma"));
GamemodeCommand gamemodeCommand = new GamemodeCommand(plugin);
register("gm", gamemodeCommand);
register("gamemode", gamemodeCommand);
register("gms", gamemodeCommand);
register("gmc", gamemodeCommand);
register("gmsp", gamemodeCommand);
register("gma", gamemodeCommand);
register("stonecutter", new StonecutterCommand(plugin));
register("unban-ip", new UnbanIpCommand(plugin, punishmentManager));

Expand Down
14 changes: 11 additions & 3 deletions EssC/essc/src/main/java/net/godlycow/org/essc/command/Command.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public boolean onCommand(org.bukkit.command.CommandSender sender, org.bukkit.com
}

try {
return execute(sender, args);
return execute(sender, label, args);
} catch (Exception e) {
sender.sendMessage(lang.get(sender, "error.internal"));
plugin.debug("Exception in " + name + ": " + e.getMessage());
Expand All @@ -107,6 +107,10 @@ public boolean onCommand(org.bukkit.command.CommandSender sender, org.bukkit.com

public abstract boolean execute(CommandSender sender, String[] args);

public boolean execute(CommandSender sender, String label, String[] args) {
return execute(sender, args);
}

@Override
public List<String> onTabComplete(org.bukkit.command.CommandSender sender, org.bukkit.command.Command command,
String alias, String[] args) {
Expand All @@ -115,7 +119,7 @@ public List<String> onTabComplete(org.bukkit.command.CommandSender sender, org.b
}

if (args.length == 1) {
List<String> base = tabComplete(sender, args);
List<String> base = tabComplete(sender, alias, args);
if (base == null) return null;

String partial = args[0].toLowerCase();
Expand All @@ -127,13 +131,17 @@ public List<String> onTabComplete(org.bukkit.command.CommandSender sender, org.b
return base;
}

return tabComplete(sender, args);
return tabComplete(sender, alias, args);
}

public List<String> tabComplete(CommandSender sender, String[] args) {
return Collections.emptyList();
}

public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
return tabComplete(sender, args);
}

protected void sendHelp(CommandSender sender, String[] args) {
HelpManager helpManager = plugin.getHelpManager();
if (helpManager == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,39 +13,27 @@
import java.util.Map;

public class GamemodeCommand extends Command {

private static final Map<String, GameMode> NAME_TO_MODE = Map.of(
"gms", GameMode.SURVIVAL,
"gmc", GameMode.CREATIVE,
"gmsp", GameMode.SPECTATOR,
"gma", GameMode.ADVENTURE
);

private static final Map<String, String> NAME_TO_PERMISSION = Map.of(
"gm", "essentialsc.gamemode",
"gms", "essentialsc.gamemode.survival",
"gmc", "essentialsc.gamemode.creative",
"gmsp", "essentialsc.gamemode.spectator",
"gma", "essentialsc.gamemode.adventure"
);

private final GameMode fixedMode;

public GamemodeCommand(EssentialsC plugin, String name) {
super(plugin, name, NAME_TO_PERMISSION.get(name), true, 0, "command.usage." + name);
this.fixedMode = NAME_TO_MODE.get(name);

public GamemodeCommand(EssentialsC plugin) {
super(plugin, "gamemode", null, true, 0, "command.usage.gm");
}

@Override
public boolean execute(CommandSender sender, String[] args) {
Player player = (Player) sender;
return execute(sender, "gamemode", args);
}

@Override
public boolean execute(CommandSender sender, String label, String[] args) {
Player player = (Player) sender;
GameMode targetMode;
Player target;
int targetArgIndex;

if (fixedMode != null) {
targetMode = fixedMode;
target = resolveTarget(player, args, 0);
targetMode = getModeFromLabel(label);

if (targetMode != null) {
targetArgIndex = 0;
} else {
if (args.length < 1) {
sendUsage(sender);
Expand All @@ -56,14 +44,21 @@ public boolean execute(CommandSender sender, String[] args) {
player.sendMessage(lang.get(player, "gamemode.invalid", Map.of("input", args[0])));
return true;
}
target = resolveTarget(player, args, 1);
targetArgIndex = 1;
}

String modePermission = "essentialsc.gamemode." + targetMode.name().toLowerCase();
if (!player.hasPermission(modePermission) && !player.hasPermission("essentialsc.gamemode")) {
player.sendMessage(lang.get(player, "error.no_permission"));
return true;
}

target = resolveTarget(player, args, targetArgIndex);
if (target == null) {
return true;
}

if (target != player && !player.hasPermission(getPermission() + ".others")) {
if (target != player && !player.hasPermission(modePermission + ".others") && !player.hasPermission("essentialsc.gamemode.others")) {
player.sendMessage(lang.get(player, "error.no_permission"));
return true;
}
Expand All @@ -89,6 +84,16 @@ public boolean execute(CommandSender sender, String[] args) {
return true;
}

private GameMode getModeFromLabel(String label) {
return switch (label.toLowerCase()) {
case "gms" -> GameMode.SURVIVAL;
case "gmc" -> GameMode.CREATIVE;
case "gmsp" -> GameMode.SPECTATOR;
case "gma" -> GameMode.ADVENTURE;
default -> null;
};
}

private Player resolveTarget(Player sender, String[] args, int argIndex) {
if (args.length > argIndex) {
Player found = plugin.getServer().getPlayer(args[argIndex]);
Expand Down Expand Up @@ -122,12 +127,22 @@ private String gameModeName(GameMode mode) {

@Override
public List<String> tabComplete(CommandSender sender, String[] args) {
if (fixedMode != null) {
if (args.length == 1 && sender.hasPermission(getPermission() + ".others")) {
return plugin.getServer().getOnlinePlayers().stream()
.map(Player::getName)
.filter(name -> name.toLowerCase().startsWith(args[0].toLowerCase()))
.toList();
return tabComplete(sender, "gamemode", args);
}

@Override
public List<String> tabComplete(CommandSender sender, String label, String[] args) {
GameMode mode = getModeFromLabel(label);

if (mode != null) {
if (args.length == 1) {
String modePermission = "essentialsc.gamemode." + mode.name().toLowerCase();
if (sender.hasPermission(modePermission + ".others") || sender.hasPermission("essentialsc.gamemode.others")) {
return plugin.getServer().getOnlinePlayers().stream()
.map(Player::getName)
.filter(name -> name.toLowerCase().startsWith(args[0].toLowerCase()))
.toList();
}
}
return Collections.emptyList();
}
Expand All @@ -136,16 +151,23 @@ public List<String> tabComplete(CommandSender sender, String[] args) {
List<String> modes = Arrays.asList("survival", "creative", "adventure", "spectator");
return modes.stream()
.filter(m -> m.startsWith(args[0].toLowerCase()))
.filter(m -> sender.hasPermission("essentialsc.gamemode." + m) || sender.hasPermission("essentialsc.gamemode"))
.toList();
}

if (args.length == 2 && sender.hasPermission(getPermission() + ".others")) {
return plugin.getServer().getOnlinePlayers().stream()
.map(Player::getName)
.filter(name -> name.toLowerCase().startsWith(args[1].toLowerCase()))
.toList();
if (args.length == 2) {
GameMode targetMode = parseGameMode(args[0]);
if (targetMode != null) {
String modePermission = "essentialsc.gamemode." + targetMode.name().toLowerCase();
if (sender.hasPermission(modePermission + ".others") || sender.hasPermission("essentialsc.gamemode.others")) {
return plugin.getServer().getOnlinePlayers().stream()
.map(Player::getName)
.filter(name -> name.toLowerCase().startsWith(args[1].toLowerCase()))
.toList();
}
}
}

return Collections.emptyList();
}
}
}
30 changes: 30 additions & 0 deletions EssC/essc/src/main/resources/commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,36 @@ stonecutter:
priority: normal
aliases: []

gm:
enabled: true
priority: normal
aliases: []

gamemode:
enabled: true
priority: normal
aliases: []

gms:
enabled: true
priority: normal
aliases: []

gmc:
enabled: true
priority: normal
aliases: []

gmsp:
enabled: true
priority: normal
aliases: []

gma:
enabled: true
priority: normal
aliases: []

unban-ip:
enabled: true
priority: normal
Expand Down
13 changes: 9 additions & 4 deletions EssC/essc/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -466,25 +466,30 @@ commands:
usage: /gm <survival|creative|adventure|spectator> [player]
permission: essentialsc.gamemode

gamemode:
description: Change your gamemode
usage: /gamemode <survival|creative|adventure|spectator> [player]
permission: essentialsc.gamemode

gms:
description: Switch to Survival mode
usage: /gms [player]
permission: essentialsc.gamemode
permission: essentialsc.gamemode.survival

gmc:
description: Switch to Creative mode
usage: /gmc [player]
permission: essentialsc.gamemode
permission: essentialsc.gamemode.creative

gmsp:
description: Switch to Spectator mode
usage: /gmsp [player]
permission: essentialsc.gamemode
permission: essentialsc.gamemode.spectator

gma:
description: Switch to Adventure mode
usage: /gma [player]
permission: essentialsc.gamemode
permission: essentialsc.gamemode.adventure

stonecutter:
description: Open a virtual stonecutter
Expand Down
8 changes: 0 additions & 8 deletions EssC/test-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>${java.version}</release>
<encoding>${project.build.sourceEncoding}</encoding>
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
Expand Down
9 changes: 0 additions & 9 deletions expansions/EssentialsCProfiles/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,6 @@
<build>
<defaultGoal>clean package</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>21</source>
<target>21</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
Expand Down
9 changes: 0 additions & 9 deletions expansions/mysqldatabaseexpansion/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,15 +57,6 @@

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
Expand Down
9 changes: 3 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,8 @@

<properties>
<!-- Change this version number to update the other poms -->
<revision>4.2.2</revision>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<revision>4.2.3</revision>
<maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<server.dir>${project.basedir}/run-server</server.dir>
Expand Down Expand Up @@ -132,8 +130,7 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<release>${maven.compiler.release}</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
Expand Down
Loading