Skip to content
This repository was archived by the owner on Jul 7, 2023. It is now read-only.

Commit dd7c17b

Browse files
committed
Update materials to 1.15+, fixes #268 #273
1 parent 840ae6d commit dd7c17b

23 files changed

+67
-1766
lines changed

build.gradle

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ repositories {
5151

5252
dependencies {
5353
implementation 'com.github.stefvanschie.inventoryframework:IF:0.5.8'
54+
implementation group: 'com.github.cryptomorin', name: 'XSeries', version: '5.3.1'
5455
compileOnly ('org.spigotmc:spigot-api:1.15-R0.1-SNAPSHOT') {
5556
exclude group: 'net.md-5', module: 'bungeecord-chat'
5657
exclude group: 'javax.persistence', module: 'persistence-api'
@@ -132,6 +133,7 @@ shadowJar {
132133
mergeServiceFiles()
133134
exclude 'META-INF/*.DSA'
134135
exclude 'META-INF/*.RSA'
136+
relocate 'com.cryptomorin.xseries', 'com.massivecraft.factions.shade.xseries'
135137
relocate 'com.github.stefvanschie.inventoryframework', 'com.massivecraft.factions.shade.stefvanschie.inventoryframework'
136138
relocate 'mkremins.fanciful', 'com.massivecraft.factions.shade.mkremins.fanciful'
137139
relocate 'com.google.gson', 'com.massivecraft.factions.shade.com.google.gson'

src/main/java/com/massivecraft/factions/Conf.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package com.massivecraft.factions;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.google.common.collect.ImmutableMap;
45
import com.massivecraft.factions.integration.dynmap.DynmapStyle;
5-
import com.massivecraft.factions.struct.Relation;
66
import com.massivecraft.factions.util.Particles.ParticleEffect;
77
import com.massivecraft.factions.util.Particles.Particles;
8-
import com.massivecraft.factions.util.XMaterial;
98
import com.massivecraft.factions.zcore.ffly.FlyParticle;
109
import com.massivecraft.factions.zcore.ffly.flyparticledata.ColorableCloud;
1110
import com.massivecraft.factions.zcore.ffly.flyparticledata.FlyParticleData;
@@ -17,7 +16,6 @@
1716
import org.bukkit.Material;
1817
import org.bukkit.entity.EntityType;
1918

20-
import javax.persistence.Transient;
2119
import java.util.*;
2220

2321
public class Conf {

src/main/java/com/massivecraft/factions/ConfigVersion.java

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.massivecraft.factions;
22

3-
import org.bukkit.configuration.file.FileConfiguration;
4-
53
import java.io.IOException;
64

75
public class ConfigVersion {

src/main/java/com/massivecraft/factions/Shop.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.massivecraft.factions;
22

3-
import com.massivecraft.factions.util.XMaterial;
3+
import com.cryptomorin.xseries.XMaterial;
44
import com.massivecraft.factions.zcore.fshop.ShopItem;
55
import com.massivecraft.factions.zcore.persist.serializable.ConfigurableItem;
66

src/main/java/com/massivecraft/factions/cmd/CmdSeeChunk.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.massivecraft.factions.cmd;
22

33

4+
import com.cryptomorin.xseries.XMaterial;
45
import com.massivecraft.factions.FLocation;
56
import com.massivecraft.factions.SavageFactions;
67
import com.massivecraft.factions.struct.Permission;
78
import com.massivecraft.factions.util.Particles.ParticleEffect;
89
import com.massivecraft.factions.util.VisualizeUtil;
9-
import com.massivecraft.factions.util.XMaterial;
1010
import com.massivecraft.factions.zcore.util.TL;
1111
import org.bukkit.*;
1212
import org.bukkit.entity.Player;

src/main/java/com/massivecraft/factions/cmd/CmdTnt.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.massivecraft.factions.cmd;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.massivecraft.factions.SavageFactions;
45
import com.massivecraft.factions.struct.Permission;
5-
import com.massivecraft.factions.util.XMaterial;
66
import com.massivecraft.factions.zcore.fperms.PermissableAction;
77
import com.massivecraft.factions.zcore.util.TL;
88
import org.bukkit.Material;

src/main/java/com/massivecraft/factions/listeners/FactionsBlockListener.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package com.massivecraft.factions.listeners;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.massivecraft.factions.*;
45
import com.massivecraft.factions.integration.Worldguard;
56
import com.massivecraft.factions.struct.Permission;
67
import com.massivecraft.factions.struct.Relation;
78
import com.massivecraft.factions.struct.Role;
8-
import com.massivecraft.factions.util.XMaterial;
99
import com.massivecraft.factions.zcore.fperms.Access;
1010
import com.massivecraft.factions.zcore.fperms.PermissableAction;
1111
import com.massivecraft.factions.zcore.util.ItemBuilder;
1212
import com.massivecraft.factions.zcore.util.TL;
13-
import org.bukkit.Bukkit;
1413
import org.bukkit.Location;
1514
import org.bukkit.Material;
1615
import org.bukkit.block.Block;

src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.massivecraft.factions.listeners;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.massivecraft.factions.Conf;
4-
import com.massivecraft.factions.util.XMaterial;
55
import org.bukkit.Location;
66
import org.bukkit.Material;
77
import org.bukkit.block.Block;
@@ -27,7 +27,10 @@ public void obsidianGenerator(BlockFromToEvent event) {
2727

2828
Material source = event.getBlock().getType();
2929
Material target = block.getType();
30-
if ((target == XMaterial.REDSTONE_WIRE.parseMaterial() || target == XMaterial.TRIPWIRE.parseMaterial()) && (source == XMaterial.AIR.parseMaterial() || source == XMaterial.LAVA.parseMaterial() || source.toString().equalsIgnoreCase("STATIONARY_LAVA"))) {
30+
if ((target == XMaterial.REDSTONE_WIRE.parseMaterial()
31+
|| target == XMaterial.TRIPWIRE.parseMaterial()) && (source == XMaterial.AIR.parseMaterial()
32+
|| source == XMaterial.LAVA.parseMaterial()
33+
|| source.toString().equalsIgnoreCase("STATIONARY_LAVA"))) {
3134
block.setType(XMaterial.AIR.parseMaterial());
3235
}
3336

src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java

+31-115
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.massivecraft.factions.listeners;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.massivecraft.factions.*;
45
import com.massivecraft.factions.cmd.CmdFly;
56
import com.massivecraft.factions.cmd.CmdSeeChunk;
@@ -14,7 +15,6 @@
1415
import com.massivecraft.factions.struct.Role;
1516
import com.massivecraft.factions.util.FactionGUI;
1617
import com.massivecraft.factions.util.VisualizeUtil;
17-
import com.massivecraft.factions.util.XMaterial;
1818
import com.massivecraft.factions.zcore.fperms.Access;
1919
import com.massivecraft.factions.zcore.fperms.PermissableAction;
2020
import com.massivecraft.factions.zcore.persist.MemoryFPlayer;
@@ -272,124 +272,36 @@ private static PermissableAction GetPermissionFromUsableBlock(Block block) {
272272
}
273273

274274
private static PermissableAction GetPermissionFromUsableBlock(Material material) {
275-
// Check for doors that might have diff material name in old version.
276-
if (material.name().contains("DOOR") || material.name().contains("FENCE_GATE"))
277-
return PermissableAction.DOOR;
278-
if (material.name().toUpperCase().contains("BUTTON") || material.name().toUpperCase().contains("PRESSURE")
279-
|| material.name().contains("DIODE") || material.name().contains("COMPARATOR"))
280-
return PermissableAction.BUTTON;
281-
if (SavageFactions.plugin.mc113 || SavageFactions.plugin.mc114) {
282-
switch (material) {
283-
case LEVER:
284-
return PermissableAction.LEVER;
285-
case ACACIA_BUTTON:
286-
case BIRCH_BUTTON:
287-
case DARK_OAK_BUTTON:
288-
case JUNGLE_BUTTON:
289-
case OAK_BUTTON:
290-
case SPRUCE_BUTTON:
291-
case STONE_BUTTON:
292-
case COMPARATOR:
293-
case REPEATER:
294-
return PermissableAction.BUTTON;
295-
296-
case ACACIA_DOOR:
297-
case BIRCH_DOOR:
298-
case IRON_DOOR:
299-
case JUNGLE_DOOR:
300-
case OAK_DOOR:
301-
case SPRUCE_DOOR:
302-
case DARK_OAK_DOOR:
303-
304-
case ACACIA_TRAPDOOR:
305-
case BIRCH_TRAPDOOR:
306-
case DARK_OAK_TRAPDOOR:
307-
case IRON_TRAPDOOR:
308-
case JUNGLE_TRAPDOOR:
309-
case OAK_TRAPDOOR:
310-
case SPRUCE_TRAPDOOR:
311-
312-
case ACACIA_FENCE_GATE:
313-
case BIRCH_FENCE_GATE:
314-
case DARK_OAK_FENCE_GATE:
315-
case JUNGLE_FENCE_GATE:
316-
case OAK_FENCE_GATE:
317-
case SPRUCE_FENCE_GATE:
318-
return PermissableAction.DOOR;
319-
320-
case CHEST:
321-
case TRAPPED_CHEST:
322-
case CHEST_MINECART:
323-
324-
case BARREL:
325-
326-
case SHULKER_BOX:
327-
case BLACK_SHULKER_BOX:
328-
case BLUE_SHULKER_BOX:
329-
case BROWN_SHULKER_BOX:
330-
case CYAN_SHULKER_BOX:
331-
case GRAY_SHULKER_BOX:
332-
case GREEN_SHULKER_BOX:
333-
case LIGHT_BLUE_SHULKER_BOX:
334-
case LIGHT_GRAY_SHULKER_BOX:
335-
case LIME_SHULKER_BOX:
336-
case MAGENTA_SHULKER_BOX:
337-
case ORANGE_SHULKER_BOX:
338-
case PINK_SHULKER_BOX:
339-
case PURPLE_SHULKER_BOX:
340-
case RED_SHULKER_BOX:
341-
case WHITE_SHULKER_BOX:
342-
case YELLOW_SHULKER_BOX:
343-
344-
case FURNACE:
345-
case DROPPER:
275+
if (material.name().contains("_BUTTON")
276+
|| material.name().contains("COMPARATOR")
277+
|| material.name().contains("PRESSURE")
278+
|| material.name().contains("REPEATER")
279+
|| material.name().contains("DIODE")) return PermissableAction.BUTTON;
280+
if (material.name().contains("_DOOR")
281+
|| material.name().contains("_TRAPDOOR")
282+
|| material.name().contains("_FENCE_GATE")
283+
|| material.name().startsWith("FENCE_GATE")) return PermissableAction.DOOR;
284+
if (material.name().contains("SHULKER_BOX")
285+
|| material.name().endsWith("ANVIL")
286+
|| material.name().startsWith("CHEST_MINECART")
287+
|| material.name().endsWith("CHEST")
288+
|| material.name().endsWith("JUKEBOX")
289+
|| material.name().endsWith("CAULDRON")
290+
|| material.name().endsWith("FURNACE")
291+
|| material.name().endsWith("HOPPER")
292+
|| material.name().endsWith("BEACON")
293+
|| material.name().startsWith("TRAPPED_CHEST")
294+
|| material.name().equalsIgnoreCase("ENCHANTING_TABLE")
295+
|| material.name().equalsIgnoreCase("ENCHANTMENT_TABLE")
296+
|| material.name().endsWith("BREWING_STAND")
297+
|| material.name().equalsIgnoreCase("BARREL")) return PermissableAction.CONTAINER;
298+
if (material.name().endsWith("LEVER")) return PermissableAction.LEVER;
299+
switch (material) {
346300
case DISPENSER:
347-
case ENCHANTING_TABLE:
348-
case BREWING_STAND:
349-
case CAULDRON:
350-
case HOPPER:
351-
case BEACON:
352-
case JUKEBOX:
353-
case ANVIL:
354-
case CHIPPED_ANVIL:
355-
case DAMAGED_ANVIL:
356-
return PermissableAction.CONTAINER;
357-
default:
358-
return null;
359-
}
360-
} else {
361-
switch (material) {
362-
case LEVER:
363-
return PermissableAction.LEVER;
364-
case DARK_OAK_DOOR:
365-
case ACACIA_DOOR:
366-
case BIRCH_DOOR:
367-
case IRON_DOOR:
368-
case JUNGLE_DOOR:
369-
case SPRUCE_DOOR:
370-
case ACACIA_FENCE_GATE:
371-
case BIRCH_FENCE_GATE:
372-
case OAK_FENCE_GATE:
373-
case DARK_OAK_FENCE_GATE:
374-
case JUNGLE_FENCE_GATE:
375-
case SPRUCE_FENCE_GATE:
376-
return PermissableAction.DOOR;
377-
case CHEST:
378-
case ENDER_CHEST:
379-
case TRAPPED_CHEST:
380-
case DISPENSER:
381-
case ENCHANTING_TABLE:
382301
case DROPPER:
383-
case FURNACE:
384-
case HOPPER:
385-
case ANVIL:
386-
case CHIPPED_ANVIL:
387-
case DAMAGED_ANVIL:
388-
case BREWING_STAND:
389302
return PermissableAction.CONTAINER;
390303
default:
391304
return null;
392-
}
393305
}
394306
}
395307

@@ -745,7 +657,11 @@ public void onPlayerInteract(PlayerInteractEvent event) {
745657
Material type;
746658
if (event.getItem() != null) {
747659
// Convert 1.8 Material Names -> 1.14
748-
type = XMaterial.matchXMaterial(event.getItem().getType().toString()).parseMaterial();
660+
try {
661+
type = XMaterial.matchXMaterial(event.getItem().getType().toString()).get().parseMaterial();
662+
} catch (NullPointerException npe) {
663+
type = null;
664+
}
749665
} else {
750666
type = null;
751667
}

src/main/java/com/massivecraft/factions/struct/Relation.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.massivecraft.factions.struct;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.massivecraft.factions.Conf;
45
import com.massivecraft.factions.SavageFactions;
5-
import com.massivecraft.factions.util.XMaterial;
66
import com.massivecraft.factions.zcore.fperms.Permissable;
77
import com.massivecraft.factions.zcore.util.TL;
88
import org.bukkit.ChatColor;
@@ -210,7 +210,7 @@ public ItemStack buildItem() {
210210
String displayName = replacePlaceholders(RELATION_CONFIG.getString("placeholder-item.name", ""));
211211
List<String> lore = new ArrayList<>();
212212

213-
Material material = XMaterial.matchXMaterial(RELATION_CONFIG.getString("materials." + name().toLowerCase())).parseMaterial();
213+
Material material = XMaterial.matchXMaterial(RELATION_CONFIG.getString("materials." + name().toLowerCase())).get().parseMaterial();
214214
if (material == null) {
215215
return null;
216216
}

src/main/java/com/massivecraft/factions/struct/Role.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.massivecraft.factions.struct;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.massivecraft.factions.Conf;
45
import com.massivecraft.factions.SavageFactions;
5-
import com.massivecraft.factions.util.XMaterial;
66
import com.massivecraft.factions.zcore.fperms.Permissable;
77
import com.massivecraft.factions.zcore.util.TL;
88
import org.bukkit.ChatColor;
@@ -118,7 +118,7 @@ public ItemStack buildItem() {
118118
String displayName = replacePlaceholders(RELATION_CONFIG.getString("placeholder-item.name", ""));
119119
List<String> lore = new ArrayList<>();
120120

121-
Material material = XMaterial.matchXMaterial(RELATION_CONFIG.getString("materials." + name().toLowerCase(), "STAINED_CLAY")).parseMaterial();
121+
Material material = XMaterial.matchXMaterial(RELATION_CONFIG.getString("materials." + name().toLowerCase(), "STAINED_CLAY")).orElse(XMaterial.TERRACOTTA).parseMaterial();
122122
if (material == null) {
123123
return null;
124124
}

src/main/java/com/massivecraft/factions/util/FactionWarpsFrame.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.massivecraft.factions.util;
22

3+
import com.cryptomorin.xseries.XMaterial;
34
import com.github.stefvanschie.inventoryframework.Gui;
45
import com.github.stefvanschie.inventoryframework.GuiItem;
56
import com.github.stefvanschie.inventoryframework.pane.PaginatedPane;
@@ -72,7 +73,7 @@ public void buildGUI(final FPlayer fplayer) {
7273

7374
private ItemStack buildWarpAsset(final Map.Entry<String, LazyLocation> warp, final Faction faction) {
7475
final ConfigurationSection config = this.section.getConfigurationSection("warp-item");
75-
final ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).parseItem();
76+
final ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).get().parseItem();
7677
final ItemMeta meta = item.getItemMeta();
7778
if (meta != null) {
7879
meta.setLore(SavageFactions.plugin.colorList(SavageFactions.plugin.replacePlaceholders(config.getStringList("Lore"), new Placeholder("{warp-protected}", faction.hasWarpPassword(warp.getKey()) ? "Enabled" : "Disabled"), new Placeholder("{warp-cost}", SavageFactions.plugin.getConfig().getBoolean("warp-cost.enabled", false) ? Integer.toString(SavageFactions.plugin.getConfig().getInt("warp-cost.warp", 5)) : "Disabled"))));
@@ -84,7 +85,7 @@ private ItemStack buildWarpAsset(final Map.Entry<String, LazyLocation> warp, fin
8485

8586
private ItemStack buildDummyItem() {
8687
final ConfigurationSection config = this.section.getConfigurationSection("dummy-item");
87-
final ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).parseItem();
88+
final ItemStack item = XMaterial.matchXMaterial(config.getString("Type")).get().parseItem();
8889
final ItemMeta meta = item.getItemMeta();
8990
if (meta != null) {
9091
meta.setLore(SavageFactions.plugin.colorList(config.getStringList("Lore")));

src/main/java/com/massivecraft/factions/util/Particles/ParticleEffect.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.massivecraft.factions.util.Particles;
22

3-
import com.massivecraft.factions.util.XMaterial;
3+
import com.cryptomorin.xseries.XMaterial;
44
import org.bukkit.Bukkit;
55
import org.bukkit.Color;
66
import org.bukkit.Location;

0 commit comments

Comments
 (0)