Skip to content

Commit a6e0183

Browse files
Fix fences and lights in SIDRAT desktop
1 parent 3e2b649 commit a6e0183

File tree

11 files changed

+68
-53
lines changed

11 files changed

+68
-53
lines changed

src/main/java/me/eccentric_nz/TARDIS/builders/interior/TARDISBuildAbandoned.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class TARDISBuildAbandoned implements Runnable {
8484
private final HashMap<Block, BlockData> postStickyPistonBaseBlocks = new HashMap<>();
8585
private final HashMap<Block, BlockData> postTorchBlocks = new HashMap<>();
8686
private final HashMap<Block, JsonObject> postSignBlocks = new HashMap<>();
87+
private final HashMap<Block, BlockData> sidratFenceBlocks = new HashMap<>();
8788
private final HashMap<Block, TARDISBannerData> postBannerBlocks = new HashMap<>();
8889
private final List<Block> fractalBlocks = new ArrayList<>();
8990
private final List<Block> iceBlocks = new ArrayList<>();
@@ -222,6 +223,7 @@ public void run() {
222223
FractalFence.grow(fractalBlocks.get(f), f);
223224
}
224225
BannerSetter.setBanners(postBannerBlocks);
226+
SIDRATFenceSetter.update(sidratFenceBlocks);
225227
if (plugin.isWorldGuardOnServer() && plugin.getConfig().getBoolean("preferences.use_worldguard")) {
226228
UUID randomUUID = UUID.randomUUID();
227229
plugin.getWorldGuardUtils().addWGProtection(randomUUID, randomUUID.toString(), pos, world);
@@ -253,9 +255,7 @@ public void run() {
253255
}
254256
if (obj.has("item_displays")) {
255257
JsonArray displays = obj.get("item_displays").getAsJsonArray();
256-
for (int i = 0; i < displays.size(); i++) {
257-
ItemDisplaySetter.fakeBlock(displays.get(i).getAsJsonObject(), cl, dbID);
258-
}
258+
ItemDisplaySetter.process(displays, player, cl, dbID);
259259
}
260260
// finished processing - update tardis table!
261261
plugin.getQueryFactory().doUpdate("tardis", set, where);
@@ -522,6 +522,10 @@ public void run() {
522522
seta.put("json", json.toString());
523523
plugin.getQueryFactory().doInsert("ars", seta);
524524
}
525+
526+
if (type.equals(Material.PALE_OAK_FENCE) && schm.getPermission().equals("sidrat")) {
527+
sidratFenceBlocks.put(world.getBlockAt(x, y, z), data);
528+
}
525529
if (type.equals(Material.ICE) && schm.getPermission().equals("cave")) {
526530
iceBlocks.add(world.getBlockAt(x, y, z));
527531
}

src/main/java/me/eccentric_nz/TARDIS/builders/interior/TARDISBuilderInner.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import me.eccentric_nz.TARDIS.enumeration.TardisModule;
3232
import me.eccentric_nz.TARDIS.enumeration.UseClay;
3333
import me.eccentric_nz.TARDIS.floodgate.TARDISFloodgate;
34-
import me.eccentric_nz.TARDIS.floodgate.TARDISFloodgateDisplaySetter;
3534
import me.eccentric_nz.TARDIS.mobfarming.TARDISFollowerSpawner;
3635
import me.eccentric_nz.TARDIS.rotors.TARDISTimeRotor;
3736
import me.eccentric_nz.TARDIS.schematic.TARDISSchematicGZip;
@@ -83,6 +82,7 @@ public class TARDISBuilderInner implements Runnable {
8382
private final HashMap<Block, BlockData> postSculkVeinBlocks = new HashMap<>();
8483
private final HashMap<Block, BlockData> postStickyPistonBaseBlocks = new HashMap<>();
8584
private final HashMap<Block, BlockData> postTorchBlocks = new HashMap<>();
85+
private final HashMap<Block, BlockData> sidratFenceBlocks = new HashMap<>();
8686
private final HashMap<Block, JsonObject> postSignBlocks = new HashMap<>();
8787
private final List<Block> fractalBlocks = new ArrayList<>();
8888
private final List<Block> iceBlocks = new ArrayList<>();
@@ -259,6 +259,7 @@ public void run() {
259259
FractalFence.grow(fractalBlocks.get(f), f);
260260
}
261261
BannerSetter.setBanners(postBannerBlocks);
262+
SIDRATFenceSetter.update(sidratFenceBlocks);
262263
if (plugin.isWorldGuardOnServer() && plugin.getConfig().getBoolean("preferences.use_worldguard")) {
263264
if (pos != null) {
264265
plugin.getWorldGuardUtils().addWGProtection(player, pos, world, schm.getPermission().equals("junk"));
@@ -295,14 +296,7 @@ public void run() {
295296
// item displays
296297
if (obj.has("item_displays")) {
297298
JsonArray displays = obj.get("item_displays").getAsJsonArray();
298-
for (int i = 0; i < displays.size(); i++) {
299-
// set regular blocks for bedrock players
300-
if (TARDISFloodgate.isFloodgateEnabled() && TARDISFloodgate.isBedrockPlayer(player.getUniqueId())) {
301-
TARDISFloodgateDisplaySetter.regularBlock(displays.get(i).getAsJsonObject(), wg1, dbID);
302-
} else {
303-
ItemDisplaySetter.fakeBlock(displays.get(i).getAsJsonObject(), wg1, dbID);
304-
}
305-
}
299+
ItemDisplaySetter.process(displays, player, wg1, dbID);
306300
}
307301
// remove dropped items
308302
chunkList.forEach((chink) -> {
@@ -675,6 +669,9 @@ public void run() {
675669
plugin.getQueryFactory().doInsert("blocks", setpb);
676670
plugin.getGeneralKeeper().getProtectBlockMap().put(loc, dbID);
677671
}
672+
if (type.equals(Material.PALE_OAK_FENCE) && schm.getPermission().equals("sidrat")) {
673+
sidratFenceBlocks.put(world.getBlockAt(x, y, z), data);
674+
}
678675
if (type.equals(Material.ICE) && schm.getPermission().equals("cave")) {
679676
iceBlocks.add(world.getBlockAt(x, y, z));
680677
} else if (Tag.BEDS.isTagged(type)) {

src/main/java/me/eccentric_nz/TARDIS/builders/interior/TARDISBuilderPreview.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public class TARDISBuilderPreview implements Runnable {
6868
private final HashMap<Block, BlockData> postSculkVeinBlocks = new HashMap<>();
6969
private final HashMap<Block, BlockData> postStickyPistonBaseBlocks = new HashMap<>();
7070
private final HashMap<Block, BlockData> postTorchBlocks = new HashMap<>();
71+
private final HashMap<Block, BlockData> sidratFenceBlocks = new HashMap<>();
7172
private final HashMap<Block, JsonObject> postSignBlocks = new HashMap<>();
7273
private final List<Block> fractalBlocks = new ArrayList<>();
7374
private final List<Block> iceBlocks = new ArrayList<>();
@@ -171,6 +172,7 @@ public void run() {
171172
FractalFence.grow(fractalBlocks.get(f), f);
172173
}
173174
BannerSetter.setBanners(postBannerBlocks);
175+
SIDRATFenceSetter.update(sidratFenceBlocks);
174176
if (ender != null) {
175177
Entity ender_crystal = world.spawnEntity(ender, EntityType.END_CRYSTAL);
176178
((EnderCrystal) ender_crystal).setShowingBottom(false);
@@ -305,7 +307,9 @@ public void run() {
305307
*/
306308
ender = world.getBlockAt(x, y, z).getLocation().add(0.5d, 4d, 0.5d);
307309
}
308-
if (type.equals(Material.ICE) && schm.getPermission().equals("cave")) {
310+
if (type.equals(Material.PALE_OAK_FENCE) && schm.getPermission().equals("sidrat")) {
311+
sidratFenceBlocks.put(world.getBlockAt(x, y, z), data);
312+
} else if (type.equals(Material.ICE) && schm.getPermission().equals("cave")) {
309313
iceBlocks.add(world.getBlockAt(x, y, z));
310314
} else if (Tag.BEDS.isTagged(type)) {
311315
postBedBlocks.put(world.getBlockAt(x, y, z), data);

src/main/java/me/eccentric_nz/TARDIS/desktop/TARDISFullThemeRunnable.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import me.eccentric_nz.TARDIS.enumeration.ConsoleSize;
4141
import me.eccentric_nz.TARDIS.enumeration.TardisModule;
4242
import me.eccentric_nz.TARDIS.floodgate.TARDISFloodgate;
43-
import me.eccentric_nz.TARDIS.floodgate.TARDISFloodgateDisplaySetter;
4443
import me.eccentric_nz.TARDIS.mobfarming.TARDISFollowerSpawner;
4544
import me.eccentric_nz.TARDIS.rotors.TARDISTimeRotor;
4645
import me.eccentric_nz.TARDIS.schematic.TARDISSchematicGZip;
@@ -401,6 +400,7 @@ public void run() {
401400
postPistonExtensionBlocks.forEach(Block::setBlockData);
402401
SignSetter.setSigns(postSignBlocks, plugin, id);
403402
BannerSetter.setBanners(postBannerBlocks);
403+
SIDRATFenceSetter.update(sidratFenceBlocks);
404404
postLightBlocks.forEach((block) -> {
405405
if (block.getType().isAir()) {
406406
Levelled levelled = TARDISConstants.LIGHT;
@@ -456,18 +456,7 @@ public void run() {
456456
// item displays
457457
if (obj.has("item_displays")) {
458458
JsonArray displays = obj.get("item_displays").getAsJsonArray();
459-
for (int i = 0; i < displays.size(); i++) {
460-
// set regular blocks for bedrock players
461-
if (TARDISFloodgate.isFloodgateEnabled() && TARDISFloodgate.isBedrockPlayer(player.getUniqueId())) {
462-
TARDISFloodgateDisplaySetter.regularBlock(displays.get(i).getAsJsonObject(), wg1, id);
463-
} else {
464-
ItemDisplaySetter.fakeBlock(displays.get(i).getAsJsonObject(), wg1, id);
465-
}
466-
}
467-
}
468-
// sidrat fence update
469-
if (!sidratFenceBlocks.isEmpty()) {
470-
SIDRATFenceSetter.update(sidratFenceBlocks);
459+
ItemDisplaySetter.process(displays, player, wg1, id);
471460
}
472461
// finished processing - update tardis table!
473462
if (!set.isEmpty()) {
@@ -831,10 +820,10 @@ public void run() {
831820
plugin.getQueryFactory().doInsert("lamps", setLB);
832821
}
833822
if (type.equals(Material.ICE) && tud.getSchematic().getPermission().equals("cave")) {
834-
sidratFenceBlocks.put(b, data);
823+
iceBlocks.add(b);
835824
}
836825
if (type.equals(Material.PALE_OAK_FENCE) && tud.getSchematic().getPermission().equals("sidrat")) {
837-
iceBlocks.add(b);
826+
sidratFenceBlocks.put(b, data);
838827
}
839828
if (type.equals(Material.COMMAND_BLOCK) || ((tud.getSchematic().getPermission().equals("bigger") || tud.getSchematic().getPermission().equals("coral") || tud.getSchematic().getPermission().equals("deluxe") || tud.getSchematic().getPermission().equals("twelfth")) && type.equals(Material.BEACON))) {
840829
/*

src/main/java/me/eccentric_nz/TARDIS/desktop/TARDISThemeRepairRunnable.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public class TARDISThemeRepairRunnable extends TARDISThemeRunnable {
8585
private final HashMap<Block, BlockData> postStickyPistonBaseBlocks = new HashMap<>();
8686
private final HashMap<Block, BlockData> postTorchBlocks = new HashMap<>();
8787
private final HashMap<Block, JsonObject> postSignBlocks = new HashMap<>();
88+
private final HashMap<Block, BlockData> sidratFenceBlocks = new HashMap<>();
8889
private final HashMap<Block, TARDISBannerData> postBannerBlocks = new HashMap<>();
8990
private final List<Block> fractalBlocks = new ArrayList<>();
9091
private final List<Block> iceBlocks = new ArrayList<>();
@@ -288,6 +289,7 @@ public void run() {
288289
postPistonExtensionBlocks.forEach(Block::setBlockData);
289290
SignSetter.setSigns(postSignBlocks, plugin, id);
290291
BannerSetter.setBanners(postBannerBlocks);
292+
SIDRATFenceSetter.update(sidratFenceBlocks);
291293
postLightBlocks.forEach((block) -> {
292294
if (block.getType().isAir()) {
293295
Levelled levelled = TARDISConstants.LIGHT;
@@ -341,9 +343,7 @@ public void run() {
341343
}
342344
if (obj.has("item_displays")) {
343345
JsonArray displays = obj.get("item_displays").getAsJsonArray();
344-
for (int i = 0; i < displays.size(); i++) {
345-
ItemDisplaySetter.fakeBlock(displays.get(i).getAsJsonObject(), wg1, id);
346-
}
346+
ItemDisplaySetter.process(displays, player, wg1, id);
347347
}
348348
// finished processing - update tardis table!
349349
if (!set.isEmpty()) {
@@ -500,7 +500,7 @@ public void run() {
500500
String button = TARDISStaticLocationGetters.makeLocationStr(world, x, y, z);
501501
plugin.getQueryFactory().insertSyncControl(id, 1, button, 0);
502502
}
503-
if (type.equals(Material.JUKEBOX) && !(tud.getSchematic().getPermission().equals("eighth") && world.getBlockAt(x,y,z).getRelative(BlockFace.DOWN).getType() == Material.ANDESITE)) {
503+
if (type.equals(Material.JUKEBOX) && !(tud.getSchematic().getPermission().equals("eighth") && world.getBlockAt(x, y, z).getRelative(BlockFace.DOWN).getType() == Material.ANDESITE)) {
504504
// remember the location of this Advanced Console
505505
String advanced = TARDISStaticLocationGetters.makeLocationStr(world, x, y, z);
506506
plugin.getQueryFactory().insertSyncControl(id, 15, advanced, 0);
@@ -631,6 +631,8 @@ public void run() {
631631
} else if (MaterialTags.INFESTED_BLOCKS.isTagged(type)) {
632632
// legacy monster egg stone for controls
633633
TARDISBlockSetters.setBlock(world, x, y, z, Material.AIR);
634+
} else if (type.equals(Material.PALE_OAK_FENCE) && tud.getSchematic().getPermission().equals("sidrat")) {
635+
sidratFenceBlocks.put(world.getBlockAt(x, y, z), data);
634636
} else if (type.equals(Material.ICE) && tud.getSchematic().getPermission().equals("cave")) {
635637
iceBlocks.add(world.getBlockAt(x, y, z));
636638
} else if (type.equals(Material.MUSHROOM_STEM)) { // mushroom stem for repeaters

src/main/java/me/eccentric_nz/TARDIS/rooms/TARDISRoomRunnable.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -433,9 +433,7 @@ public void run() {
433433
}
434434
if (obj.has("item_displays")) {
435435
JsonArray displays = obj.get("item_displays").getAsJsonArray();
436-
for (int i = 0; i < displays.size(); i++) {
437-
ItemDisplaySetter.fakeBlock(displays.get(i).getAsJsonObject(), start, tardis_id);
438-
}
436+
ItemDisplaySetter.process(displays, player, start, tardis_id);
439437
}
440438
if (room.equals("NAUTILUS")) {
441439
magmaBlocks.forEach((key, value) -> {

src/main/java/me/eccentric_nz/TARDIS/schematic/actions/SchematicPaster.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public class SchematicPaster implements Runnable {
5050
private final HashMap<Block, BlockData> postRedstoneDust = new HashMap<>();
5151
private final HashMap<Block, BlockData> postPistons = new HashMap<>();
5252
private final HashMap<Block, TARDISBannerData> postBanners = new HashMap<>();
53+
private final HashMap<Block, BlockData> sidratFenceBlocks = new HashMap<>();
5354
private int task, l, r, h, w, d, x, y, z;
5455
private int counter = 0;
5556
private double div = 1.0d;
@@ -122,6 +123,7 @@ public void run() {
122123
}
123124
}
124125
BannerSetter.setBanners(postBanners);
126+
SIDRATFenceSetter.update(sidratFenceBlocks);
125127
// mannequins
126128
if (obj.has("mannequins")) {
127129
JsonArray mannequins = obj.get("mannequins").getAsJsonArray();
@@ -197,6 +199,10 @@ public void run() {
197199
}
198200
}, 1L);
199201
}
202+
case PALE_OAK_FENCE -> {
203+
block.setBlockData(data, false);
204+
sidratFenceBlocks.put(block, data);
205+
}
200206
default -> {
201207
if (Tag.BANNERS.isTagged(data.getMaterial())) {
202208
JsonObject state = col.has("banner") ? col.get("banner").getAsJsonObject() : null;

src/main/java/me/eccentric_nz/TARDIS/schematic/setters/ItemDisplaySetter.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package me.eccentric_nz.TARDIS.schematic.setters;
1818

19+
import com.google.gson.JsonArray;
1920
import com.google.gson.JsonObject;
2021
import me.eccentric_nz.TARDIS.TARDIS;
2122
import me.eccentric_nz.TARDIS.customblocks.TARDISDisplayItem;
@@ -24,6 +25,8 @@
2425
import me.eccentric_nz.TARDIS.database.resultset.ResultSetDoors;
2526
import me.eccentric_nz.TARDIS.enumeration.Desktops;
2627
import me.eccentric_nz.TARDIS.enumeration.Schematic;
28+
import me.eccentric_nz.TARDIS.floodgate.TARDISFloodgate;
29+
import me.eccentric_nz.TARDIS.floodgate.TARDISFloodgateDisplaySetter;
2730
import me.eccentric_nz.TARDIS.utility.ComponentUtils;
2831
import me.eccentric_nz.TARDIS.utility.TARDISStringUtils;
2932
import net.kyori.adventure.text.Component;
@@ -34,6 +37,7 @@
3437
import org.bukkit.entity.Display;
3538
import org.bukkit.entity.EntityType;
3639
import org.bukkit.entity.ItemDisplay;
40+
import org.bukkit.entity.Player;
3741
import org.bukkit.inventory.ItemStack;
3842
import org.bukkit.inventory.meta.ItemMeta;
3943

@@ -44,6 +48,17 @@
4448
*/
4549
public class ItemDisplaySetter {
4650

51+
public static void process(JsonArray displays, Player player, Location location, int id) {
52+
for (int i = 0; i < displays.size(); i++) {
53+
// set regular blocks for bedrock players
54+
if (TARDISFloodgate.isFloodgateEnabled() && TARDISFloodgate.isBedrockPlayer(player.getUniqueId())) {
55+
TARDISFloodgateDisplaySetter.regularBlock(displays.get(i).getAsJsonObject(), location, id);
56+
} else {
57+
fakeBlock(displays.get(i).getAsJsonObject(), location, id);
58+
}
59+
}
60+
}
61+
4762
public static void fakeBlock(JsonObject json, Location start, int id) {
4863
JsonObject rel = json.get("rel_location").getAsJsonObject();
4964
int px = rel.get("x").getAsInt();

src/main/java/me/eccentric_nz/TARDIS/schematic/setters/SIDRATFenceSetter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class SIDRATFenceSetter {
1010

1111
public static void update(HashMap<Block, BlockData> fences) {
1212
for (Map.Entry<Block, BlockData> map : fences.entrySet()) {
13-
map.getKey().setBlockData(map.getValue());
13+
map.getKey().setBlockData(map.getValue(), false);
1414
}
1515
}
1616
}
-11 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)