add second perm/check for block entity lasers
All checks were successful
/ Auto-Build-App (push) Successful in 1m26s

This commit is contained in:
pietru 2025-02-26 10:05:33 +01:00
parent 069eca1578
commit a026661a0f
3 changed files with 31 additions and 16 deletions

View file

@ -185,6 +185,7 @@ public class Region {
perms.set_bool_perm("break", region.getBoolean("break", false)); perms.set_bool_perm("break", region.getBoolean("break", false));
perms.set_bool_perm("interact", region.getBoolean("interact", false)); perms.set_bool_perm("interact", region.getBoolean("interact", false));
perms.set_bool_perm("laser", region.getBoolean("laser", false)); perms.set_bool_perm("laser", region.getBoolean("laser", false));
perms.set_bool_perm("be_laser", region.getBoolean("laser", true));
perms.set_bool_perm("explode", region.getBoolean("explode", false)); perms.set_bool_perm("explode", region.getBoolean("explode", false));
perms.set_bool_perm("enter", region.getBoolean("enter", true)); perms.set_bool_perm("enter", region.getBoolean("enter", true));
@ -251,9 +252,24 @@ public class Region {
if (!perms_folder.exists()) { if (!perms_folder.exists()) {
perms_folder.mkdirs(); perms_folder.mkdirs();
} }
try {
Json json = new Json();
json.setOutputType(JsonWriter.OutputType.json);
JsonValue def = PlayerAreaPerm.get_default_perms();
String txt = def.toString();
BufferedWriter writer = new BufferedWriter(new FileWriter(get_path_string(perms_folder.getPath(),"example.json")));
writer.write(json.prettyPrint(txt));
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
ArrayList<File> perms = directory_utils.list_files_in_dir_recursive(perms_folder,((dir, name) -> name.endsWith(".json"))); ArrayList<File> perms = directory_utils.list_files_in_dir_recursive(perms_folder,((dir, name) -> name.endsWith(".json")));
System.out.println("[AREA] Trying to load %s perms.".replace("%s", String.valueOf(perms.size()))); System.out.println("[AREA] Trying to load %s perms.".replace("%s", String.valueOf(perms.size())));
for (File f : perms) { for (File f : perms) {
if (f.getName().equals("example.json"))
continue;
JsonValue perm_json; JsonValue perm_json;
try { try {
perm_json=jsonReader.parse(Gdx.files.absolute(f.getPath())); perm_json=jsonReader.parse(Gdx.files.absolute(f.getPath()));
@ -261,6 +277,11 @@ public class Region {
System.err.println("[AREA] Perms file \"%s\" had encountered exception while loading...".replace("%s", f.getPath())); System.err.println("[AREA] Perms file \"%s\" had encountered exception while loading...".replace("%s", f.getPath()));
continue; continue;
} }
if (perm_json==null){
System.err.println("[AREA] Perms file \"%s\" had encountered exception while loading...".replace("%s", f.getPath()));
continue;
}
PlayerAreaPerm perm = new PlayerAreaPerm(); PlayerAreaPerm perm = new PlayerAreaPerm();
perm.player_id=perm_json.getString("player_id", ""); perm.player_id=perm_json.getString("player_id", "");
@ -279,6 +300,7 @@ public class Region {
player_perms.set_bool_perm("place", perm_json.getBoolean("place", false)); player_perms.set_bool_perm("place", perm_json.getBoolean("place", false));
player_perms.set_bool_perm("break", perm_json.getBoolean("break", false)); player_perms.set_bool_perm("break", perm_json.getBoolean("break", false));
player_perms.set_bool_perm("interact", perm_json.getBoolean("interact", false)); player_perms.set_bool_perm("interact", perm_json.getBoolean("interact", false));
player_perms.set_bool_perm("laser", perm_json.getBoolean("laser", false));
player_perms.set_bool_perm("explode", perm_json.getBoolean("explode", false)); player_perms.set_bool_perm("explode", perm_json.getBoolean("explode", false));
player_perms.set_bool_perm("enter", perm_json.getBoolean("enter", false)); player_perms.set_bool_perm("enter", perm_json.getBoolean("enter", false));
@ -287,19 +309,6 @@ public class Region {
area.player_perms.add(perm); area.player_perms.add(perm);
} }
System.out.println("[AREA] Loaded %s permissions.".replace("%s",String.valueOf(area.player_perms.size)));
try {
Json json = new Json();
json.setOutputType(JsonWriter.OutputType.json);
JsonValue def = PlayerAreaPerm.get_default_perms();
String txt = def.toString();
BufferedWriter writer = new BufferedWriter(new FileWriter(get_path_string(perms_folder.getPath(),"example.json")));
writer.write(json.prettyPrint(txt));
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("[AREA] Loaded %s permissions.".replace("%s",String.valueOf(areas.size)));
} }
} }

View file

@ -10,6 +10,7 @@ import finalforeach.cosmicreach.entities.EntityUniqueId;
import finalforeach.cosmicreach.entities.player.Player; import finalforeach.cosmicreach.entities.player.Player;
import finalforeach.cosmicreach.networking.packets.MessagePacket; import finalforeach.cosmicreach.networking.packets.MessagePacket;
import finalforeach.cosmicreach.networking.server.ServerSingletons; import finalforeach.cosmicreach.networking.server.ServerSingletons;
import finalforeach.cosmicreach.savelib.crbin.CRBSerialized;
import finalforeach.cosmicreach.util.Axis; import finalforeach.cosmicreach.util.Axis;
import finalforeach.cosmicreach.world.Zone; import finalforeach.cosmicreach.world.Zone;
import net.pietru.cookie_utils.permissions.Permissions; import net.pietru.cookie_utils.permissions.Permissions;
@ -45,8 +46,11 @@ public class EntityLaserProjectileMixin extends EntityMixin {
MessagePacket packet = new MessagePacket("[Server] " + (is_not_reloading ? "Sorry, but this area is under protection." : "Sorry but you can't do this action right now. [Config Reload In Progress]")); MessagePacket packet = new MessagePacket("[Server] " + (is_not_reloading ? "Sorry, but this area is under protection." : "Sorry but you can't do this action right now. [Config Reload In Progress]"));
packet.setupAndSend(ServerSingletons.getConnection(plr)); packet.setupAndSend(ServerSingletons.getConnection(plr));
} }
}else }else {
if (can_edit_block(blockPos, "laser")) if (sourceEntityId==null && can_edit_block(blockPos, "be_laser"))
ci.cancel();
else if (can_edit_block(blockPos, "laser"))
ci.cancel(); ci.cancel();
} }
}
} }

View file

@ -35,6 +35,7 @@ public class ObjectPermList {
val.addChild("break", new JsonValue(false)); val.addChild("break", new JsonValue(false));
val.addChild("interact", new JsonValue(false)); val.addChild("interact", new JsonValue(false));
val.addChild("laser", new JsonValue(false)); val.addChild("laser", new JsonValue(false));
val.addChild("be_laser", new JsonValue(true));
val.addChild("explode", new JsonValue(false)); val.addChild("explode", new JsonValue(false));
val.addChild("enter", new JsonValue(true)); val.addChild("enter", new JsonValue(true));
@ -48,6 +49,7 @@ public class ObjectPermList {
val.set_bool_perm("break", false); val.set_bool_perm("break", false);
val.set_bool_perm("interact", false); val.set_bool_perm("interact", false);
val.set_bool_perm("laser", false); val.set_bool_perm("laser", false);
val.set_bool_perm("be_laser", true);
val.set_bool_perm("explode", false); val.set_bool_perm("explode", false);
val.set_bool_perm("enter", true); val.set_bool_perm("enter", true);