SteamWar/BauSystem2.0
Archiviert
12
0

Add unmoveable flag for MaterialCommand
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful

Signed-off-by: yoyosource <yoyosource@nidido.de>
Dieser Commit ist enthalten in:
yoyosource 2022-10-24 17:06:02 +02:00
Ursprung 566c612327
Commit 9275fd552c
3 geänderte Dateien mit 23 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -918,6 +918,7 @@ MATERIAL_SEARCH_INTERACTEABLE=§eInteractable
MATERIAL_SEARCH_FLAMMABLE=§eFlammable
MATERIAL_SEARCH_BURNABLE=§eBurnable
MATERIAL_SEARCH_WATERLOGGABLE=§eWaterloggable
MATERIAL_SEARCH_UNMOVEABLE=§eUnmoveable
MATERIAL_SEARCH_BLASTRESISTANCE=§eBlast resistance
MATERIAL_SEARCH_VALUE=§8: §e{0}
MATERIAL_BLAST_RESISTANCE=§8- §eBlast resistance§8: §7{0}
@ -932,6 +933,7 @@ MATERIAL_INTERACTABLE=§8- §eInteractable block
MATERIAL_FLAMMABLE=§8- §eFlammable block
MATERIAL_BURNABLE=§8- §eBurnable block
MATERIAL_WATERLOGGABLE=§8- §eWaterloggable block
MATERIAL_UNMOVABLE=§8- §eUnmovable block
# Redstonetester
RT_HELP=§8/§eredstonetester §8-§7 Gives you the redstone tester
RT_GIVEN=§7Measure the time between activation of components

Datei anzeigen

@ -63,6 +63,7 @@ public class MaterialCommand extends SWCommand implements Listener {
SearchType flammable = SearchType.IGNORE;
SearchType burnable = SearchType.IGNORE;
SearchType waterloggable = SearchType.IGNORE;
SearchType unmoveable = SearchType.IGNORE;
String blastResistance = ">=0";
String name = "";
@ -110,6 +111,7 @@ public class MaterialCommand extends SWCommand implements Listener {
elements.put("-flammable", (search, searchType) -> search.flammable = searchType);
elements.put("-burnable", (search, searchType) -> search.burnable = searchType);
elements.put("-waterloggable", (search, searchType) -> search.waterloggable = searchType);
elements.put("-unmoveable", (search, searchType) -> search.unmoveable = searchType);
}
@Register
@ -235,7 +237,11 @@ public class MaterialCommand extends SWCommand implements Listener {
search.waterloggable = search.waterloggable.next();
searchGUI(p);
}));
swInventory.setItem(30, new SWItem(Material.NETHER_BRICK, BauSystem.MESSAGE.parse("MATERIAL_SEARCH_BLASTRESISTANCE", p) + BauSystem.MESSAGE.parse("MATERIAL_SEARCH_VALUE", p, search.blastResistance), clickType -> {
swInventory.setItem(29, new SWItem(Material.PISTON, BauSystem.MESSAGE.parse("MATERIAL_SEARCH_UNMOVEABLE", p) + BauSystem.MESSAGE.parse("MATERIAL_SEARCH_VALUE", p, BauSystem.MESSAGE.parse(search.unmoveable.getChatValue(), p)), clickType -> {
search.unmoveable = search.unmoveable.next();
searchGUI(p);
}));
swInventory.setItem(34, new SWItem(Material.NETHER_BRICK, BauSystem.MESSAGE.parse("MATERIAL_SEARCH_BLASTRESISTANCE", p) + BauSystem.MESSAGE.parse("MATERIAL_SEARCH_VALUE", p, search.blastResistance), clickType -> {
SWAnvilInv swAnvilInv = new SWAnvilInv(p, BauSystem.MESSAGE.parse("MATERIAL_SEARCH_BLASTRESISTANCE", p), search.blastResistance);
swAnvilInv.setCallback(s -> {
if (s.isEmpty() || s.matches("((([><]=?)|!|=)\\d+(\\.|,\\d+)?)( ((([><]=?)|!|=)\\d+(\\.|,\\d+)?))*")) {

Datei anzeigen

@ -22,7 +22,11 @@ package de.steamwar.bausystem.features.util;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.inventory.SWItem;
import de.steamwar.inventory.SWListInv;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.PistonMoveReaction;
import org.bukkit.block.TileState;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Waterlogged;
import org.bukkit.entity.Player;
@ -62,6 +66,7 @@ public class MaterialLazyInit {
private boolean flammable;
private boolean burnable;
private boolean waterloggable;
private boolean unmoveable;
public MaterialData(Material material) {
this.originalMaterial = material;
@ -78,6 +83,11 @@ public class MaterialLazyInit {
burnable = material.isBurnable();
BlockData blockData = material.createBlockData();
waterloggable = blockData instanceof Waterlogged;
if (material.isBlock()) {
Block block = Bukkit.getWorlds().get(0).getBlockAt(0, 0, 0);
block.setType(material);
unmoveable = block.getPistonMoveReaction() == PistonMoveReaction.BLOCK || block.getPistonMoveReaction() == PistonMoveReaction.IGNORE || block.getState() instanceof TileState;
}
if (material.isItem() && material != Material.AIR) {
this.material = material;
@ -115,6 +125,9 @@ public class MaterialLazyInit {
if (waterloggable) {
lore.add(BauSystem.MESSAGE.parse("MATERIAL_WATERLOGGABLE", p));
}
if (unmoveable) {
lore.add(BauSystem.MESSAGE.parse("MATERIAL_UNMOVABLE", p));
}
return new SWListInv.SWListEntry<>(new SWItem(material, "§e" + name, lore, false, clickType -> {
}), originalMaterial);
}
@ -129,6 +142,7 @@ public class MaterialLazyInit {
result &= search.flammable.test(flammable);
result &= search.burnable.test(burnable);
result &= search.waterloggable.test(waterloggable);
result &= search.unmoveable.test(unmoveable);
if (!result) {
return false;
}