Handle client security checks properly

This commit is contained in:
Mike Primm 2020-08-16 01:01:52 -05:00
parent dfa01d3606
commit c375882ee4
6 changed files with 41 additions and 21 deletions

View file

@ -489,7 +489,7 @@ public class DynmapPlugin
private boolean hasPerm(PlayerEntity psender, String permission) {
PermissionsHandler ph = PermissionsHandler.getHandler();
if((psender != null) && ph.hasPermission(psender.getEntity().getName().getString(), permission)) {
if ((psender != null) && (ph != null) && ph.hasPermission(psender.getName().getString(), permission)) {
return true;
}
return permissions.has(psender, permission);
@ -497,7 +497,7 @@ public class DynmapPlugin
private boolean hasPermNode(PlayerEntity psender, String permission) {
PermissionsHandler ph = PermissionsHandler.getHandler();
if((psender != null) && ph.hasPermissionNode(psender.getEntity().getName().getString(), permission)) {
if ((psender != null) && (ph != null) && ph.hasPermissionNode(psender.getName().getString(), permission)) {
return true;
}
return permissions.hasPermissionNode(psender, permission);
@ -1627,8 +1627,12 @@ public class DynmapPlugin
{
dsender = new ForgeCommandSender(sender);
}
core.processCommand(dsender, cmd, cmd, args);
try {
core.processCommand(dsender, cmd, cmd, args);
} catch (Exception x) {
dsender.sendMessage("Command internal error: " + x.getMessage());
Log.severe("Error with command: " + cmd + Arrays.deepToString(args), x);
}
}
private DynmapLocation toLoc(World worldObj, double x, double y, double z)