Skip to content

Commit 95ed486

Browse files
committed
feat: allow overriding xaeros/voxel configs via permissions (#18)
1 parent a79661d commit 95ed486

File tree

4 files changed

+44
-1
lines changed

4 files changed

+44
-1
lines changed

common/src/main/java/com/funniray/minimap/common/voxel/VoxelHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void sendSettings(MinimapPlayer player) {
2626
config = worldConfig;
2727
}
2828

29-
String configJson = new Gson().toJson(config);
29+
String configJson = new Gson().toJson(config.applyOverrides(player));
3030

3131
ByteArrayDataOutput out = ByteStreams.newDataOutput();
3232
out.writeByte(42);

common/src/main/java/com/funniray/minimap/common/voxel/data/VoxelConfig.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.funniray.minimap.common.voxel.data;
22

3+
import com.funniray.minimap.common.api.MinimapPlayer;
34
import org.spongepowered.configurate.objectmapping.ConfigSerializable;
45

56
@ConfigSerializable
@@ -9,4 +10,24 @@ public class VoxelConfig {
910
public boolean radarPlayersAllowed = true;
1011
public boolean cavesAllowed = true;
1112
public String teleportCommand = "tp %p %x %y %z";
13+
14+
private boolean getOverride(String nodeSuffix, boolean def, MinimapPlayer player) {
15+
if (player.hasPermission("minimap.override."+nodeSuffix+".enabled")) {
16+
return true;
17+
} else if (player.hasPermission("minimap.override."+nodeSuffix+".disabled")) {
18+
return false;
19+
}
20+
21+
return def;
22+
}
23+
24+
public VoxelConfig applyOverrides(MinimapPlayer player) {
25+
VoxelConfig newConfig = new VoxelConfig();
26+
newConfig.radarAllowed = getOverride("radar", this.radarAllowed, player);
27+
newConfig.radarMobsAllowed = getOverride("radar-mobs", this.radarMobsAllowed, player);
28+
newConfig.radarPlayersAllowed = getOverride("radar-players", this.radarPlayersAllowed, player);
29+
newConfig.cavesAllowed = getOverride("cave-mode", this.cavesAllowed, player);
30+
31+
return newConfig;
32+
}
1233
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,30 @@
11
package com.funniray.minimap.common.xaeros;
22

3+
import com.funniray.minimap.common.api.MinimapPlayer;
34
import org.spongepowered.configurate.objectmapping.ConfigSerializable;
45

56
@ConfigSerializable
67
public class XaerosConfig {
78
public boolean caveMode = true;
89
public boolean netherCaveMode = true;
910
public boolean radar = true;
11+
12+
private boolean getOverride(String nodeSuffix, boolean def, MinimapPlayer player) {
13+
if (player.hasPermission("minimap.override."+nodeSuffix+".enabled")) {
14+
return true;
15+
} else if (player.hasPermission("minimap.override."+nodeSuffix+".disabled")) {
16+
return false;
17+
}
18+
19+
return def;
20+
}
21+
22+
public XaerosConfig applyOverrides(MinimapPlayer player) {
23+
XaerosConfig newConfig = new XaerosConfig();
24+
newConfig.radar = getOverride("radar", this.radar, player);
25+
newConfig.caveMode = getOverride("cave-mode", this.caveMode, player);
26+
newConfig.netherCaveMode = getOverride("nether-cave-mode", this.netherCaveMode, player);
27+
28+
return newConfig;
29+
}
1030
}

common/src/main/java/com/funniray/minimap/common/xaeros/XaerosHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public void sendXaerosConfig(MinimapPlayer player) {
3939
config = worldConfig;
4040
}
4141

42+
config = config.applyOverrides(player);
43+
4244
ByteArrayDataOutput out = ByteStreams.newDataOutput();
4345
out.writeByte(4);
4446
CompoundBinaryTag tag = CompoundBinaryTag.builder()

0 commit comments

Comments
 (0)