mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-07-16 10:47:40 +07:00
Better admin management
This commit is contained in:
@ -660,37 +660,38 @@ public class ServerControl implements ApplicationListener{
|
||||
}
|
||||
});
|
||||
|
||||
handler.register("admin", "<username...>", "Make an online user admin", arg -> {
|
||||
handler.register("admin", "<add/remove> <username/ID...>", "Make an online user admin", arg -> {
|
||||
if(!state.is(State.playing)){
|
||||
err("Open the server first.");
|
||||
return;
|
||||
}
|
||||
|
||||
Player target = playerGroup.find(p -> p.name.equals(arg[0]));
|
||||
|
||||
if(target != null){
|
||||
netServer.admins.adminPlayer(target.uuid, target.usid);
|
||||
target.isAdmin = true;
|
||||
info("Admin-ed player: {0}", arg[0]);
|
||||
}else{
|
||||
info("Nobody with that name could be found.");
|
||||
}
|
||||
});
|
||||
|
||||
handler.register("unadmin", "<username...>", "Removes admin status from an online player", arg -> {
|
||||
if(!state.is(State.playing)){
|
||||
err("Open the server first.");
|
||||
if(!(arg[0].equals("add") || arg[0].equals("remove"))){
|
||||
err("Second parameter must be either 'add' or 'remove'.");
|
||||
return;
|
||||
}
|
||||
|
||||
Player target = playerGroup.find(p -> p.name.equals(arg[0]));
|
||||
boolean add = arg[0].equals("add");
|
||||
|
||||
PlayerInfo target;
|
||||
Player playert = playerGroup.find(p -> p.name.equals(arg[1]));
|
||||
if(playert != null){
|
||||
target = playert.getInfo();
|
||||
}else{
|
||||
target = netServer.admins.getInfoOptional(arg[1]);
|
||||
playert = playerGroup.find(p -> p.getInfo() == target);
|
||||
}
|
||||
|
||||
if(target != null){
|
||||
netServer.admins.unAdminPlayer(target.uuid);
|
||||
target.isAdmin = false;
|
||||
info("Un-admin-ed player: {0}", arg[0]);
|
||||
if(add){
|
||||
netServer.admins.adminPlayer(target.id, target.adminUsid);
|
||||
}else{
|
||||
netServer.admins.unAdminPlayer(target.id);
|
||||
}
|
||||
if(playert != null) playert.isAdmin = add;
|
||||
info("Changed admin status of player: &ly{0}", target.lastName);
|
||||
}else{
|
||||
info("Nobody with that name could be found.");
|
||||
err("Nobody with that name or ID could be found. If adding an admin by name, make sure they're online; otherwise, use their UUID.");
|
||||
}
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user