This commit is contained in:
parent
d82cec790e
commit
a8c8d7508b
@ -18,6 +18,8 @@ import java.io.File;
|
|||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class Config {
|
public class Config {
|
||||||
@ -30,6 +32,7 @@ public class Config {
|
|||||||
public int minClaimsize = 100;
|
public int minClaimsize = 100;
|
||||||
public int defaultClaimDepth = 10;
|
public int defaultClaimDepth = 10;
|
||||||
public boolean lenientBlockEntityCheck;
|
public boolean lenientBlockEntityCheck;
|
||||||
|
public List<String> ignoredBlocks = new ArrayList<>();
|
||||||
|
|
||||||
public String[] blacklistedWorlds = new String[0];
|
public String[] blacklistedWorlds = new String[0];
|
||||||
public boolean worldWhitelist;
|
public boolean worldWhitelist;
|
||||||
@ -72,6 +75,9 @@ public class Config {
|
|||||||
this.minClaimsize = ConfigHandler.fromJson(obj, "minClaimsize", this.minClaimsize);
|
this.minClaimsize = ConfigHandler.fromJson(obj, "minClaimsize", this.minClaimsize);
|
||||||
this.defaultClaimDepth = ConfigHandler.fromJson(obj, "defaultClaimDepth", this.defaultClaimDepth);
|
this.defaultClaimDepth = ConfigHandler.fromJson(obj, "defaultClaimDepth", this.defaultClaimDepth);
|
||||||
this.lenientBlockEntityCheck = ConfigHandler.fromJson(obj, "lenientBlockEntityCheck", this.lenientBlockEntityCheck);
|
this.lenientBlockEntityCheck = ConfigHandler.fromJson(obj, "lenientBlockEntityCheck", this.lenientBlockEntityCheck);
|
||||||
|
this.ignoredBlocks.clear();
|
||||||
|
JsonArray blockCheck = ConfigHandler.arryFromJson(obj, "ignoredBlocks");
|
||||||
|
blockCheck.forEach(e -> this.ignoredBlocks.add(e.getAsString()));
|
||||||
JsonArray arr = ConfigHandler.arryFromJson(obj, "blacklistedWorlds");
|
JsonArray arr = ConfigHandler.arryFromJson(obj, "blacklistedWorlds");
|
||||||
this.blacklistedWorlds = new String[arr.size()];
|
this.blacklistedWorlds = new String[arr.size()];
|
||||||
for (int i = 0; i < arr.size(); i++)
|
for (int i = 0; i < arr.size(); i++)
|
||||||
@ -114,10 +120,13 @@ public class Config {
|
|||||||
obj.addProperty("ticksForNextBlock", this.ticksForNextBlock);
|
obj.addProperty("ticksForNextBlock", this.ticksForNextBlock);
|
||||||
obj.addProperty("minClaimsize", this.minClaimsize);
|
obj.addProperty("minClaimsize", this.minClaimsize);
|
||||||
obj.addProperty("defaultClaimDepth", this.defaultClaimDepth);
|
obj.addProperty("defaultClaimDepth", this.defaultClaimDepth);
|
||||||
|
JsonArray blocks = new JsonArray();
|
||||||
|
this.ignoredBlocks.forEach(blocks::add);
|
||||||
|
obj.add("ignoredBlocks", blocks);
|
||||||
obj.addProperty("lenientBlockEntityCheck", this.lenientBlockEntityCheck);
|
obj.addProperty("lenientBlockEntityCheck", this.lenientBlockEntityCheck);
|
||||||
JsonArray arr = new JsonArray();
|
JsonArray arr = new JsonArray();
|
||||||
for (int i = 0; i < this.blacklistedWorlds.length; i++)
|
for (String blacklistedWorld : this.blacklistedWorlds)
|
||||||
arr.add(this.blacklistedWorlds[i]);
|
arr.add(blacklistedWorld);
|
||||||
obj.add("blacklistedWorlds", arr);
|
obj.add("blacklistedWorlds", arr);
|
||||||
obj.addProperty("worldWhitelist", this.worldWhitelist);
|
obj.addProperty("worldWhitelist", this.worldWhitelist);
|
||||||
obj.addProperty("allowMobSpawnToggle", this.allowMobSpawnToggle);
|
obj.addProperty("allowMobSpawnToggle", this.allowMobSpawnToggle);
|
||||||
|
@ -27,8 +27,10 @@ import net.minecraft.server.network.ServerPlayerEntity;
|
|||||||
import net.minecraft.server.world.ServerWorld;
|
import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class BlockInteractEvents {
|
public class BlockInteractEvents {
|
||||||
@ -40,6 +42,9 @@ public class BlockInteractEvents {
|
|||||||
ClaimStorage storage = ClaimStorage.get((ServerWorld) world);
|
ClaimStorage storage = ClaimStorage.get((ServerWorld) world);
|
||||||
IPermissionContainer claim = storage.getForPermissionCheck(pos);
|
IPermissionContainer claim = storage.getForPermissionCheck(pos);
|
||||||
if (claim != null) {
|
if (claim != null) {
|
||||||
|
Identifier id = Registry.BLOCK.getId(state.getBlock());
|
||||||
|
if (ConfigHandler.config.ignoredBlocks.contains(id.toString()))
|
||||||
|
return true;
|
||||||
if (!claim.canInteract(player, PermissionRegistry.BREAK, pos, true)) {
|
if (!claim.canInteract(player, PermissionRegistry.BREAK, pos, true)) {
|
||||||
PlayerClaimData.get(player).addDisplayClaim(claim, EnumDisplayType.MAIN, player.getBlockPos().getY());
|
PlayerClaimData.get(player).addDisplayClaim(claim, EnumDisplayType.MAIN, player.getBlockPos().getY());
|
||||||
return false;
|
return false;
|
||||||
@ -69,6 +74,9 @@ public class BlockInteractEvents {
|
|||||||
boolean cancelBlockInteract = player.shouldCancelInteraction() && emptyHand;
|
boolean cancelBlockInteract = player.shouldCancelInteraction() && emptyHand;
|
||||||
if (!cancelBlockInteract) {
|
if (!cancelBlockInteract) {
|
||||||
BlockState state = world.getBlockState(hitResult.getBlockPos());
|
BlockState state = world.getBlockState(hitResult.getBlockPos());
|
||||||
|
Identifier id = Registry.BLOCK.getId(state.getBlock());
|
||||||
|
if (ConfigHandler.config.ignoredBlocks.contains(id.toString()))
|
||||||
|
return ActionResult.PASS;
|
||||||
ClaimPermission perm = BlockToPermissionMap.getFromBlock(state.getBlock());
|
ClaimPermission perm = BlockToPermissionMap.getFromBlock(state.getBlock());
|
||||||
//Pressureplate handled elsewhere
|
//Pressureplate handled elsewhere
|
||||||
if (perm != null && perm != PermissionRegistry.PRESSUREPLATE) {
|
if (perm != null && perm != PermissionRegistry.PRESSUREPLATE) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user