1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

[CI skip] Refactoring

This commit is contained in:
TheBusyBiscuit 2021-01-12 19:28:12 +01:00
parent 3f5fb7c7a7
commit ec8eed58f9
18 changed files with 332 additions and 285 deletions

19
pom.xml
View File

@ -9,10 +9,11 @@
<!-- Our default version will be UNOFFICIAL, this will prevent auto updates -->
<!-- from overriding our local test file -->
<version>4.8-UNOFFICIAL</version>
<version>4.9-UNOFFICIAL</version>
<inceptionYear>2013</inceptionYear>
<packaging>jar</packaging>
<!-- Project Info -->
<description>Slimefun is a Spigot/Paper plugin that simulates a modpack-like atmosphere by adding over 500 new items and recipes to your Minecraft Server.</description>
<url>https://github.com/Slimefun/Slimefun4</url>
@ -33,11 +34,13 @@
<sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
</properties>
<!-- Bug Tracker -->
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/Slimefun/Slimefun4/issues</url>
</issueManagement>
<!-- License -->
<licenses>
<license>
<name>GNU General Public License v3.0</name>
@ -46,6 +49,7 @@
</license>
</licenses>
<!-- The repositories which host our dependencies -->
<repositories>
<repository>
<id>spigot-repo</id>
@ -77,11 +81,13 @@
</repository>
</repositories>
<!-- Build settings -->
<build>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<defaultGoal>clean package</defaultGoal>
<!-- The name of the final jar -->
<finalName>${project.name} v${project.version}</finalName>
<plugins>
@ -104,6 +110,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
@ -119,6 +126,11 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<!-- Sonarcloud Scanner -->
@ -137,6 +149,7 @@
<executions>
<execution>
<id>prepare</id>
<goals>
<goal>prepare-agent</goal>
</goals>
@ -145,6 +158,7 @@
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
@ -159,8 +173,7 @@
<version>3.2.4</version>
<configuration>
<!-- Shade dependencies into the output jar -->
<!-- Relocate these to avoid clashes and conflicts -->
<relocations>
<relocation>
<pattern>io.github.thebusybiscuit.cscorelib2</pattern>

View File

@ -35,6 +35,9 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
* an {@link ErrorReport} instead.
* Error reports get saved in the plugin folder.
*
* @param <T>
* The type of {@link Throwable} which has spawned this {@link ErrorReport}
*
* @author TheBusyBiscuit
*
*/
@ -222,6 +225,16 @@ public class ErrorReport<T extends Throwable> {
return newFile;
}
/**
* This helper method wraps the given {@link Runnable} into a try-catch block.
* When an {@link Exception} occurs, a new {@link ErrorReport} will be generated using
* the provided {@link Function}.
*
* @param function
* The {@link Function} to generate a new {@link ErrorReport}
* @param runnable
* The code to execute
*/
public static void tryCatch(@Nonnull Function<Exception, ErrorReport<Exception>> function, @Nonnull Runnable runnable) {
try {
runnable.run();

View File

@ -34,10 +34,10 @@ public class AncientAltarCraftEvent extends PlayerEvent implements Cancellable {
private boolean cancelled;
/**
* @param block
* The altar {@link Block}
* @param output
* The {@link ItemStack} that would be dropped by the ritual
* @param block
* The altar {@link Block}
* @param player
* The {@link Player} that started the ritual.
*/

View File

@ -12,6 +12,9 @@ import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting;
* This variation of {@link ItemSetting} allows you to allow {@link Enum} constants to be
* used for {@link ItemSetting} validation.
*
* @param <T>
* The {@link Enum} type
*
* @author TheBusyBiscuit
*
* @see ItemSetting
@ -41,6 +44,7 @@ public class EnumSetting<T extends Enum<T>> extends ItemSetting<String> {
*
* @return An array of allowed {@link Enum} constants
*/
@Nonnull
public T[] getAllowedValues() {
return enumClass.getEnumConstants();
}
@ -50,6 +54,7 @@ public class EnumSetting<T extends Enum<T>> extends ItemSetting<String> {
*
* @return The value as an {@link Enum} constant
*/
@Nonnull
public T getAsEnumConstant() {
return Enum.valueOf(enumClass, getValue());
}

View File

@ -140,6 +140,7 @@ public final class SlimefunRegistry {
automaticallyLoadItems = mode;
}
@Nonnull
public List<Category> getCategories() {
return categories;
}
@ -149,6 +150,7 @@ public final class SlimefunRegistry {
*
* @return A {@link List} containing every {@link SlimefunItem}
*/
@Nonnull
public List<SlimefunItem> getAllSlimefunItems() {
return slimefunItems;
}
@ -158,18 +160,22 @@ public final class SlimefunRegistry {
*
* @return A {@link List} containing every enabled {@link SlimefunItem}
*/
@Nonnull
public List<SlimefunItem> getEnabledSlimefunItems() {
return enabledItems;
}
@Nonnull
public List<Research> getResearches() {
return researches;
}
@Nonnull
public Set<UUID> getCurrentlyResearchingPlayers() {
return researchingPlayers;
}
@Nonnull
public List<String> getResearchRanks() {
return researchRanks;
}
@ -194,6 +200,7 @@ public final class SlimefunRegistry {
return researchFireworks;
}
@Nonnull
public List<MultiBlock> getMultiBlocks() {
return multiblocks;
}
@ -226,6 +233,7 @@ public final class SlimefunRegistry {
*
* @return The {@link Map} of custom mob drops
*/
@Nonnull
public Map<EntityType, Set<ItemStack>> getMobDrops() {
return mobDrops;
}
@ -236,50 +244,62 @@ public final class SlimefunRegistry {
*
* @return A {@link Set} of bartering drops
*/
@Nonnull
public Set<ItemStack> getBarteringDrops() {
return barterDrops;
}
@Nonnull
public Set<SlimefunItem> getRadioactiveItems() {
return radioactive;
}
@Nonnull
public Set<String> getTickerBlocks() {
return tickers;
}
@Nonnull
public Map<String, SlimefunItem> getSlimefunItemIds() {
return slimefunIds;
}
@Nonnull
public Map<String, BlockMenuPreset> getMenuPresets() {
return blockMenuPresets;
}
@Nonnull
public Map<String, UniversalBlockMenu> getUniversalInventories() {
return universalInventories;
}
@Nonnull
public Map<UUID, PlayerProfile> getPlayerProfiles() {
return profiles;
}
@Nonnull
public Map<Class<? extends ItemHandler>, Set<ItemHandler>> getPublicItemHandlers() {
return globalItemHandlers;
}
@Nonnull
public Map<String, SlimefunBlockHandler> getBlockHandlers() {
return blockHandlers;
}
@Nonnull
public Map<String, BlockStorage> getWorlds() {
return worlds;
}
@Nonnull
public Map<String, BlockInfoConfig> getChunks() {
return chunks;
}
@Nonnull
public KeyMap<GEOResource> getGEOResources() {
return geoResources;
}

View File

@ -68,7 +68,7 @@ public abstract class FlexCategory extends Category {
@Override
public final boolean isHidden(@Nonnull Player p) {
/**
/*
* We can stop this method right here.
* We provide a custom method with more parameters for this.
* See isVisible(...)

View File

@ -149,12 +149,13 @@ public class LockedCategory extends Category {
* The {@link Player} to check
* @param profile
* The {@link PlayerProfile} that belongs to the given {@link Player}
*
* @return Whether the {@link Player} has fully completed all parent categories, otherwise false
*/
public boolean hasUnlocked(@Nonnull Player p, @Nonnull PlayerProfile profile) {
for (Category category : parents) {
for (SlimefunItem item : category.getItems()) {
/**
/*
* Should probably be replaced with Slimefun.hasUnlocked(...)
* However this will result in better performance because we don't
* request the PlayerProfile everytime

View File

@ -19,7 +19,7 @@ class GuideCommand extends SubCommand {
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender.hasPermission("slimefun.command.guide")) {
SlimefunGuideMode design = SlimefunGuide.getDefaultLayout();
SlimefunGuideMode design = SlimefunGuide.getDefaultMode();
((Player) sender).getInventory().addItem(SlimefunGuide.getItem(design).clone());
} else {
SlimefunPlugin.getLocalization().sendMessage(sender, "messages.no-permission", true);

View File

@ -9,6 +9,7 @@ import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile;
import io.github.thebusybiscuit.slimefun4.core.commands.SlimefunCommand;
import io.github.thebusybiscuit.slimefun4.core.commands.SubCommand;
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuide;
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideMode;
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
class SearchCommand extends SubCommand {
@ -23,7 +24,7 @@ class SearchCommand extends SubCommand {
if (sender.hasPermission("slimefun.command.search")) {
if (args.length > 1) {
String query = String.join(" ", Arrays.copyOfRange(args, 1, args.length));
PlayerProfile.get((Player) sender, profile -> SlimefunGuide.openSearch(profile, query, true, true));
PlayerProfile.get((Player) sender, profile -> SlimefunGuide.openSearch(profile, query, SlimefunGuideMode.SURVIVAL_MODE, true));
} else {
SlimefunPlugin.getLocalization().sendMessage(sender, "messages.usage", true, msg -> msg.replace("%usage%", "/sf search <SearchTerm>"));
}

View File

@ -71,31 +71,26 @@ public final class SlimefunGuide {
}
@ParametersAreNonnullByDefault
private static void openMainMenuAsync(Player player, SlimefunGuideMode layout, int selectedPage) {
if (!PlayerProfile.get(player, profile -> SlimefunPlugin.runSync(() -> openMainMenu(profile, layout, selectedPage)))) {
private static void openMainMenuAsync(Player player, SlimefunGuideMode mode, int selectedPage) {
if (!PlayerProfile.get(player, profile -> SlimefunPlugin.runSync(() -> openMainMenu(profile, mode, selectedPage)))) {
SlimefunPlugin.getLocalization().sendMessage(player, "messages.opening-guide");
}
}
@ParametersAreNonnullByDefault
public static void openMainMenu(PlayerProfile profile, SlimefunGuideMode layout, int selectedPage) {
SlimefunPlugin.getRegistry().getSlimefunGuide(layout).openMainMenu(profile, selectedPage);
public static void openMainMenu(PlayerProfile profile, SlimefunGuideMode mode, int selectedPage) {
SlimefunPlugin.getRegistry().getSlimefunGuide(mode).openMainMenu(profile, selectedPage);
}
@ParametersAreNonnullByDefault
public static void openCategory(PlayerProfile profile, Category category, SlimefunGuideMode layout, int selectedPage) {
SlimefunPlugin.getRegistry().getSlimefunGuide(layout).openCategory(profile, category, selectedPage);
public static void openCategory(PlayerProfile profile, Category category, SlimefunGuideMode mode, int selectedPage) {
SlimefunPlugin.getRegistry().getSlimefunGuide(mode).openCategory(profile, category, selectedPage);
}
@ParametersAreNonnullByDefault
public static void openSearch(PlayerProfile profile, String input, boolean survival, boolean addToHistory) {
SlimefunGuideImplementation layout = SlimefunPlugin.getRegistry().getSlimefunGuide(SlimefunGuideMode.SURVIVAL_MODE);
if (!survival) {
layout = SlimefunPlugin.getRegistry().getSlimefunGuide(SlimefunGuideMode.CHEAT_MODE);
}
layout.openSearch(profile, input, addToHistory);
public static void openSearch(PlayerProfile profile, String input, SlimefunGuideMode mode, boolean addToHistory) {
SlimefunGuideImplementation guide = SlimefunPlugin.getRegistry().getSlimefunGuide(mode);
guide.openSearch(profile, input, addToHistory);
}
@ParametersAreNonnullByDefault
@ -127,13 +122,13 @@ public final class SlimefunGuide {
}
/**
* Get the default layout for the Slimefun guide.
* Get the default mode for the Slimefun guide.
* Currently this is only {@link SlimefunGuideMode#SURVIVAL_MODE}.
*
* @return The default {@link SlimefunGuideLayout}.
* @return The default {@link SlimefunGuideMode}.
*/
@Nonnull
public static SlimefunGuideMode getDefaultLayout() {
public static SlimefunGuideMode getDefaultMode() {
return SlimefunGuideMode.SURVIVAL_MODE;
}
}

View File

@ -570,7 +570,7 @@ public class SurvivalSlimefunGuide implements SlimefunGuideImplementation {
pl.closeInventory();
SlimefunPlugin.getLocalization().sendMessage(pl, "guide.search.message");
ChatInput.waitForPlayer(SlimefunPlugin.instance(), pl, msg -> SlimefunGuide.openSearch(profile, msg, isSurvivalMode(), isSurvivalMode()));
ChatInput.waitForPlayer(SlimefunPlugin.instance(), pl, msg -> SlimefunGuide.openSearch(profile, msg, getMode(), isSurvivalMode()));
return false;
});

View File

@ -105,7 +105,6 @@ public class StomperBoots extends SlimefunItem {
* @return If the entity can move.
*/
protected boolean canPush(@Nonnull Player player, @Nonnull LivingEntity entity) {
return entity.isValid() && !entity.getUniqueId().equals(player.getUniqueId())
&& entity.isCollidable() && entity.hasGravity();
return entity.isValid() && !entity.getUniqueId().equals(player.getUniqueId()) && entity.isCollidable() && entity.hasGravity();
}
}

View File

@ -52,8 +52,7 @@ public class MultiTool extends SlimefunItem implements Rechargeable {
if (index >= modes.size()) {
index = 0;
}
}
while (index != i && !modes.get(index).isEnabled());
} while (index != i && !modes.get(index).isEnabled());
return index;
}

View File

@ -67,12 +67,13 @@ public class BlockListener implements Listener {
SlimefunItem sfItem = BlockStorage.check(block);
if (sfItem != null) {
/* Temp fix for #2636
for (ItemStack item : sfItem.getDrops()) {
if (item != null && !item.getType().isAir()) {
block.getWorld().dropItemNaturally(block.getLocation(), item);
}
}
/*
* Temp fix for #2636
* for (ItemStack item : sfItem.getDrops()) {
* if (item != null && !item.getType().isAir()) {
* block.getWorld().dropItemNaturally(block.getLocation(), item);
* }
* }
*/
BlockStorage.clearBlockInfo(block);
}

View File

@ -38,7 +38,7 @@ public class SlimefunGuideListener implements Listener {
return;
}
SlimefunGuideMode type = SlimefunGuide.getDefaultLayout();
SlimefunGuideMode type = SlimefunGuide.getDefaultMode();
p.getInventory().addItem(SlimefunGuide.getItem(type).clone());
}
}

View File

@ -62,7 +62,7 @@ public enum SlimefunTag implements Tag<Material> {
* All command block variants
*/
COMMAND_BLOCKS,
/**
* All variants of Spawn Eggs
*/

View File

@ -1,247 +1,247 @@
{
"GOLD_PAN" : "Gold-Pan",
"SIFTED_ORE" : "Sifted-Ore",
"SMELTERY" : "Smeltery",
"DIET_COOKIE" : "Diet-Cookie",
"ENHANCED_CRAFTING_TABLE" : "Enhanced-Crafting-Table",
"FORTUNE_COOKIE" : "Fortune-Cookie",
"TABLE_SAW" : "Table-Saw",
"APPLE_JUICE" : "Juices",
"GOLDEN_APPLE_JUICE" : "Juices",
"CARROT_JUICE" : "Juices",
"MELON_JUICE" : "Juices",
"PUMPKIN_JUICE" : "Juices",
"SWEET_BERRY_JUICE" : "Juices",
"MAGIC_SUGAR" : "Magic-Sugar",
"MONSTER_JERKY" : "Monster-Jerky",
"OUTPUT_CHEST" : "Output-Chest",
"BEEF_JERKY" : "Meat-Jerky",
"PORK_JERKY" : "Meat-Jerky",
"CHICKEN_JERKY" : "Meat-Jerky",
"MUTTON_JERKY" : "Meat-Jerky",
"RABBIT_JERKY" : "Meat-Jerky",
"FISH_JERKY" : "Meat-Jerky",
"KELP_COOKIE" : "Kelp-Cookie",
"ANCIENT_ALTAR" : "Ancient-Altar",
"ANCIENT_PEDESTAL" : "Ancient-Pedestal",
"BLADE_OF_VAMPIRES" : "Blade-of-Vampires",
"BROKEN_SPAWNER" : "Broken-Spawner",
"REPAIRED_SPAWNER" : "Reinforced-Spawner",
"NETHER_GOLD_PAN" : "Nether-Gold-Pan",
"PICKAXE_OF_CONTAINMENT" : "Pickaxe-of-Containment",
"SEISMIC_AXE" : "Seismic-Axe",
"SMELTERS_PICKAXE" : "Smelter's-Pickaxe",
"MAGNET" : "Magnet",
"BASIC_CIRCUIT_BOARD" : "Circuit-Boards",
"ADVANCED_CIRCUIT_BOARD" : "Circuit-Boards",
"BATTERY" : "Battery",
"STEEL_THRUSTER" : "Steel-Thruster",
"POWER_CRYSTAL" : "Power-Crystal",
"SOLAR_PANEL" : "Solar-Panel",
"ELECTRO_MAGNET" : "Electromagnet",
"ELECTRIC_MOTOR" : "Electric-Motor",
"HEATING_COIL" : "Heating-Coil",
"COPPER_WIRE" : "Copper-Wire",
"HARDENED_GLASS" : "Hardened-Glass",
"COOLING_UNIT" : "Cooling-Unit",
"WITHER_PROOF_OBSIDIAN" : "Wither-Proof-Blocks",
"WITHER_PROOF_GLASS" : "Wither-Proof-Blocks",
"REACTOR_COOLANT_CELL" : "Coolant-Cells",
"NETHER_ICE_COOLANT_CELL" : "Coolant-Cells",
"IRON_DUST" : "Iron-Dust",
"GOLD_DUST" : "Gold-Dust",
"GOLD_4K" : "Gold-Ingot",
"GOLD_6K" : "Gold-Ingot",
"GOLD_8K" : "Gold-Ingot",
"GOLD_10K" : "Gold-Ingot",
"GOLD_12K" : "Gold-Ingot",
"GOLD_14K" : "Gold-Ingot",
"GOLD_16K" : "Gold-Ingot",
"GOLD_18K" : "Gold-Ingot",
"GOLD_20K" : "Gold-Ingot",
"GOLD_22K" : "Gold-Ingot",
"GOLD_24K" : "Gold-Ingot",
"ENERGY_REGULATOR" : "Energy-Regulator",
"SMALL_CAPACITOR" : "Energy-Capacitors",
"MEDIUM_CAPACITOR" : "Energy-Capacitors",
"BIG_CAPACITOR" : "Energy-Capacitors",
"LARGE_CAPACITOR" : "Energy-Capacitors",
"CARBONADO_EDGED_CAPACITOR" : "Energy-Capacitors",
"SOLAR_GENERATOR" : "Solar-Generator",
"SOLAR_GENERATOR_2" : "Solar-Generator",
"SOLAR_GENERATOR_3" : "Solar-Generator",
"SOLAR_GENERATOR_4" : "Solar-Generator",
"COAL_GENERATOR" : "Coal-Generator",
"COAL_GENERATOR_2" : "Coal-Generator",
"COBALT_PICKAXE" : "Cobalt-Pickaxe",
"EXPLOSIVE_PICKAXE" : "Explosive-Pickaxe",
"EXPLOSIVE_SHOVEL" : "Explosive-Shovel",
"GRAPPLING_HOOK" : "Grappling-Hook",
"HERCULES_PICKAXE" : "Hercules'-Pickaxe",
"LUMBER_AXE" : "Lumber-Axe",
"PICKAXE_OF_VEIN_MINING" : "Pickaxe-of-Vein-Mining",
"PICKAXE_OF_THE_SEEKER" : "Pickaxe-of-the-Seeker",
"CARGO_OUTPUT_ADVANCED" : "Advanced-Output-Node",
"CARGO_MANAGER" : "Cargo-Manager",
"CARGO_MOTOR" : "Cargo-Motor",
"CARGO_NODE" : "Connector-Node",
"CARGO_INPUT" : "Input-Node",
"CARGO_OUTPUT" : "Output-Node",
"TRASH_CAN" : "Trash-Can",
"ORE_WASHER" : "Ore-Washer",
"SCUBA_HELMET" : "Hazmat-Suit",
"HAZMAT_CHESTPLATE" : "Hazmat-Suit",
"HAZMAT_LEGGINGS" : "Hazmat-Suit",
"RUBBER_BOOTS" : "Hazmat-Suit",
"ARMOR_FORGE" : "Armor-Forge",
"AUTOMATED_PANNING_MACHINE" : "Automated-Panning-Machine",
"COMPRESSOR" : "Compressor",
"ORE_CRUSHER" : "Ore-Crusher",
"PRESSURE_CHAMBER" : "Pressure-Chamber",
"GRIND_STONE" : "Grind-Stone",
"MAGIC_WORKBENCH" : "Magic-Workbench",
"PORTABLE_CRAFTER" : "Portable-Crafter",
"PORTABLE_DUSTBIN" : "Portable-Dustbin",
"COOLER" : "Cooler",
"ALUMINUM_BRASS_INGOT" : "Aluminum-Brass-Ingot",
"ALUMINUM_BRONZE_INGOT" : "Aluminum-Bronze-Ingot",
"ALUMINUM_DUST" : "Aluminum-Dust",
"ALUMINUM_INGOT" : "Aluminum-Ingot",
"GLOWSTONE_HELMET" : "Magical-Armor",
"GLOWSTONE_CHESTPLATE" : "Magical-Armor",
"GLOWSTONE_LEGGINGS" : "Magical-Armor",
"GLOWSTONE_BOOTS" : "Magical-Armor",
"ENDER_HELMET" : "Magical-Armor",
"ENDER_CHESTPLATE" : "Magical-Armor",
"ENDER_LEGGINGS" : "Magical-Armor",
"ENDER_BOOTS" : "Magical-Armor",
"SLIME_HELMET" : "Magical-Armor",
"SLIME_CHESTPLATE" : "Magical-Armor",
"SLIME_LEGGINGS" : "Magical-Armor",
"SLIME_BOOTS" : "Magical-Armor",
"CACTUS_HELMET" : "Armor",
"CACTUS_CHESTPLATE" : "Armor",
"CACTUS_LEGGINGS" : "Armor",
"CACTUS_BOOTS" : "Armor",
"DAMASCUS_STEEL_HELMET" : "Armor",
"DAMASCUS_STEEL_CHESTPLATE" : "Armor",
"DAMASCUS_STEEL_LEGGINGS" : "Armor",
"DAMASCUS_STEEL_BOOTS" : "Armor",
"REINFORCED_ALLOY_HELMET" : "Armor",
"REINFORCED_ALLOY_CHESTPLATE" : "Armor",
"REINFORCED_ALLOY_LEGGINGS" : "Armor",
"REINFORCED_ALLOY_BOOTS" : "Armor",
"GILDED_IRON_HELMET" : "Armor",
"GILDED_IRON_CHESTPLATE" : "Armor",
"GILDED_IRON_LEGGINGS" : "Armor",
"GILDED_IRON_BOOTS" : "Armor",
"GOLD_12K_HELMET" : "Armor",
"GOLD_12K_CHESTPLATE" : "Armor",
"GOLD_12K_LEGGINGS" : "Armor",
"GOLD_12K_BOOTS" : "Armor",
"SLIME_STEEL_HELMET" : "Magical-Armor",
"SLIME_STEEL_CHESTPLATE" : "Magical-Armor",
"SLIME_STEEL_LEGGINGS" : "Magical-Armor",
"SLIME_STEEL_BOOTS" : "Magical-Armor",
"BILLON_INGOT" : "Billon-Ingot",
"BLOCK_PLACER" : "Block-Placer",
"EXPLOSIVE_BOW" : "Bows",
"ICY_BOW" : "Bows",
"BRASS_INGOT" : "Brass-Ingot",
"BRONZE_INGOT" : "Bronze-Ingot",
"CHRISTMAS_MILK" : "Christmas-Items",
"CHRISTMAS_CHOCOLATE_MILK" : "Christmas-Items",
"CHRISTMAS_EGG_NOG" : "Christmas-Items",
"CHRISTMAS_APPLE_CIDER" : "Christmas-Items",
"CHRISTMAS_COOKIE" : "Christmas-Items",
"CHRISTMAS_FRUIT_CAKE" : "Christmas-Items",
"CHRISTMAS_APPLE_PIE" : "Christmas-Items",
"CHRISTMAS_HOT_CHOCOLATE" : "Christmas-Items",
"CHRISTMAS_CAKE" : "Christmas-Items",
"CHRISTMAS_CARAMEL" : "Christmas-Items",
"CHRISTMAS_CARAMEL_APPLE" : "Christmas-Items",
"CHRISTMAS_CHOCOLATE_APPLE" : "Christmas-Items",
"CHRISTMAS_PRESENT" : "Christmas-Items",
"RAINBOW_WOOL_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_GLASS_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_CLAY_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_GLASS_PANE_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_CONCRETE_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_GLAZED_TERRACOTTA_XMAS" : "Christmas-Seasonal-Category",
"COBALT_INGOT" : "Cobalt-Ingot",
"COPPER_DUST" : "Copper-Dust",
"COPPER_INGOT" : "Copper-Ingot",
"CORINTHIAN_BRONZE_INGOT" : "Corinthian-Bronze-Ingot",
"DAMASCUS_STEEL_INGOT" : "Damascus-Steel-Ingot",
"DURALUMIN_INGOT" : "Duralumin-Ingot",
"ELEVATOR_PLATE" : "Elevator-Plate",
"ELYTRA_SCALE" : "Elytras",
"INFUSED_ELYTRA" : "Elytras",
"SOULBOUND_ELYTRA" : "Elytras",
"ENHANCED_FURNACE" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_2" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_3" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_4" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_5" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_6" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_7" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_8" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_9" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_10" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_11" : "Enhanced-Furnaces",
"REINFORCED_FURNACE" : "Enhanced-Furnaces",
"CARBONADO_EDGED_FURNACE" : "Enhanced-Furnaces",
"FERROSILICON" : "Ferrosilicon",
"GEO_MINER" : "GEO-Miner",
"GPS_ACTIVATION_DEVICE_SHARED" : "GPS-Activation-Device",
"GPS_ACTIVATION_DEVICE_PERSONAL" : "GPS-Activation-Device",
"GPS_CONTROL_PANEL" : "GPS-Control-Panel",
"GPS_EMERGENCY_TRANSMITTER" : "GPS-Emergency-Transmitter",
"GPS_GEO_SCANNER" : "GPS-Geo-Scanner",
"GPS_MARKER_TOOL" : "GPS-Marker-Tool",
"GPS_TELEPORTATION_MATRIX" : "GPS-Teleporter-Matrix",
"GPS_TELEPORTER_PYLON" : "GPS-Teleporter-Pylon",
"GPS_TRANSMITTER" : "GPS-Transmitter",
"GILDED_IRON" : "Gilded-Iron",
"HARDENED_METAL_INGOT" : "Hardened-Metal",
"LEAD_DUST" : "Lead-Dust",
"LEAD_INGOT" : "Lead-Ingot",
"MAGNESIUM_DUST" : "Magnesium-Dust",
"MAGNESIUM_INGOT" : "Magnesium-Ingot",
"NICKEL_INGOT" : "Nickel-Ingot",
"OIL_PUMP" : "Oil-Pump",
"PORTABLE_GEO_SCANNER" : "Portable-Geo-Scanner",
"RAINBOW_WOOL" : "Rainbow-Blocks",
"RAINBOW_GLASS" : "Rainbow-Blocks",
"RAINBOW_CLAY" : "Rainbow-Blocks",
"RAINBOW_GLASS_PANE" : "Rainbow-Blocks",
"RAINBOW_CONCRETE" : "Rainbow-Blocks",
"RAINBOW_GLAZED_TERRACOTTA" : "Rainbow-Blocks",
"REDSTONE_ALLOY" : "Redstone-Alloy-Ingot",
"REINFORCED_ALLOY_INGOT" : "Reinforced-Alloy-Ingot",
"SILVER_DUST" : "Silver-Dust",
"SILVER_INGOT" : "Silver-Ingot",
"SOLDER_INGOT" : "Solder-Ingot",
"SOULBOUND_HELMET" : "Soulbound-Armor",
"SOULBOUND_CHESTPLATE" : "Soulbound-Armor",
"SOULBOUND_LEGGINGS" : "Soulbound-Armor",
"SOULBOUND_BOOTS" : "Soulbound-Armor",
"ANCIENT_RUNE_SOULBOUND" : "Soulbound-Rune",
"SOULBOUND_SWORD" : "Soulbound-Weapons",
"SOULBOUND_BOW" : "Soulbound-Weapons",
"SOULBOUND_PICKAXE" : "Soulbound-Weapons",
"SOULBOUND_AXE" : "Soulbound-Weapons",
"SOULBOUND_SHOVEL" : "Soulbound-Weapons",
"SOULBOUND_HOE" : "Soulbound-Weapons",
"SOULBOUND_TRIDENT" : "Soulbound-Weapons",
"STEEL_INGOT" : "Steel-Ingot",
"SWORD_OF_BEHEADING" : "Sword-of-Beheading",
"COMMON_TALISMAN" : "Talismans",
"ENDER_TALISMAN" : "Talismans",
"TIN_DUST" : "Tin-Dust",
"TIN_INGOT" : "Tin-Ingot",
"GRANDMAS_WALKING_STICK" : "Walking-Sticks",
"GRANDPAS_WALKING_STICK" : "Walking-Sticks",
"ZINC_DUST" : "Zinc-Dust",
"ZINC_INGOT" : "Zinc-Ingot"
"GOLD_PAN" : "Gold-Pan",
"SIFTED_ORE" : "Sifted-Ore",
"SMELTERY" : "Smeltery",
"DIET_COOKIE" : "Diet-Cookie",
"ENHANCED_CRAFTING_TABLE" : "Enhanced-Crafting-Table",
"FORTUNE_COOKIE" : "Fortune-Cookie",
"TABLE_SAW" : "Table-Saw",
"APPLE_JUICE" : "Juices",
"GOLDEN_APPLE_JUICE" : "Juices",
"CARROT_JUICE" : "Juices",
"MELON_JUICE" : "Juices",
"PUMPKIN_JUICE" : "Juices",
"SWEET_BERRY_JUICE" : "Juices",
"MAGIC_SUGAR" : "Magic-Sugar",
"MONSTER_JERKY" : "Monster-Jerky",
"OUTPUT_CHEST" : "Output-Chest",
"BEEF_JERKY" : "Meat-Jerky",
"PORK_JERKY" : "Meat-Jerky",
"CHICKEN_JERKY" : "Meat-Jerky",
"MUTTON_JERKY" : "Meat-Jerky",
"RABBIT_JERKY" : "Meat-Jerky",
"FISH_JERKY" : "Meat-Jerky",
"KELP_COOKIE" : "Kelp-Cookie",
"ANCIENT_ALTAR" : "Ancient-Altar",
"ANCIENT_PEDESTAL" : "Ancient-Pedestal",
"BLADE_OF_VAMPIRES" : "Blade-of-Vampires",
"BROKEN_SPAWNER" : "Broken-Spawner",
"REPAIRED_SPAWNER" : "Reinforced-Spawner",
"NETHER_GOLD_PAN" : "Nether-Gold-Pan",
"PICKAXE_OF_CONTAINMENT" : "Pickaxe-of-Containment",
"SEISMIC_AXE" : "Seismic-Axe",
"SMELTERS_PICKAXE" : "Smelter's-Pickaxe",
"MAGNET" : "Magnet",
"BASIC_CIRCUIT_BOARD" : "Circuit-Boards",
"ADVANCED_CIRCUIT_BOARD" : "Circuit-Boards",
"BATTERY" : "Battery",
"STEEL_THRUSTER" : "Steel-Thruster",
"POWER_CRYSTAL" : "Power-Crystal",
"SOLAR_PANEL" : "Solar-Panel",
"ELECTRO_MAGNET" : "Electromagnet",
"ELECTRIC_MOTOR" : "Electric-Motor",
"HEATING_COIL" : "Heating-Coil",
"COPPER_WIRE" : "Copper-Wire",
"HARDENED_GLASS" : "Hardened-Glass",
"COOLING_UNIT" : "Cooling-Unit",
"WITHER_PROOF_OBSIDIAN" : "Wither-Proof-Blocks",
"WITHER_PROOF_GLASS" : "Wither-Proof-Blocks",
"REACTOR_COOLANT_CELL" : "Coolant-Cells",
"NETHER_ICE_COOLANT_CELL" : "Coolant-Cells",
"IRON_DUST" : "Iron-Dust",
"GOLD_DUST" : "Gold-Dust",
"GOLD_4K" : "Gold-Ingot",
"GOLD_6K" : "Gold-Ingot",
"GOLD_8K" : "Gold-Ingot",
"GOLD_10K" : "Gold-Ingot",
"GOLD_12K" : "Gold-Ingot",
"GOLD_14K" : "Gold-Ingot",
"GOLD_16K" : "Gold-Ingot",
"GOLD_18K" : "Gold-Ingot",
"GOLD_20K" : "Gold-Ingot",
"GOLD_22K" : "Gold-Ingot",
"GOLD_24K" : "Gold-Ingot",
"ENERGY_REGULATOR" : "Energy-Regulator",
"SMALL_CAPACITOR" : "Energy-Capacitors",
"MEDIUM_CAPACITOR" : "Energy-Capacitors",
"BIG_CAPACITOR" : "Energy-Capacitors",
"LARGE_CAPACITOR" : "Energy-Capacitors",
"CARBONADO_EDGED_CAPACITOR" : "Energy-Capacitors",
"SOLAR_GENERATOR" : "Solar-Generator",
"SOLAR_GENERATOR_2" : "Solar-Generator",
"SOLAR_GENERATOR_3" : "Solar-Generator",
"SOLAR_GENERATOR_4" : "Solar-Generator",
"COAL_GENERATOR" : "Coal-Generator",
"COAL_GENERATOR_2" : "Coal-Generator",
"COBALT_PICKAXE" : "Cobalt-Pickaxe",
"EXPLOSIVE_PICKAXE" : "Explosive-Pickaxe",
"EXPLOSIVE_SHOVEL" : "Explosive-Shovel",
"GRAPPLING_HOOK" : "Grappling-Hook",
"HERCULES_PICKAXE" : "Hercules'-Pickaxe",
"LUMBER_AXE" : "Lumber-Axe",
"PICKAXE_OF_VEIN_MINING" : "Pickaxe-of-Vein-Mining",
"PICKAXE_OF_THE_SEEKER" : "Pickaxe-of-the-Seeker",
"CARGO_OUTPUT_ADVANCED" : "Advanced-Output-Node",
"CARGO_MANAGER" : "Cargo-Manager",
"CARGO_MOTOR" : "Cargo-Motor",
"CARGO_NODE" : "Connector-Node",
"CARGO_INPUT" : "Input-Node",
"CARGO_OUTPUT" : "Output-Node",
"TRASH_CAN" : "Trash-Can",
"ORE_WASHER" : "Ore-Washer",
"SCUBA_HELMET" : "Hazmat-Suit",
"HAZMAT_CHESTPLATE" : "Hazmat-Suit",
"HAZMAT_LEGGINGS" : "Hazmat-Suit",
"RUBBER_BOOTS" : "Hazmat-Suit",
"ARMOR_FORGE" : "Armor-Forge",
"AUTOMATED_PANNING_MACHINE" : "Automated-Panning-Machine",
"COMPRESSOR" : "Compressor",
"ORE_CRUSHER" : "Ore-Crusher",
"PRESSURE_CHAMBER" : "Pressure-Chamber",
"GRIND_STONE" : "Grind-Stone",
"MAGIC_WORKBENCH" : "Magic-Workbench",
"PORTABLE_CRAFTER" : "Portable-Crafter",
"PORTABLE_DUSTBIN" : "Portable-Dustbin",
"COOLER" : "Cooler",
"ALUMINUM_BRASS_INGOT" : "Aluminum-Brass-Ingot",
"ALUMINUM_BRONZE_INGOT" : "Aluminum-Bronze-Ingot",
"ALUMINUM_DUST" : "Aluminum-Dust",
"ALUMINUM_INGOT" : "Aluminum-Ingot",
"GLOWSTONE_HELMET" : "Magical-Armor",
"GLOWSTONE_CHESTPLATE" : "Magical-Armor",
"GLOWSTONE_LEGGINGS" : "Magical-Armor",
"GLOWSTONE_BOOTS" : "Magical-Armor",
"ENDER_HELMET" : "Magical-Armor",
"ENDER_CHESTPLATE" : "Magical-Armor",
"ENDER_LEGGINGS" : "Magical-Armor",
"ENDER_BOOTS" : "Magical-Armor",
"SLIME_HELMET" : "Magical-Armor",
"SLIME_CHESTPLATE" : "Magical-Armor",
"SLIME_LEGGINGS" : "Magical-Armor",
"SLIME_BOOTS" : "Magical-Armor",
"CACTUS_HELMET" : "Armor",
"CACTUS_CHESTPLATE" : "Armor",
"CACTUS_LEGGINGS" : "Armor",
"CACTUS_BOOTS" : "Armor",
"DAMASCUS_STEEL_HELMET" : "Armor",
"DAMASCUS_STEEL_CHESTPLATE" : "Armor",
"DAMASCUS_STEEL_LEGGINGS" : "Armor",
"DAMASCUS_STEEL_BOOTS" : "Armor",
"REINFORCED_ALLOY_HELMET" : "Armor",
"REINFORCED_ALLOY_CHESTPLATE" : "Armor",
"REINFORCED_ALLOY_LEGGINGS" : "Armor",
"REINFORCED_ALLOY_BOOTS" : "Armor",
"GILDED_IRON_HELMET" : "Armor",
"GILDED_IRON_CHESTPLATE" : "Armor",
"GILDED_IRON_LEGGINGS" : "Armor",
"GILDED_IRON_BOOTS" : "Armor",
"GOLD_12K_HELMET" : "Armor",
"GOLD_12K_CHESTPLATE" : "Armor",
"GOLD_12K_LEGGINGS" : "Armor",
"GOLD_12K_BOOTS" : "Armor",
"SLIME_STEEL_HELMET" : "Magical-Armor",
"SLIME_STEEL_CHESTPLATE" : "Magical-Armor",
"SLIME_STEEL_LEGGINGS" : "Magical-Armor",
"SLIME_STEEL_BOOTS" : "Magical-Armor",
"BILLON_INGOT" : "Billon-Ingot",
"BLOCK_PLACER" : "Block-Placer",
"EXPLOSIVE_BOW" : "Bows",
"ICY_BOW" : "Bows",
"BRASS_INGOT" : "Brass-Ingot",
"BRONZE_INGOT" : "Bronze-Ingot",
"CHRISTMAS_MILK" : "Christmas-Items",
"CHRISTMAS_CHOCOLATE_MILK" : "Christmas-Items",
"CHRISTMAS_EGG_NOG" : "Christmas-Items",
"CHRISTMAS_APPLE_CIDER" : "Christmas-Items",
"CHRISTMAS_COOKIE" : "Christmas-Items",
"CHRISTMAS_FRUIT_CAKE" : "Christmas-Items",
"CHRISTMAS_APPLE_PIE" : "Christmas-Items",
"CHRISTMAS_HOT_CHOCOLATE" : "Christmas-Items",
"CHRISTMAS_CAKE" : "Christmas-Items",
"CHRISTMAS_CARAMEL" : "Christmas-Items",
"CHRISTMAS_CARAMEL_APPLE" : "Christmas-Items",
"CHRISTMAS_CHOCOLATE_APPLE" : "Christmas-Items",
"CHRISTMAS_PRESENT" : "Christmas-Items",
"RAINBOW_WOOL_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_GLASS_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_CLAY_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_GLASS_PANE_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_CONCRETE_XMAS" : "Christmas-Seasonal-Category",
"RAINBOW_GLAZED_TERRACOTTA_XMAS" : "Christmas-Seasonal-Category",
"COBALT_INGOT" : "Cobalt-Ingot",
"COPPER_DUST" : "Copper-Dust",
"COPPER_INGOT" : "Copper-Ingot",
"CORINTHIAN_BRONZE_INGOT" : "Corinthian-Bronze-Ingot",
"DAMASCUS_STEEL_INGOT" : "Damascus-Steel-Ingot",
"DURALUMIN_INGOT" : "Duralumin-Ingot",
"ELEVATOR_PLATE" : "Elevator-Plate",
"ELYTRA_SCALE" : "Elytras",
"INFUSED_ELYTRA" : "Elytras",
"SOULBOUND_ELYTRA" : "Elytras",
"ENHANCED_FURNACE" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_2" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_3" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_4" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_5" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_6" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_7" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_8" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_9" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_10" : "Enhanced-Furnaces",
"ENHANCED_FURNACE_11" : "Enhanced-Furnaces",
"REINFORCED_FURNACE" : "Enhanced-Furnaces",
"CARBONADO_EDGED_FURNACE" : "Enhanced-Furnaces",
"FERROSILICON" : "Ferrosilicon",
"GEO_MINER" : "GEO-Miner",
"GPS_ACTIVATION_DEVICE_SHARED" : "GPS-Activation-Device",
"GPS_ACTIVATION_DEVICE_PERSONAL" : "GPS-Activation-Device",
"GPS_CONTROL_PANEL" : "GPS-Control-Panel",
"GPS_EMERGENCY_TRANSMITTER" : "GPS-Emergency-Transmitter",
"GPS_GEO_SCANNER" : "GPS-Geo-Scanner",
"GPS_MARKER_TOOL" : "GPS-Marker-Tool",
"GPS_TELEPORTATION_MATRIX" : "GPS-Teleporter-Matrix",
"GPS_TELEPORTER_PYLON" : "GPS-Teleporter-Pylon",
"GPS_TRANSMITTER" : "GPS-Transmitter",
"GILDED_IRON" : "Gilded-Iron",
"HARDENED_METAL_INGOT" : "Hardened-Metal",
"LEAD_DUST" : "Lead-Dust",
"LEAD_INGOT" : "Lead-Ingot",
"MAGNESIUM_DUST" : "Magnesium-Dust",
"MAGNESIUM_INGOT" : "Magnesium-Ingot",
"NICKEL_INGOT" : "Nickel-Ingot",
"OIL_PUMP" : "Oil-Pump",
"PORTABLE_GEO_SCANNER" : "Portable-Geo-Scanner",
"RAINBOW_WOOL" : "Rainbow-Blocks",
"RAINBOW_GLASS" : "Rainbow-Blocks",
"RAINBOW_CLAY" : "Rainbow-Blocks",
"RAINBOW_GLASS_PANE" : "Rainbow-Blocks",
"RAINBOW_CONCRETE" : "Rainbow-Blocks",
"RAINBOW_GLAZED_TERRACOTTA" : "Rainbow-Blocks",
"REDSTONE_ALLOY" : "Redstone-Alloy-Ingot",
"REINFORCED_ALLOY_INGOT" : "Reinforced-Alloy-Ingot",
"SILVER_DUST" : "Silver-Dust",
"SILVER_INGOT" : "Silver-Ingot",
"SOLDER_INGOT" : "Solder-Ingot",
"SOULBOUND_HELMET" : "Soulbound-Armor",
"SOULBOUND_CHESTPLATE" : "Soulbound-Armor",
"SOULBOUND_LEGGINGS" : "Soulbound-Armor",
"SOULBOUND_BOOTS" : "Soulbound-Armor",
"ANCIENT_RUNE_SOULBOUND" : "Soulbound-Rune",
"SOULBOUND_SWORD" : "Soulbound-Weapons",
"SOULBOUND_BOW" : "Soulbound-Weapons",
"SOULBOUND_PICKAXE" : "Soulbound-Weapons",
"SOULBOUND_AXE" : "Soulbound-Weapons",
"SOULBOUND_SHOVEL" : "Soulbound-Weapons",
"SOULBOUND_HOE" : "Soulbound-Weapons",
"SOULBOUND_TRIDENT" : "Soulbound-Weapons",
"STEEL_INGOT" : "Steel-Ingot",
"SWORD_OF_BEHEADING" : "Sword-of-Beheading",
"COMMON_TALISMAN" : "Talismans",
"ENDER_TALISMAN" : "Talismans",
"TIN_DUST" : "Tin-Dust",
"TIN_INGOT" : "Tin-Ingot",
"GRANDMAS_WALKING_STICK" : "Walking-Sticks",
"GRANDPAS_WALKING_STICK" : "Walking-Sticks",
"ZINC_DUST" : "Zinc-Dust",
"ZINC_INGOT" : "Zinc-Ingot"
}

View File

@ -51,7 +51,7 @@ class TestSlimefunGuideListener {
PlayerJoinEvent event = new PlayerJoinEvent(player, "CanIHazGuide has joined and wants sum guide");
listener.onJoin(event);
ItemStack guide = SlimefunGuide.getItem(SlimefunGuide.getDefaultLayout());
ItemStack guide = SlimefunGuide.getItem(SlimefunGuide.getDefaultMode());
Assertions.assertEquals(!hasPlayedBefore && giveSlimefunGuide, hasSlimefunGuide(player, guide));
}