Skip to content

Commit 2dfcfd5

Browse files
Detection of server operators and more debug commands
1 parent 3d3d2eb commit 2dfcfd5

File tree

7 files changed

+50
-7
lines changed

7 files changed

+50
-7
lines changed

lib/src/main/java/org/galliumpowered/data/ServerOperator.java

Lines changed: 0 additions & 4 deletions
This file was deleted.

lib/src/main/java/org/galliumpowered/permission/PermissionManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class PermissionManager {
2222
public boolean playerHasPermission(Player player, String permission) {
2323
log.debug("Called playerHasPermission");
2424
if (permission.isEmpty()) return true;
25+
if (player.isOperator()) return true;
2526
try {
2627
// Check against player
2728
log.debug("Checking against player...");

lib/src/main/java/org/galliumpowered/world/entity/Player.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,11 @@ default void setPrefix(String prefix) throws SQLException {
147147
* @return Player online status
148148
*/
149149
boolean isOnline();
150+
151+
/**
152+
* Get whether this player is a server operator
153+
*
154+
* @return Server operator status
155+
*/
156+
boolean isOperator();
150157
}

server/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@
77

88
import com.google.common.base.Strings;
99
import com.google.common.collect.Lists;
10+
import com.google.gson.JsonArray;
11+
import com.google.gson.JsonObject;
12+
import com.google.gson.JsonParser;
1013
import com.mojang.authlib.GameProfile;
1114
import com.mojang.authlib.GameProfileRepository;
1215
import com.mojang.authlib.minecraft.MinecraftSessionService;
1316
import com.mojang.datafixers.DataFixer;
1417
import java.io.BufferedReader;
18+
import java.io.FileReader;
1519
import java.io.IOException;
1620
import java.io.InputStreamReader;
21+
import java.io.Reader;
1722
import java.io.Writer;
1823
import java.net.InetAddress;
1924
import java.net.Proxy;
@@ -24,6 +29,7 @@
2429
import java.util.List;
2530
import java.util.Locale;
2631
import java.util.Optional;
32+
import java.util.UUID;
2733
import java.util.function.BooleanSupplier;
2834
import java.util.regex.Pattern;
2935
import javax.annotation.Nullable;
@@ -68,9 +74,7 @@
6874
import net.minecraft.world.level.storage.WorldData;
6975
import org.galliumpowered.Gallium;
7076
import org.galliumpowered.GalliumConsole;
71-
import org.galliumpowered.Mod;
7277
import org.galliumpowered.event.system.ServerStartEvent;
73-
import org.apache.logging.log4j.LogManager;
7478
import org.galliumpowered.plugin.PluginLifecycleState;
7579

7680
public class DedicatedServer extends MinecraftServer implements ServerInterface {

server/src/main/java/org/galliumpowered/Mod.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.galliumpowered;
22

33
import net.minecraft.server.MinecraftServer;
4-
import net.minecraft.server.dedicated.DedicatedServer;
54
import org.galliumpowered.bridge.BridgeImpl;
65
import org.galliumpowered.command.CommandManager;
76
import org.galliumpowered.database.Database;

server/src/main/java/org/galliumpowered/world/entity/PlayerImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ public boolean isOnline() {
8080
.anyMatch(player -> player.getUUID().equals(UUID.fromString(getUUID())));
8181
}
8282

83+
@Override
84+
public boolean isOperator() {
85+
return Mod.getMinecraftServer().getPlayerList().isOp(serverPlayer.getGameProfile());
86+
}
87+
8388
@Override
8489
public String getName() {
8590
return serverPlayer.getName().getContents().strip();

testplugin/src/main/java/org/galliumpowered/testplugin/commands/TestCommands.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.galliumpowered.testplugin.commands;
22

33
import net.kyori.adventure.text.Component;
4+
import net.kyori.adventure.text.format.NamedTextColor;
45
import org.galliumpowered.Gallium;
56
import org.galliumpowered.annotation.Args;
67
import org.galliumpowered.annotation.Command;
@@ -88,4 +89,34 @@ public void suicideCommand(CommandContext ctx) {
8889
Gallium.getServer().sendMsgToAll(Component.text(player.getPrefix() + player.getName() + Colors.GREEN + " took the easy way out."));
8990
});
9091
}
92+
93+
@Command(aliases = "amiop", description = "Check if you are an operator")
94+
public void checkOpCommand(CommandContext ctx) {
95+
ctx.ifPlayer(player ->
96+
player.sendMessage(Component.text(player.isOperator()))
97+
).ifConsole(console ->
98+
console.sendMessage("You're the console, silly, of course you're op.")
99+
);
100+
}
101+
102+
@Command(aliases = "searchplayer", description = "Search for a player (debug command)", args = {
103+
@Args(type = ArgumentType.SINGLE, name = "username")
104+
})
105+
public void searchPlayerCommand(CommandContext ctx) {
106+
ctx.getArgument("username").ifPresentOrElse(username -> {
107+
// Search for the player by their username
108+
Gallium.getServer().getPlayerByName(username).ifPresentOrElse(player -> {
109+
ctx.getCaller().sendMessage(
110+
"Found player! Username: " + player.getName() + " UUID: " +
111+
player.getUUID());
112+
}, () -> {
113+
ctx.getCaller().sendMessage(
114+
Component.text("Could not find that player").color(NamedTextColor.RED));
115+
});
116+
117+
}, () -> {
118+
ctx.getCaller()
119+
.sendMessage(Component.text("Specify a username!").color(NamedTextColor.RED));
120+
});
121+
}
91122
}

0 commit comments

Comments
 (0)