From 01954691654452ecce0312a4ce50c4afa280fa96 Mon Sep 17 00:00:00 2001 From: Matt Masters Date: Wed, 1 Feb 2023 10:51:32 -0600 Subject: [PATCH] Update. --- .gitignore | 83 +- build.gradle | 35 + gradlew | 240 +++++ gradlew.bat | 91 ++ pom.xml | 44 - settings.gradle | 5 + src/main/java/dev/coomware/Craftable.java | 982 ------------------ src/main/java/dev/coomware/Uncraftables.java | 35 - .../github/paldiu}/CraftingListener.java | 2 +- .../github/paldiu}/CraftingUtils.java | 14 +- src/main/java/io/github/paldiu/ReloadCMD.java | 30 + .../java/io/github/paldiu/Uncraftables.java | 71 ++ .../io/github/paldiu/config/ConfigValues.java | 79 ++ .../io/github/paldiu/config/YamlWrapper.java | 88 ++ .../github/paldiu/recipes/BarrierRecipe.java | 19 + .../github/paldiu/recipes/BedrockRecipe.java | 24 + .../io/github/paldiu/recipes/BellRecipe.java | 21 + .../io/github/paldiu/recipes/Craftable.java | 29 + .../paldiu/recipes/CryingObsidianRecipe.java | 19 + .../paldiu/recipes/DragonEggRecipe.java | 21 + .../io/github/paldiu/recipes/EggRecipes.java | 666 ++++++++++++ .../github/paldiu/recipes/ElytraRecipe.java | 22 + .../github/paldiu/recipes/EndFrameRecipe.java | 21 + .../paldiu/recipes/HorseArmorRecipe.java | 49 + .../paldiu/recipes/MusicDiscRecipes.java | 133 +++ .../github/paldiu/recipes/NameTagRecipe.java | 20 + .../paldiu/recipes/NetherStarRecipe.java | 22 + .../paldiu/recipes/NetherWartRecipe.java | 18 + .../github/paldiu/recipes/SaddleRecipe.java | 21 + .../github/paldiu/recipes/SpawnerRecipe.java | 19 + .../io/github/paldiu/recipes/TotemRecipe.java | 22 + .../github/paldiu/recipes/TridentRecipe.java | 20 + src/main/resources/config.yml | 17 + src/main/resources/plugin.yml | 20 +- 34 files changed, 1877 insertions(+), 1125 deletions(-) create mode 100644 build.gradle create mode 100644 gradlew create mode 100644 gradlew.bat delete mode 100644 pom.xml create mode 100644 settings.gradle delete mode 100644 src/main/java/dev/coomware/Craftable.java delete mode 100644 src/main/java/dev/coomware/Uncraftables.java rename src/main/java/{dev/coomware => io/github/paldiu}/CraftingListener.java (98%) rename src/main/java/{dev/coomware => io/github/paldiu}/CraftingUtils.java (58%) create mode 100644 src/main/java/io/github/paldiu/ReloadCMD.java create mode 100644 src/main/java/io/github/paldiu/Uncraftables.java create mode 100644 src/main/java/io/github/paldiu/config/ConfigValues.java create mode 100644 src/main/java/io/github/paldiu/config/YamlWrapper.java create mode 100644 src/main/java/io/github/paldiu/recipes/BarrierRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/BedrockRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/BellRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/Craftable.java create mode 100644 src/main/java/io/github/paldiu/recipes/CryingObsidianRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/DragonEggRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/EggRecipes.java create mode 100644 src/main/java/io/github/paldiu/recipes/ElytraRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/EndFrameRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/HorseArmorRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/MusicDiscRecipes.java create mode 100644 src/main/java/io/github/paldiu/recipes/NameTagRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/NetherStarRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/NetherWartRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/SaddleRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/SpawnerRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/TotemRecipe.java create mode 100644 src/main/java/io/github/paldiu/recipes/TridentRecipe.java create mode 100644 src/main/resources/config.yml diff --git a/.gitignore b/.gitignore index 1793cdd..7843022 100644 --- a/.gitignore +++ b/.gitignore @@ -1,54 +1,31 @@ -.gradle/7.5.1/checksums/checksums.lock -.gradle/7.5.1/checksums/md5-checksums.bin -.gradle/7.5.1/checksums/sha1-checksums.bin -.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock -.gradle/7.5.1/dependencies-accessors/gc.properties -.gradle/7.5.1/executionHistory/executionHistory.bin -.gradle/7.5.1/executionHistory/executionHistory.lock -.gradle/7.5.1/fileChanges/last-build.bin -.gradle/7.5.1/fileHashes/fileHashes.bin -.gradle/7.5.1/fileHashes/fileHashes.lock -.gradle/7.5.1/fileHashes/resourceHashesCache.bin -.gradle/7.5.1/gc.properties -.gradle/buildOutputCleanup/buildOutputCleanup.lock -.gradle/buildOutputCleanup/cache.properties -.gradle/buildOutputCleanup/outputFiles.bin -.gradle/vcs-1/gc.properties -.idea/uiDesigner.xml -build/classes/java/main/io/github/paldiu/config/ConfigValues.class -build/classes/java/main/io/github/paldiu/config/YamlWrapper.class -build/classes/java/main/io/github/paldiu/CraftingListener.class -build/classes/java/main/io/github/paldiu/CraftingUtils.class -build/classes/java/main/io/github/paldiu/recipes/BarrierRecipe.class -build/classes/java/main/io/github/paldiu/recipes/BedrockRecipe.class -build/classes/java/main/io/github/paldiu/recipes/BellRecipe.class -build/classes/java/main/io/github/paldiu/recipes/Craftable.class -build/classes/java/main/io/github/paldiu/recipes/CryingObsidianRecipe.class -build/classes/java/main/io/github/paldiu/recipes/DragonEggRecipe.class -build/classes/java/main/io/github/paldiu/recipes/EggRecipes.class -build/classes/java/main/io/github/paldiu/recipes/ElytraRecipe.class -build/classes/java/main/io/github/paldiu/recipes/EndFrameRecipe.class -build/classes/java/main/io/github/paldiu/recipes/HorseArmorRecipe.class -build/classes/java/main/io/github/paldiu/recipes/MusicDiscRecipes.class -build/classes/java/main/io/github/paldiu/recipes/NameTagRecipe.class -build/classes/java/main/io/github/paldiu/recipes/NetherStarRecipe.class -build/classes/java/main/io/github/paldiu/recipes/NetherWartRecipe.class -build/classes/java/main/io/github/paldiu/recipes/SaddleRecipe.class -build/classes/java/main/io/github/paldiu/recipes/SpawnerRecipe.class -build/classes/java/main/io/github/paldiu/recipes/TotemRecipe.class -build/classes/java/main/io/github/paldiu/recipes/TridentRecipe.class -build/classes/java/main/io/github/paldiu/ReloadCMD.class -build/classes/java/main/io/github/paldiu/Uncraftables.class -build/classes/java/main/org/bstats/Metrics$1.class -build/classes/java/main/org/bstats/Metrics$AdvancedBarChart.class -build/classes/java/main/org/bstats/Metrics$AdvancedPie.class -build/classes/java/main/org/bstats/Metrics$CustomChart.class -build/classes/java/main/org/bstats/Metrics$DrilldownPie.class -build/classes/java/main/org/bstats/Metrics$MultiLineChart.class -build/classes/java/main/org/bstats/Metrics$SimpleBarChart.class -build/classes/java/main/org/bstats/Metrics$SimplePie.class -build/classes/java/main/org/bstats/Metrics$SingleLineChart.class -build/classes/java/main/org/bstats/Metrics.class -build/libs/Uncraftables-1.1.0.jar -build/libs/Uncraftables-1.2.0.jar +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + +.gradle/ +.idea/ +gradle/ +*.xml +.idea/inspectionProfiles/Project_Default.xml diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..11df506 --- /dev/null +++ b/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'maven-publish' +} + +repositories { + mavenLocal() + maven { + url = uri('https://papermc.io/repo/repository/maven-public/') + } + + maven { + url = uri('https://repo.maven.apache.org/maven2/') + } +} + +dependencies { + implementation 'org.jetbrains:annotations:RELEASE' + implementation 'org.jetbrains:annotations:20.1.0' + implementation 'com.google.guava:guava:30.1.1-jre' + compileOnly 'io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT' +} + +group = 'io.github.paldiu' +version = '1.2.0' +description = 'Uncraftables' +java.sourceCompatibility = JavaVersion.VERSION_17 + +publishing { + publications { + maven(MavenPublication) { + from(components.java) + } + } +} diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..a69d9cb --- /dev/null +++ b/gradlew @@ -0,0 +1,240 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f127cfd --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,91 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 492445b..0000000 --- a/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - 4.0.0 - - dev.coomware - Uncraftables - 1.1.0 - - - - org.apache.maven.plugins - maven-compiler-plugin - - 8 - 8 - - - - - - - - papermc - https://papermc.io/repo/repository/maven-public/ - - - - - - com.destroystokyo.paper - paper-api - 1.16.1-R0.1-SNAPSHOT - provided - - - org.jetbrains - annotations - RELEASE - compile - - - \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..0408d88 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,5 @@ +/* + * This file was generated by the Gradle 'init' task. + */ + +rootProject.name = 'Uncraftables' diff --git a/src/main/java/dev/coomware/Craftable.java b/src/main/java/dev/coomware/Craftable.java deleted file mode 100644 index c80bed6..0000000 --- a/src/main/java/dev/coomware/Craftable.java +++ /dev/null @@ -1,982 +0,0 @@ -package dev.coomware; - -import org.bukkit.Material; -import org.bukkit.inventory.ShapedRecipe; -import org.bukkit.inventory.ShapelessRecipe; - -public class Craftable { - private Uncraftables plugin; - private static final CraftingUtils util = Uncraftables.plugin.util; - - public Craftable(Uncraftables instance) { - plugin = instance; - } - - public void craftables() { - saddle(); - leatherHorseArmor(); - ironHorseArmor(); - goldHorseArmor(); - diamondHorseArmor(); - nametag(); - eggs(); - spawner(); - discs(); - bedrock(); - barrier(); - bell(); - netherstar(); - elytra(); - trident(); - netherwart(); - cryingObsidian(); - endFrame(); - totem(); - } - - private void totem() { - ShapedRecipe recipe = util.shaped(Material.TOTEM_OF_UNDYING, "totem_recipe"); - recipe.shape("aea","ibi","aga"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('e', Material.EMERALD); - recipe.setIngredient('i', Material.GOLD_INGOT); - recipe.setIngredient('b', Material.GOLD_BLOCK); - recipe.setIngredient('g', Material.GOLDEN_APPLE); - plugin.server.addRecipe(recipe); - } - - private void netherwart() { - ShapelessRecipe recipe = util.shapeless(Material.NETHER_WART, "netherwart_recipe"); - recipe.addIngredient(1, Material.NETHER_WART_BLOCK); - recipe.getResult().setAmount(9); - plugin.server.addRecipe(recipe); - } - - private void cryingObsidian() { - ShapelessRecipe recipe = util.shapeless(Material.CRYING_OBSIDIAN, "crying_obsidian_recipe"); - recipe.addIngredient(1, Material.OBSIDIAN); - recipe.addIngredient(4, Material.GHAST_TEAR); - recipe.getResult().setAmount(2); - plugin.server.addRecipe(recipe); - } - - private void endFrame() { - ShapedRecipe recipe = util.shaped(Material.END_PORTAL_FRAME, "end_frame_recipe"); - recipe.shape("pap","eoe","eee"); - recipe.setIngredient('p', Material.ENDER_PEARL); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('e', Material.END_STONE); - recipe.setIngredient('o', Material.OBSIDIAN); - plugin.server.addRecipe(recipe); - } - - private void trident() { - ShapedRecipe recipe = util.shaped(Material.TRIDENT, "trident_recipe"); - recipe.shape("add","apd","paa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('p', Material.PRISMARINE_SHARD); - recipe.setIngredient('d', Material.DIAMOND); - plugin.server.addRecipe(recipe); - } - - private void elytra() { - ShapedRecipe recipe = util.shaped(Material.ELYTRA, "elytra_recipe"); - recipe.shape("sds","mnm","mam"); - recipe.setIngredient('s', Material.STRING); - recipe.setIngredient('d', Material.DIAMOND); - recipe.setIngredient('m', Material.PHANTOM_MEMBRANE); - recipe.setIngredient('n', Material.NETHER_STAR); - recipe.setIngredient('a', Material.AIR); - plugin.server.addRecipe(recipe); - } - - private void netherstar() { - ShapedRecipe recipe = util.shaped(Material.NETHER_STAR, "netherstar_recipe"); - recipe.shape("nwn","sss","bqb"); - recipe.setIngredient('n', Material.NETHER_WART); - recipe.setIngredient('w', Material.WITHER_SKELETON_SKULL); - recipe.setIngredient('s', Material.SOUL_SAND); - recipe.setIngredient('b', Material.BLAZE_ROD); - recipe.setIngredient('q', Material.QUARTZ); - plugin.server.addRecipe(recipe); - } - - private void saddle() { - ShapedRecipe saddle = util.shaped(Material.SADDLE, "saddle_recipe"); - saddle.shape("wlw","sls","wlw"); - saddle.setIngredient('w', Material.STICK); - saddle.setIngredient('s', Material.STRING); - saddle.setIngredient('l', Material.LEATHER); - plugin.server.addRecipe(saddle); - } - - private void bell() { - ShapedRecipe recipe = util.shaped(Material.BELL, "bell_recipe"); - recipe.shape("s*s","sis","sns"); - recipe.setIngredient('s', Material.STONE); - recipe.setIngredient('*', Material.STICK); - recipe.setIngredient('i', Material.GOLD_INGOT); - recipe.setIngredient('n', Material.GOLD_NUGGET); - plugin.server.addRecipe(recipe); - } - - private void leatherHorseArmor() { - ShapedRecipe armor = util.shaped(Material.LEATHER_HORSE_ARMOR, "leather_horse_armor_recipe"); - armor.shape("aal","l*l","lsi"); - armor.setIngredient('a', Material.AIR); - armor.setIngredient('s', Material.STRING); - armor.setIngredient('l', Material.LEATHER); - armor.setIngredient('*', Material.SADDLE); - armor.setIngredient('i', Material.IRON_INGOT); - plugin.server.addRecipe(armor); - } - - private void ironHorseArmor() { - ShapedRecipe armor = util.shaped(Material.IRON_HORSE_ARMOR, "iron_horse_armor_recipe"); - armor.shape("aai","i*i","isi"); - armor.setIngredient('a', Material.AIR); - armor.setIngredient('s', Material.STRING); - armor.setIngredient('*', Material.SADDLE); - armor.setIngredient('i', Material.IRON_INGOT); - plugin.server.addRecipe(armor); - } - - private void goldHorseArmor() { - ShapedRecipe armor = util.shaped(Material.GOLDEN_HORSE_ARMOR, "golden_horse_armor_recipe"); - armor.shape("aag","g*g","gsi"); - armor.setIngredient('a', Material.AIR); - armor.setIngredient('s', Material.STRING); - armor.setIngredient('g', Material.GOLD_INGOT); - armor.setIngredient('*', Material.SADDLE); - armor.setIngredient('i', Material.IRON_INGOT); - plugin.server.addRecipe(armor); - } - - private void diamondHorseArmor() { - ShapedRecipe armor = util.shaped(Material.DIAMOND_HORSE_ARMOR, "diamond_horse_armor_recipe"); - armor.shape("aad","d*d","dsi"); - armor.setIngredient('a', Material.AIR); - armor.setIngredient('s', Material.STRING); - armor.setIngredient('d', Material.DIAMOND); - armor.setIngredient('*', Material.SADDLE); - armor.setIngredient('i', Material.IRON_INGOT); - plugin.server.addRecipe(armor); - } - - private void nametag() { - ShapedRecipe nametag = util.shaped(Material.NAME_TAG, "nametag_recipe"); - nametag.shape("aas","apa","paa"); - nametag.setIngredient('a', Material.AIR); - nametag.setIngredient('s', Material.STRING); - nametag.setIngredient('p', Material.PAPER); - plugin.server.addRecipe(nametag); - } - - private void spawner() { - ShapedRecipe recipe = util.shaped(Material.SPAWNER, "spawner_recipe"); - recipe.shape("ccc","cec","ccc"); - recipe.setIngredient('c', Material.CHAIN); - recipe.setIngredient('e', Material.PIG_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void bedrock() { - ShapelessRecipe recipe = util.shapeless(Material.BEDROCK, "bedrock_recipe"); - recipe.addIngredient(2, Material.OBSIDIAN); - recipe.addIngredient(2, Material.STONE); - recipe.addIngredient(1, Material.DIAMOND); - recipe.addIngredient(1, Material.IRON_INGOT); - recipe.addIngredient(1, Material.COAL); - recipe.addIngredient(1, Material.WATER_BUCKET); - recipe.addIngredient(1, Material.LAVA_BUCKET); - recipe.getResult().setAmount(4); - plugin.server.addRecipe(recipe); - } - - private void barrier() { - ShapedRecipe recipe = util.shaped(Material.BARRIER, "barrier_recipe"); - recipe.shape("ggg","gbg","ggg"); - recipe.setIngredient('g', Material.GLASS); - recipe.setIngredient('b', Material.BEDROCK); - plugin.server.addRecipe(recipe); - } - - // MUSIC DISCS \\ - - private void discs() { - cd11(); - cd13(); - cdBLOCKS(); - cdCAT(); - cdCHIRP(); - cdFAR(); - cdMALL(); - cdMELLOHI(); - cdPIGSTEP(); - cdSTAL(); - cdSTRAD(); - cdWAIT(); - cdWARD(); - } - - private void cd13() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_13, "13_recipe"); - recipe.shape("fff","fyf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('y', Material.YELLOW_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdCAT() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_CAT, "cat_recipe"); - recipe.shape("fff","fgf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('g', Material.LIME_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdBLOCKS() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_BLOCKS, "blocks_recipe"); - recipe.shape("fff","fof","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('o', Material.ORANGE_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdCHIRP() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_CHIRP, "chirp_recipe"); - recipe.shape("fff","frf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('r', Material.RED_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdFAR() { - ShapelessRecipe recipe = util.shapeless(Material.MUSIC_DISC_FAR, "far_recipe"); - recipe.addIngredient(2, Material.BONE_MEAL); - recipe.addIngredient(1, Material.MUSIC_DISC_CAT); - plugin.server.addRecipe(recipe); - } - - private void cdMALL() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_MALL, "mall_recipe"); - recipe.shape("fff","fpf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('p', Material.PURPLE_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdMELLOHI() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_MELLOHI, "mellohi_recipe"); - recipe.shape("fff","fpf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('p', Material.PINK_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdSTAL() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_STAL, "stal_recipe"); - recipe.shape("fff","fbf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('b', Material.BLACK_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdSTRAD() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_STRAD, "strad_recipe"); - recipe.shape("fff","fwf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('w', Material.WHITE_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdWARD() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_WARD, "ward_recipe"); - recipe.shape("fff","fgf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('g', Material.GREEN_DYE); - plugin.server.addRecipe(recipe); - } - - private void cd11() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_11, "11_recipe"); - recipe.shape("fff","fbf","ffa"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('b', Material.BLACK_DYE); - recipe.setIngredient('a', Material.AIR); - plugin.server.addRecipe(recipe); - } - - private void cdWAIT() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_WAIT, "wait_recipe"); - recipe.shape("fff","fbf","fff"); - recipe.setIngredient('f', Material.FLINT); - recipe.setIngredient('b', Material.BLUE_DYE); - plugin.server.addRecipe(recipe); - } - - private void cdPIGSTEP() { - ShapedRecipe recipe = util.shaped(Material.MUSIC_DISC_PIGSTEP, "pigstep_recipe"); - recipe.shape("nqn","qyq","nqn"); - recipe.setIngredient('n', Material.NETHER_BRICK); - recipe.setIngredient('q', Material.QUARTZ); - recipe.setIngredient('y', Material.YELLOW_DYE); - plugin.server.addRecipe(recipe); - } - - // EGGS --- EGGS --- EGGS --- EGGS --- EGGS \\ - - private void eggs() { - beeEgg(); - blazeEgg(); - caveSpiderEgg(); - creeperEgg(); - dolphinEgg(); - drownedEgg(); - elderGuardEgg(); - endermanEgg(); - endermiteEgg(); - evokerEgg(); - foxEgg(); - ghastEgg(); - guardianEgg(); - hoglinEgg(); - huskEgg(); - llamaEgg(); - magmaCubeEgg(); - pandaEgg(); - phantomEgg(); - piglinEgg(); - pillagerEgg(); - polarBearEgg(); - ravagerEgg(); - shulkerEgg(); - silverfishEgg(); - skeletonEgg(); - slimeEgg(); - spiderEgg(); - strayEgg(); - striderEgg(); - vexEgg(); - vindicatorEgg(); - witchEgg(); - witherSkeletonEgg(); - wolfEgg(); - zoglinEgg(); - zombieEgg(); - zombieVillagerEgg(); - zPiglinEgg(); - //non-hostile - batEgg(); - catEgg(); - chickenEgg(); - codEgg(); - cowEgg(); - donkeyEgg(); - horseEgg(); - mooshroomEgg(); - muleEgg(); - ocelotEgg(); - parrotEgg(); - pigEgg(); - pufferfishEgg(); - rabbitEgg(); - salmonEgg(); - sheepEgg(); - sHorseEgg(); - squidEgg(); - traderEgg(); - traderLlamaEgg(); - tropicalFishEgg(); - turtleEgg(); - villagerEgg(); - zHorseEgg(); - } - - private void beeEgg() { - ShapedRecipe beeEgg = util.shaped(Material.BEE_SPAWN_EGG, "bee_egg_recipe"); - beeEgg.shape("aha","heh","aha"); - beeEgg.setIngredient('a', Material.AIR); - beeEgg.setIngredient('h', Material.HONEYCOMB); - beeEgg.setIngredient('e', Material.EGG); - plugin.server.addRecipe(beeEgg); - } - - private void blazeEgg() { - ShapedRecipe blazeEgg = util.shaped(Material.BLAZE_SPAWN_EGG, "blaze_egg_recipe"); - blazeEgg.shape("sbs","beb","sbs"); - blazeEgg.setIngredient('s', Material.SOUL_SOIL); - blazeEgg.setIngredient('b', Material.BLAZE_ROD); - blazeEgg.setIngredient('e', Material.EGG); - plugin.server.addRecipe(blazeEgg); - } - - private void caveSpiderEgg() { - ShapedRecipe caveSpiderEgg = util.shaped(Material.CAVE_SPIDER_SPAWN_EGG, "cave_spider_egg_recipe"); - caveSpiderEgg.shape("afa","ses","afa"); - caveSpiderEgg.setIngredient('a', Material.AIR); - caveSpiderEgg.setIngredient('f', Material.FERMENTED_SPIDER_EYE); - caveSpiderEgg.setIngredient('s', Material.SPIDER_EYE); - caveSpiderEgg.setIngredient('e', Material.SPIDER_SPAWN_EGG); - plugin.server.addRecipe(caveSpiderEgg); - } - - private void creeperEgg() { - ShapedRecipe creeperEgg = util.shaped(Material.CREEPER_SPAWN_EGG, "creeper_egg_recipe"); - creeperEgg.shape("aga","geg","aga"); - creeperEgg.setIngredient('a', Material.AIR); - creeperEgg.setIngredient('g', Material.GUNPOWDER); - creeperEgg.setIngredient('e', Material.EGG); - plugin.server.addRecipe(creeperEgg); - } - - private void dolphinEgg() { - ShapedRecipe dolphin = util.shaped(Material.DOLPHIN_SPAWN_EGG, "dolphin_egg_recipe"); - dolphin.shape("aca","wew","aca"); - dolphin.setIngredient('a', Material.AIR); - dolphin.setIngredient('w', Material.WATER_BUCKET); - dolphin.setIngredient('c', Material.COD); - dolphin.setIngredient('e', Material.EGG); - plugin.server.addRecipe(dolphin); - } - - private void drownedEgg() { - ShapedRecipe drowned = util.shaped(Material.DROWNED_SPAWN_EGG, "drowned_egg_recipe"); - drowned.shape("awa","fef","awa"); - drowned.setIngredient('a', Material.AIR); - drowned.setIngredient('w', Material.WATER_BUCKET); - drowned.setIngredient('f', Material.FISHING_ROD); - drowned.setIngredient('e', Material.ZOMBIE_SPAWN_EGG); - plugin.server.addRecipe(drowned); - } - - private void elderGuardEgg() { - ShapedRecipe eldGuard = util.shaped(Material.ELDER_GUARDIAN_SPAWN_EGG, "elder_guardian_egg_recipe"); - eldGuard.shape("apa","ses","apa"); - eldGuard.setIngredient('a', Material.AIR); - eldGuard.setIngredient('p', Material.PRISMARINE_SHARD); - eldGuard.setIngredient('e', Material.GUARDIAN_SPAWN_EGG); - eldGuard.setIngredient('s', Material.SPONGE); - plugin.server.addRecipe(eldGuard); - } - - private void endermanEgg() { - ShapedRecipe enderman = util.shaped(Material.ENDERMAN_SPAWN_EGG, "enderman_egg_recipe"); - enderman.shape("apa","pep","apa"); - enderman.setIngredient('a', Material.AIR); - enderman.setIngredient('p', Material.ENDER_PEARL); - enderman.setIngredient('e', Material.EGG); - plugin.server.addRecipe(enderman); - } - - private void endermiteEgg() { - ShapedRecipe endermite = util.shaped(Material.ENDERMITE_SPAWN_EGG, "endermite_egg_recipe"); - endermite.shape("apa","cec","apa"); - endermite.setIngredient('a', Material.AIR); - endermite.setIngredient('p', Material.ENDER_PEARL); - endermite.setIngredient('c', Material.CHORUS_FRUIT); - endermite.setIngredient('e', Material.EGG); - plugin.server.addRecipe(endermite); - } - - private void evokerEgg() { - ShapedRecipe evoker = util.shaped(Material.EVOKER_SPAWN_EGG, "evoker_egg_recipe"); - evoker.shape("ata","eve","ata"); - evoker.setIngredient('a', Material.AIR); - evoker.setIngredient('t', Material.TOTEM_OF_UNDYING); - evoker.setIngredient('e', Material.EMERALD); - evoker.setIngredient('v', Material.VINDICATOR_SPAWN_EGG); - plugin.server.addRecipe(evoker); - } - - private void foxEgg() { - ShapedRecipe recipe = util.shaped(Material.FOX_SPAWN_EGG, "fox_egg_recipe"); - recipe.shape("asa","ses","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SWEET_BERRIES); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void ghastEgg() { - ShapedRecipe recipe = util.shaped(Material.GHAST_SPAWN_EGG, "ghast_egg_recipe"); - recipe.shape("sts","geg","sts"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('t', Material.GHAST_TEAR); - recipe.setIngredient('g', Material.GUNPOWDER); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void guardianEgg() { - ShapedRecipe recipe = util.shaped(Material.GUARDIAN_SPAWN_EGG, "guardian_egg_recipe"); - recipe.shape("apa","pep","apa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('p', Material.PRISMARINE_SHARD); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void hoglinEgg() { - ShapedRecipe recipe = util.shaped(Material.HOGLIN_SPAWN_EGG, "hoglin_egg_recipe"); - recipe.shape("sls","pep","sls"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('p', Material.PORKCHOP); - recipe.setIngredient('l', Material.LEATHER); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void huskEgg() { - ShapedRecipe recipe = util.shaped(Material.HUSK_SPAWN_EGG, "husk_egg_recipe"); - recipe.shape("asa","rer","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SAND); - recipe.setIngredient('e', Material.ZOMBIE_SPAWN_EGG); - recipe.setIngredient('r', Material.ROTTEN_FLESH); - plugin.server.addRecipe(recipe); - } - - private void llamaEgg() { - ShapedRecipe recipe = util.shaped(Material.LLAMA_SPAWN_EGG, "llama_egg_recipe"); - recipe.shape("aca","lel","aca"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('c', Material.WHITE_CARPET); - recipe.setIngredient('e', Material.EGG); - recipe.setIngredient('l', Material.LEATHER); - plugin.server.addRecipe(recipe); - } - - private void magmaCubeEgg() { - ShapedRecipe recipe = util.shaped(Material.MAGMA_CUBE_SPAWN_EGG, "magma_cube_egg_recipe"); - recipe.shape("scs","cec","scs"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('c', Material.MAGMA_CREAM); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void pandaEgg() { - ShapedRecipe recipe = util.shaped(Material.PANDA_SPAWN_EGG, "panda_egg_recipe"); - recipe.shape("aba","beb","aba"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('b', Material.BAMBOO); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void phantomEgg() { - ShapedRecipe recipe = util.shaped(Material.PHANTOM_SPAWN_EGG, "phantom_egg_recipe"); - recipe.shape("ama","mem","ama"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('m', Material.PHANTOM_MEMBRANE); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void piglinEgg() { - ShapedRecipe recipe = util.shaped(Material.PIGLIN_SPAWN_EGG, "piglin_egg_recipe"); - recipe.shape("sgs","nen","sgs"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('n', Material.GOLD_NUGGET); - recipe.setIngredient('g', Material.GOLD_INGOT); - recipe.setIngredient('e', Material.PIG_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void pillagerEgg() { - ShapedRecipe recipe = util.shaped(Material.PILLAGER_SPAWN_EGG, "pillager_egg_recipe"); - recipe.shape("aca","*e*","aca"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('c', Material.CROSSBOW); - recipe.setIngredient('*', Material.ARROW); - recipe.setIngredient('e', Material.VILLAGER_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void polarBearEgg() { - ShapedRecipe recipe = util.shaped(Material.POLAR_BEAR_SPAWN_EGG, "polar_bear_egg_recipe"); - recipe.shape("aca","ses","aca"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('c', Material.COD); - recipe.setIngredient('e', Material.EGG); - recipe.setIngredient('s', Material.SALMON); - plugin.server.addRecipe(recipe); - } - - private void ravagerEgg() { - ShapedRecipe recipe = util.shaped(Material.RAVAGER_SPAWN_EGG, "ravager_egg_recipe"); - recipe.shape("asa","ses","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SADDLE); - recipe.setIngredient('e', Material.HOGLIN_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void shulkerEgg() { - ShapedRecipe recipe = util.shaped(Material.SHULKER_SPAWN_EGG, "shulker_egg_recipe"); - recipe.shape("scs","beb","scs"); - recipe.setIngredient('s', Material.END_STONE); - recipe.setIngredient('c', Material.CHORUS_FRUIT); - recipe.setIngredient('b', Material.SHULKER_SHELL); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void silverfishEgg() { - ShapedRecipe recipe = util.shaped(Material.SILVERFISH_SPAWN_EGG, "silverfish_egg_recipe"); - recipe.shape("asa","cec","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.STONE_BRICKS); - recipe.setIngredient('c', Material.CHISELED_STONE_BRICKS); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void skeletonEgg() { - ShapedRecipe recipe = util.shaped(Material.SKELETON_SPAWN_EGG, "skeleton_egg_recipe"); - recipe.shape("aba","beb","aba"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('b', Material.BONE); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void slimeEgg() { - ShapedRecipe recipe = util.shaped(Material.SLIME_SPAWN_EGG, "slime_egg_recipe"); - recipe.shape("asa","ses","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SLIME_BALL); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void spiderEgg() { - ShapedRecipe recipe = util.shaped(Material.SPIDER_SPAWN_EGG, "spider_egg_recipe"); - recipe.shape("aia","ses","aia"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('i', Material.SPIDER_EYE); - recipe.setIngredient('s', Material.STRING); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void strayEgg() { - ShapedRecipe recipe = util.shaped(Material.STRAY_SPAWN_EGG, "stray_egg_recipe"); - recipe.shape("asa","iei","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SNOWBALL); - recipe.setIngredient('e', Material.SKELETON_SPAWN_EGG); - recipe.setIngredient('i', Material.ICE); - plugin.server.addRecipe(recipe); - } - - private void striderEgg() { - ShapedRecipe recipe = util.shaped(Material.STRIDER_SPAWN_EGG, "strider_egg_recipe"); - recipe.shape("sls","lel","sls"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('l', Material.LAVA_BUCKET); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void vexEgg() { - ShapedRecipe recipe = util.shaped(Material.VEX_SPAWN_EGG, "vex_egg_recipe"); - recipe.shape("afa","fef","afa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('f', Material.FEATHER); - recipe.setIngredient('e', Material.EVOKER_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void vindicatorEgg() { - ShapedRecipe recipe = util.shaped(Material.VINDICATOR_SPAWN_EGG, "vindicator_egg_recipe"); - recipe.shape("axa","*e*","axa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('x', Material.IRON_AXE); - recipe.setIngredient('e', Material.PILLAGER_SPAWN_EGG); - recipe.setIngredient('*', Material.EMERALD); - plugin.server.addRecipe(recipe); - } - - private void witchEgg() { - ShapedRecipe recipe = util.shaped(Material.WITCH_SPAWN_EGG, "witch_egg_recipe"); - recipe.shape("apa","ses","apa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('p', Material.SPLASH_POTION); - recipe.setIngredient('s', Material.STICK); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void witherSkeletonEgg() { - ShapedRecipe recipe = util.shaped(Material.WITHER_SKELETON_SPAWN_EGG, "wither_skeleton_egg_recipe"); - recipe.shape("scs","cec","scs"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('c', Material.COAL); - recipe.setIngredient('e', Material.SKELETON_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void wolfEgg() { - ShapedRecipe recipe = util.shaped(Material.WOLF_SPAWN_EGG, "wolf_egg_recipe"); - recipe.shape("aba","nen","aba"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('b', Material.BONE); - recipe.setIngredient('n', Material.NAME_TAG); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void zoglinEgg() { - ShapedRecipe recipe = util.shaped(Material.ZOGLIN_SPAWN_EGG, "zoglin_egg_recipe"); - recipe.shape("srs","rer","srs"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('r', Material.ROTTEN_FLESH); - recipe.setIngredient('e', Material.HOGLIN_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void zombieEgg() { - ShapedRecipe recipe = util.shaped(Material.ZOMBIE_SPAWN_EGG, "zombie_egg_recipe"); - recipe.shape("ara","rer","ara"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('r', Material.ROTTEN_FLESH); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void zombieVillagerEgg() { - ShapedRecipe recipe = util.shaped(Material.ZOMBIE_VILLAGER_SPAWN_EGG, "z_villager_egg_recipe"); - recipe.shape("ara","rer","ara"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('r', Material.ROTTEN_FLESH); - recipe.setIngredient('e', Material.VILLAGER_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void zPiglinEgg() { - ShapedRecipe recipe = util.shaped(Material.ZOMBIFIED_PIGLIN_SPAWN_EGG, "z_piglin_egg_recipe"); - recipe.shape("srs","rer","srs"); - recipe.setIngredient('s', Material.SOUL_SOIL); - recipe.setIngredient('r', Material.ROTTEN_FLESH); - recipe.setIngredient('e', Material.PIGLIN_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - // NON-HOSTILE \\ - - private void batEgg() { - ShapedRecipe recipe = util.shaped(Material.BAT_SPAWN_EGG, "bat_egg_recipe"); - recipe.shape("aba","fef","aba"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('b', Material.APPLE); - recipe.setIngredient('e', Material.CHICKEN_SPAWN_EGG); - recipe.setIngredient('f', Material.FEATHER); - plugin.server.addRecipe(recipe); - } - - private void catEgg() { - ShapedRecipe recipe = util.shaped(Material.CAT_SPAWN_EGG, "cat_egg_recipe"); - recipe.shape("aca","ses","aca"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('c', Material.COD); - recipe.setIngredient('s', Material.SALMON); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void chickenEgg() { - ShapedRecipe recipe = util.shaped(Material.CHICKEN_SPAWN_EGG, "chicken_egg_recipe"); - recipe.shape("afa","fef","afa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('f', Material.FEATHER); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void codEgg() { - ShapedRecipe recipe = util.shaped(Material.COD_SPAWN_EGG, "cod_egg_recipe"); - recipe.shape("aca","cec","aca"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('c', Material.COD); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void cowEgg() { - ShapedRecipe recipe = util.shaped(Material.COW_SPAWN_EGG, "cow_egg_recipe"); - recipe.shape("ala","lel","ala"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('l', Material.LEATHER); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void donkeyEgg() { - ShapelessRecipe recipe = util.shapeless(Material.DONKEY_SPAWN_EGG, "donkey_egg_recipe"); - recipe.addIngredient(Material.HORSE_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void horseEgg() { - ShapedRecipe recipe = util.shaped(Material.HORSE_SPAWN_EGG, "horse_egg_recipe"); - recipe.shape("asa","lel","ala"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SADDLE); - recipe.setIngredient('e', Material.EGG); - recipe.setIngredient('l', Material.LEATHER); - plugin.server.addRecipe(recipe); - } - - private void mooshroomEgg() { - ShapedRecipe recipe = util.shaped(Material.MOOSHROOM_SPAWN_EGG, "mooshroom_egg_recipe"); - recipe.shape("ara","rer","ara"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('r', Material.RED_MUSHROOM); - recipe.setIngredient('e', Material.COW_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void muleEgg() { - ShapelessRecipe recipe = util.shapeless(Material.MULE_SPAWN_EGG, "mule_egg_recipe"); - recipe.addIngredient(2, Material.CHEST); - recipe.addIngredient(1, Material.HORSE_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void ocelotEgg() { - ShapedRecipe recipe = util.shaped(Material.OCELOT_SPAWN_EGG, "ocelot_egg_recipe"); - recipe.shape("aca","ses","aca"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('c', Material.COCOA_BEANS); - recipe.setIngredient('s', Material.SALMON); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void parrotEgg() { - ShapedRecipe recipe = util.shaped(Material.PARROT_SPAWN_EGG, "parrot_egg_recipe"); - recipe.shape("asa","fef","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.WHEAT_SEEDS); - recipe.setIngredient('f', Material.FEATHER); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void pigEgg() { - ShapedRecipe recipe = util.shaped(Material.PIG_SPAWN_EGG, "pig_egg_recipe"); - recipe.shape("aca","cec","aca"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('c', Material.PORKCHOP); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void pufferfishEgg() { - ShapedRecipe recipe = util.shaped(Material.PUFFERFISH_SPAWN_EGG, "pufferfish_egg_recipe"); - recipe.shape("apa","pep","apa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('p', Material.PUFFERFISH); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void rabbitEgg() { - ShapedRecipe recipe = util.shaped(Material.RABBIT_SPAWN_EGG, "rabbit_egg_recipe"); - recipe.shape("aha","heh","afa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('h', Material.RABBIT_HIDE); - recipe.setIngredient('e', Material.EGG); - recipe.setIngredient('f', Material.RABBIT_FOOT); - plugin.server.addRecipe(recipe); - } - - private void salmonEgg() { - ShapedRecipe recipe = util.shaped(Material.SALMON_SPAWN_EGG, "salmon_egg_recipe"); - recipe.shape("asa","ses","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SALMON); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void sheepEgg() { - ShapedRecipe recipe = util.shaped(Material.SHEEP_SPAWN_EGG, "sheep_egg_recipe"); - recipe.shape("awa","mem","awa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('w', Material.WHITE_WOOL); - recipe.setIngredient('m', Material.MUTTON); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void sHorseEgg() { - ShapelessRecipe recipe = util.shapeless(Material.SKELETON_HORSE_SPAWN_EGG, "s_horse_egg_recipe"); - recipe.addIngredient(1, Material.SKELETON_SPAWN_EGG); - recipe.addIngredient(1, Material.HORSE_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void squidEgg() { - ShapedRecipe recipe = util.shaped(Material.SQUID_SPAWN_EGG, "squid_egg_recipe"); - recipe.shape("aia","iei","aia"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('i', Material.INK_SAC); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void tropicalFishEgg() { - ShapelessRecipe recipe = util.shapeless(Material.TROPICAL_FISH_SPAWN_EGG, "t_fish_egg_recipe"); - recipe.addIngredient(1, Material.COD); - recipe.addIngredient(1, Material.EGG); - recipe.addIngredient(1, Material.PUFFERFISH); - recipe.addIngredient(1, Material.SALMON); - recipe.addIngredient(1, Material.TROPICAL_FISH); - plugin.server.addRecipe(recipe); - } - - private void traderLlamaEgg() { - ShapelessRecipe recipe = util.shapeless(Material.TRADER_LLAMA_SPAWN_EGG, "t_llama_egg_recipe"); - recipe.addIngredient(1, Material.LLAMA_SPAWN_EGG); - recipe.addIngredient(1, Material.WANDERING_TRADER_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void turtleEgg() { - ShapedRecipe recipe = util.shaped(Material.TURTLE_SPAWN_EGG, "turtle_egg_recipe"); - recipe.shape("asa","ses","asa"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('s', Material.SCUTE); - recipe.setIngredient('e', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void villagerEgg() { - ShapedRecipe recipe = util.shaped(Material.VILLAGER_SPAWN_EGG, "villager_egg_recipe"); - recipe.shape("aea","p*p","aea"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('e', Material.EGG); - recipe.setIngredient('p', Material.POPPY); - recipe.setIngredient('*', Material.EGG); - plugin.server.addRecipe(recipe); - } - - private void traderEgg() { - ShapedRecipe recipe = util.shaped(Material.WANDERING_TRADER_SPAWN_EGG, "trader_egg_recipe"); - recipe.shape("aea","e*e","aea"); - recipe.setIngredient('a', Material.AIR); - recipe.setIngredient('e', Material.EMERALD); - recipe.setIngredient('*', Material.VILLAGER_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } - - private void zHorseEgg() { - ShapelessRecipe recipe = util.shapeless(Material.ZOMBIE_HORSE_SPAWN_EGG, "z_horse_egg_recipe"); - recipe.addIngredient(1, Material.ZOMBIE_SPAWN_EGG); - recipe.addIngredient(1, Material.HORSE_SPAWN_EGG); - plugin.server.addRecipe(recipe); - } -} diff --git a/src/main/java/dev/coomware/Uncraftables.java b/src/main/java/dev/coomware/Uncraftables.java deleted file mode 100644 index 5d27600..0000000 --- a/src/main/java/dev/coomware/Uncraftables.java +++ /dev/null @@ -1,35 +0,0 @@ -package dev.coomware; - -import org.bstats.Metrics; -import org.bukkit.Bukkit; -import org.bukkit.Server; -import org.bukkit.plugin.java.JavaPlugin; - -public class Uncraftables extends JavaPlugin { - public static Uncraftables plugin; - public Server server; - public CraftingUtils util; - public int pluginId = 8179; - - @Override - public void onLoad() { - plugin = this; - server = getServer(); - util = new CraftingUtils(this); - } - - @Override - public void onEnable() { - final Metrics metrics = new Metrics(this, pluginId); - Bukkit.getLogger().info("[Uncraftables] Successfully enabled bStats metrics!"); - - new Craftable(this).craftables(); - new CraftingListener(this); - Bukkit.getLogger().info("[Uncraftables] successfully loaded all recipes."); - } - - @Override - public void onDisable() { - // - } -} diff --git a/src/main/java/dev/coomware/CraftingListener.java b/src/main/java/io/github/paldiu/CraftingListener.java similarity index 98% rename from src/main/java/dev/coomware/CraftingListener.java rename to src/main/java/io/github/paldiu/CraftingListener.java index 4c0d018..5e4efcf 100644 --- a/src/main/java/dev/coomware/CraftingListener.java +++ b/src/main/java/io/github/paldiu/CraftingListener.java @@ -1,4 +1,4 @@ -package dev.coomware; +package io.github.paldiu; import org.bukkit.Material; import org.bukkit.event.EventHandler; diff --git a/src/main/java/dev/coomware/CraftingUtils.java b/src/main/java/io/github/paldiu/CraftingUtils.java similarity index 58% rename from src/main/java/dev/coomware/CraftingUtils.java rename to src/main/java/io/github/paldiu/CraftingUtils.java index d8aab35..04c7593 100644 --- a/src/main/java/dev/coomware/CraftingUtils.java +++ b/src/main/java/io/github/paldiu/CraftingUtils.java @@ -1,28 +1,32 @@ -package dev.coomware; +package io.github.paldiu; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.ShapelessRecipe; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public class CraftingUtils { - private Uncraftables plugin; + private final Uncraftables plugin; public CraftingUtils(Uncraftables instance) { plugin = instance; } - private NamespacedKey newKey(String string) { + @Contract("_ -> new") + private @NotNull + NamespacedKey newKey(String string) { return new NamespacedKey(plugin, string); } - public ShapedRecipe shaped(Material result, String key) { + public final @NotNull ShapedRecipe shaped(Material result, String key) { ItemStack is = new ItemStack(result); return new ShapedRecipe(newKey(key), is); } - public ShapelessRecipe shapeless(Material result, String key) { + public final @NotNull ShapelessRecipe shapeless(Material result, String key) { ItemStack is = new ItemStack(result); return new ShapelessRecipe(newKey(key), is); } diff --git a/src/main/java/io/github/paldiu/ReloadCMD.java b/src/main/java/io/github/paldiu/ReloadCMD.java new file mode 100644 index 0000000..3cb4e00 --- /dev/null +++ b/src/main/java/io/github/paldiu/ReloadCMD.java @@ -0,0 +1,30 @@ +package io.github.paldiu; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +public class ReloadCMD implements CommandExecutor { + private final Uncraftables crf; + + public ReloadCMD(@NotNull Uncraftables crf) { + this.crf = crf; + crf.getPlugin().getCommand("reload").setExecutor(this); + } + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + + if (sender.hasPermission("uncraftables.reload")) { + crf.getYamlWrapper().load(); + sender.sendMessage(Component.text("[Uncraftables] Reloaded configurations!").color(NamedTextColor.GREEN)); + } else { + sender.sendMessage(Component.text("You do not have permission to use this command!").color(NamedTextColor.RED)); + } + + return true; + } +} diff --git a/src/main/java/io/github/paldiu/Uncraftables.java b/src/main/java/io/github/paldiu/Uncraftables.java new file mode 100644 index 0000000..3fb4c64 --- /dev/null +++ b/src/main/java/io/github/paldiu/Uncraftables.java @@ -0,0 +1,71 @@ +package io.github.paldiu; + +import io.github.paldiu.config.YamlWrapper; +import io.github.paldiu.recipes.*; +import org.bstats.Metrics; +import org.bukkit.Bukkit; +import org.bukkit.plugin.java.JavaPlugin; + +public class Uncraftables extends JavaPlugin { + private final int pluginId = 8179; + + private Uncraftables plugin; + private CraftingUtils util; + private YamlWrapper yamlWrapper; + + @Override + public void onLoad() { + plugin = this; + util = new CraftingUtils(this); + } + + @Override + public void onEnable() { + yamlWrapper = new YamlWrapper(this); + new Metrics(this, pluginId); + Bukkit.getLogger().info("[Uncraftables] Successfully enabled bStats metrics!"); + + register(); + new CraftingListener(this); + Bukkit.getLogger().info("[Uncraftables] successfully loaded all recipes."); + + new ReloadCMD(this); + } + + @Override + public void onDisable() { + yamlWrapper.save(); + } + + public void register() { + new BarrierRecipe(this); + new BedrockRecipe(this); + new BellRecipe(this); + new CryingObsidianRecipe(this); + new DragonEggRecipe(this); + new EggRecipes(this); + new ElytraRecipe(this); + new EndFrameRecipe(this); + new HorseArmorRecipe(this); + new MusicDiscRecipes(this); + new NameTagRecipe(this); + new NetherStarRecipe(this); + new NetherWartRecipe(this); + new SaddleRecipe(this); + new SpawnerRecipe(this); + new TotemRecipe(this); + new TridentRecipe(this); + } + + public YamlWrapper getYamlWrapper() { + return yamlWrapper; + } + + public Uncraftables getPlugin() { + return plugin; + } + + public CraftingUtils getUtil() { + return util; + } +} diff --git a/src/main/java/io/github/paldiu/config/ConfigValues.java b/src/main/java/io/github/paldiu/config/ConfigValues.java new file mode 100644 index 0000000..6dc28e7 --- /dev/null +++ b/src/main/java/io/github/paldiu/config/ConfigValues.java @@ -0,0 +1,79 @@ +package io.github.paldiu.config; + +import io.github.paldiu.Uncraftables; + +public class ConfigValues { + private final Uncraftables plugin; + + public ConfigValues(Uncraftables plugin) { + this.plugin = plugin; + } + + public boolean barrierEnabled() { + return plugin.getYamlWrapper().getBoolean("barrier"); + } + + public boolean bedrockEnabled() { + return plugin.getYamlWrapper().getBoolean("bedrock"); + } + + public boolean bellEnabled() { + return plugin.getYamlWrapper().getBoolean("bell"); + } + + public boolean cryingObsidianEnabled() { + return plugin.getYamlWrapper().getBoolean("crying_obsidian"); + } + + public boolean dragonEggEnabled() { + return plugin.getYamlWrapper().getBoolean("dragon_egg"); + } + + public boolean elytraEnabled() { + return plugin.getYamlWrapper().getBoolean("elytra"); + } + + public boolean endFrameEnabled() { + return plugin.getYamlWrapper().getBoolean("end_frame"); + } + + public boolean eggsEnabled() { + return plugin.getYamlWrapper().getBoolean("eggs"); + } + + public boolean horseArmorEnabled() { + return plugin.getYamlWrapper().getBoolean("horse_armor"); + } + + public boolean musicDiscsEnabled() { + return plugin.getYamlWrapper().getBoolean("music_discs"); + } + + public boolean nameTagEnabled() { + return plugin.getYamlWrapper().getBoolean("name_tag"); + } + + public boolean netherStarEnabled() { + return plugin.getYamlWrapper().getBoolean("nether_star"); + } + + public boolean netherWartEnabled() { + return plugin.getYamlWrapper().getBoolean("nether_wart"); + } + + public boolean saddleEnabled() { + return plugin.getYamlWrapper().getBoolean("saddle"); + } + + public boolean spawnerEnabled() { + return plugin.getYamlWrapper().getBoolean("spawner"); + } + + public boolean totemEnabled() { + return plugin.getYamlWrapper().getBoolean("totem"); + } + + public boolean tridentEnabled() { + return plugin.getYamlWrapper().getBoolean("trident"); + } +} diff --git a/src/main/java/io/github/paldiu/config/YamlWrapper.java b/src/main/java/io/github/paldiu/config/YamlWrapper.java new file mode 100644 index 0000000..0177c64 --- /dev/null +++ b/src/main/java/io/github/paldiu/config/YamlWrapper.java @@ -0,0 +1,88 @@ +package io.github.paldiu.config; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Bukkit; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; +import org.jetbrains.annotations.NotNull; + +import java.io.File; +import java.io.IOException; + +public class YamlWrapper { + private final YamlConfiguration config; + private final File configFile; + + private final ConfigValues configValues; + + public YamlWrapper(@NotNull Uncraftables plugin) { + String FILE_NAME = "config.yml"; + File dataFolder = plugin.getDataFolder(); + this.configFile = new File(dataFolder, FILE_NAME); + try { + if (configFile.createNewFile()) { + plugin.saveResource(FILE_NAME, true); + } + } catch (IOException ex) { + Bukkit.getLogger().severe(ex.getMessage()); + } + this.config = YamlConfiguration.loadConfiguration(configFile); + this.configValues = new ConfigValues(plugin); + } + + public void save() { + try { + config.save(configFile); + } catch (IOException ex) { + Bukkit.getLogger().severe(ex.getMessage()); + } + } + + public void load() { + try { + config.load(configFile); + } catch (IOException | InvalidConfigurationException ex) { + Bukkit.getLogger().severe(ex.getMessage()); + } + } + + public void set(String path, Object value) { + config.set(path, value); + } + + public Object get(String path) { + return config.get(path); + } + + public String getString(String path) { + return config.getString(path); + } + + public int getInt(String path) { + return config.getInt(path); + } + + public boolean getBoolean(String path) { + return config.getBoolean(path); + } + + public double getDouble(String path) { + return config.getDouble(path); + } + + public long getLong(String path) { + return config.getLong(path); + } + + public float getFloat(String path) { + return (float) config.getDouble(path); + } + + public YamlConfiguration getConfig() { + return config; + } + + public ConfigValues getConfigValues() { + return configValues; + } +} diff --git a/src/main/java/io/github/paldiu/recipes/BarrierRecipe.java b/src/main/java/io/github/paldiu/recipes/BarrierRecipe.java new file mode 100644 index 0000000..ddbb472 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/BarrierRecipe.java @@ -0,0 +1,19 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class BarrierRecipe extends Craftable { + public BarrierRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().barrierEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.BARRIER, "barrier_recipe"); + recipe.shape("ggg", "gbg", "ggg"); + recipe.setIngredient('g', Material.GLASS); + recipe.setIngredient('b', Material.BEDROCK); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/BedrockRecipe.java b/src/main/java/io/github/paldiu/recipes/BedrockRecipe.java new file mode 100644 index 0000000..5bba229 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/BedrockRecipe.java @@ -0,0 +1,24 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapelessRecipe; + +public class BedrockRecipe extends Craftable { + public BedrockRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().bedrockEnabled()) return; + + ShapelessRecipe recipe = getUtil().shapeless(Material.BEDROCK, "bedrock_recipe"); + recipe.addIngredient(2, Material.OBSIDIAN); + recipe.addIngredient(2, Material.STONE); + recipe.addIngredient(1, Material.DIAMOND); + recipe.addIngredient(1, Material.IRON_INGOT); + recipe.addIngredient(1, Material.COAL); + recipe.addIngredient(1, Material.WATER_BUCKET); + recipe.addIngredient(1, Material.LAVA_BUCKET); + recipe.getResult().setAmount(4); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/BellRecipe.java b/src/main/java/io/github/paldiu/recipes/BellRecipe.java new file mode 100644 index 0000000..3cb32a3 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/BellRecipe.java @@ -0,0 +1,21 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class BellRecipe extends Craftable { + public BellRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().bellEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.BELL, "bell_recipe"); + recipe.shape("sks", "sis", "sns"); + recipe.setIngredient('s', Material.STONE); + recipe.setIngredient('k', Material.STICK); + recipe.setIngredient('i', Material.GOLD_INGOT); + recipe.setIngredient('n', Material.GOLD_NUGGET); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/Craftable.java b/src/main/java/io/github/paldiu/recipes/Craftable.java new file mode 100644 index 0000000..96af082 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/Craftable.java @@ -0,0 +1,29 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.CraftingUtils; +import io.github.paldiu.Uncraftables; +import io.github.paldiu.config.ConfigValues; + +public abstract class Craftable { + private final Uncraftables plugin; + private final CraftingUtils util; + private final ConfigValues configValues; + + public Craftable(Uncraftables plugin) { + this.plugin = plugin; + this.util = getPlugin().getUtil(); + this.configValues = plugin.getYamlWrapper().getConfigValues(); + } + + protected Uncraftables getPlugin() { + return plugin; + } + + protected CraftingUtils getUtil() { + return util; + } + + protected ConfigValues getConfigValues() { + return configValues; + } +} diff --git a/src/main/java/io/github/paldiu/recipes/CryingObsidianRecipe.java b/src/main/java/io/github/paldiu/recipes/CryingObsidianRecipe.java new file mode 100644 index 0000000..46451bd --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/CryingObsidianRecipe.java @@ -0,0 +1,19 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapelessRecipe; + +public class CryingObsidianRecipe extends Craftable { + public CryingObsidianRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().cryingObsidianEnabled()) return; + + ShapelessRecipe recipe = getUtil().shapeless(Material.CRYING_OBSIDIAN, "crying_obsidian_recipe"); + recipe.addIngredient(1, Material.OBSIDIAN); + recipe.addIngredient(4, Material.GHAST_TEAR); + recipe.getResult().setAmount(2); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/DragonEggRecipe.java b/src/main/java/io/github/paldiu/recipes/DragonEggRecipe.java new file mode 100644 index 0000000..55976bb --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/DragonEggRecipe.java @@ -0,0 +1,21 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class DragonEggRecipe extends Craftable { + + public DragonEggRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().dragonEggEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.DRAGON_EGG, "dragon_egg_recipe"); + recipe.shape("obo", "beb", "obo"); + recipe.setIngredient('o', Material.OBSIDIAN); + recipe.setIngredient('b', Material.DRAGON_BREATH); + recipe.setIngredient('e', Material.DRAGON_HEAD); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/EggRecipes.java b/src/main/java/io/github/paldiu/recipes/EggRecipes.java new file mode 100644 index 0000000..e4cd8dc --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/EggRecipes.java @@ -0,0 +1,666 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; +import org.bukkit.inventory.ShapelessRecipe; + +public class EggRecipes extends Craftable { + public EggRecipes(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().eggsEnabled()) return; + + beeEgg(); + blazeEgg(); + caveSpiderEgg(); + creeperEgg(); + dolphinEgg(); + drownedEgg(); + elderGuardEgg(); + endermanEgg(); + endermiteEgg(); + evokerEgg(); + foxEgg(); + ghastEgg(); + guardianEgg(); + hoglinEgg(); + huskEgg(); + llamaEgg(); + magmaCubeEgg(); + pandaEgg(); + phantomEgg(); + piglinEgg(); + pillagerEgg(); + polarBearEgg(); + ravagerEgg(); + shulkerEgg(); + silverfishEgg(); + skeletonEgg(); + slimeEgg(); + spiderEgg(); + strayEgg(); + striderEgg(); + vexEgg(); + vindicatorEgg(); + witchEgg(); + witherSkeletonEgg(); + wolfEgg(); + zoglinEgg(); + zombieEgg(); + zombieVillagerEgg(); + zPiglinEgg(); + //non-hostile + batEgg(); + catEgg(); + chickenEgg(); + codEgg(); + cowEgg(); + donkeyEgg(); + horseEgg(); + mooshroomEgg(); + muleEgg(); + ocelotEgg(); + parrotEgg(); + pigEgg(); + pufferfishEgg(); + rabbitEgg(); + salmonEgg(); + sheepEgg(); + sHorseEgg(); + squidEgg(); + traderEgg(); + traderLlamaEgg(); + tropicalFishEgg(); + turtleEgg(); + villagerEgg(); + zHorseEgg(); + } + + private void beeEgg() { + ShapedRecipe beeEgg = getUtil().shaped(Material.BEE_SPAWN_EGG, "bee_egg_recipe"); + beeEgg.shape("aha","heh","aha"); + beeEgg.setIngredient('a', Material.AIR); + beeEgg.setIngredient('h', Material.HONEYCOMB); + beeEgg.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(beeEgg); + } + + private void blazeEgg() { + ShapedRecipe blazeEgg = getUtil().shaped(Material.BLAZE_SPAWN_EGG, "blaze_egg_recipe"); + blazeEgg.shape("sbs","beb","sbs"); + blazeEgg.setIngredient('s', Material.SOUL_SOIL); + blazeEgg.setIngredient('b', Material.BLAZE_ROD); + blazeEgg.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(blazeEgg); + } + + private void caveSpiderEgg() { + ShapedRecipe caveSpiderEgg = getUtil().shaped(Material.CAVE_SPIDER_SPAWN_EGG, "cave_spider_egg_recipe"); + caveSpiderEgg.shape("afa","ses","afa"); + caveSpiderEgg.setIngredient('a', Material.AIR); + caveSpiderEgg.setIngredient('f', Material.FERMENTED_SPIDER_EYE); + caveSpiderEgg.setIngredient('s', Material.SPIDER_EYE); + caveSpiderEgg.setIngredient('e', Material.SPIDER_SPAWN_EGG); + getPlugin().getServer().addRecipe(caveSpiderEgg); + } + + private void creeperEgg() { + ShapedRecipe creeperEgg = getUtil().shaped(Material.CREEPER_SPAWN_EGG, "creeper_egg_recipe"); + creeperEgg.shape("aga","geg","aga"); + creeperEgg.setIngredient('a', Material.AIR); + creeperEgg.setIngredient('g', Material.GUNPOWDER); + creeperEgg.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(creeperEgg); + } + + private void dolphinEgg() { + ShapedRecipe dolphin = getUtil().shaped(Material.DOLPHIN_SPAWN_EGG, "dolphin_egg_recipe"); + dolphin.shape("aca","wew","aca"); + dolphin.setIngredient('a', Material.AIR); + dolphin.setIngredient('w', Material.WATER_BUCKET); + dolphin.setIngredient('c', Material.COD); + dolphin.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(dolphin); + } + + private void drownedEgg() { + ShapedRecipe drowned = getUtil().shaped(Material.DROWNED_SPAWN_EGG, "drowned_egg_recipe"); + drowned.shape("awa","fef","awa"); + drowned.setIngredient('a', Material.AIR); + drowned.setIngredient('w', Material.WATER_BUCKET); + drowned.setIngredient('f', Material.FISHING_ROD); + drowned.setIngredient('e', Material.ZOMBIE_SPAWN_EGG); + getPlugin().getServer().addRecipe(drowned); + } + + private void elderGuardEgg() { + ShapedRecipe eldGuard = getUtil().shaped(Material.ELDER_GUARDIAN_SPAWN_EGG, "elder_guardian_egg_recipe"); + eldGuard.shape("apa","ses","apa"); + eldGuard.setIngredient('a', Material.AIR); + eldGuard.setIngredient('p', Material.PRISMARINE_SHARD); + eldGuard.setIngredient('e', Material.GUARDIAN_SPAWN_EGG); + eldGuard.setIngredient('s', Material.SPONGE); + getPlugin().getServer().addRecipe(eldGuard); + } + + private void endermanEgg() { + ShapedRecipe enderman = getUtil().shaped(Material.ENDERMAN_SPAWN_EGG, "enderman_egg_recipe"); + enderman.shape("apa","pep","apa"); + enderman.setIngredient('a', Material.AIR); + enderman.setIngredient('p', Material.ENDER_PEARL); + enderman.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(enderman); + } + + private void endermiteEgg() { + ShapedRecipe endermite = getUtil().shaped(Material.ENDERMITE_SPAWN_EGG, "endermite_egg_recipe"); + endermite.shape("apa","cec","apa"); + endermite.setIngredient('a', Material.AIR); + endermite.setIngredient('p', Material.ENDER_PEARL); + endermite.setIngredient('c', Material.CHORUS_FRUIT); + endermite.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(endermite); + } + + private void evokerEgg() { + ShapedRecipe evoker = getUtil().shaped(Material.EVOKER_SPAWN_EGG, "evoker_egg_recipe"); + evoker.shape("ata","eve","ata"); + evoker.setIngredient('a', Material.AIR); + evoker.setIngredient('t', Material.TOTEM_OF_UNDYING); + evoker.setIngredient('e', Material.EMERALD); + evoker.setIngredient('v', Material.VINDICATOR_SPAWN_EGG); + getPlugin().getServer().addRecipe(evoker); + } + + private void foxEgg() { + ShapedRecipe fox = getUtil().shaped(Material.FOX_SPAWN_EGG, "fox_egg_recipe"); + fox.shape("asa","ses","asa"); + fox.setIngredient('a', Material.AIR); + fox.setIngredient('s', Material.SWEET_BERRIES); + fox.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(fox); + } + + private void ghastEgg() { + ShapedRecipe ghast = getUtil().shaped(Material.GHAST_SPAWN_EGG, "ghast_egg_recipe"); + ghast.shape("sts","geg","sts"); + ghast.setIngredient('s', Material.SOUL_SOIL); + ghast.setIngredient('t', Material.GHAST_TEAR); + ghast.setIngredient('g', Material.GUNPOWDER); + ghast.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(ghast); + } + + private void guardianEgg() { + ShapedRecipe guardian = getUtil().shaped(Material.GUARDIAN_SPAWN_EGG, "guardian_egg_recipe"); + guardian.shape("apa","pep","apa"); + guardian.setIngredient('a', Material.AIR); + guardian.setIngredient('p', Material.PRISMARINE_SHARD); + guardian.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(guardian); + } + + private void hoglinEgg() { + ShapedRecipe hoglin = getUtil().shaped(Material.HOGLIN_SPAWN_EGG, "hoglin_egg_recipe"); + hoglin.shape("sls","pep","sls"); + hoglin.setIngredient('s', Material.SOUL_SOIL); + hoglin.setIngredient('p', Material.PORKCHOP); + hoglin.setIngredient('l', Material.LEATHER); + hoglin.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(hoglin); + } + + private void huskEgg() { + ShapedRecipe husk = getUtil().shaped(Material.HUSK_SPAWN_EGG, "husk_egg_recipe"); + husk.shape("asa","rer","asa"); + husk.setIngredient('a', Material.AIR); + husk.setIngredient('s', Material.SAND); + husk.setIngredient('e', Material.ZOMBIE_SPAWN_EGG); + husk.setIngredient('r', Material.ROTTEN_FLESH); + getPlugin().getServer().addRecipe(husk); + } + + private void llamaEgg() { + ShapedRecipe llama = getUtil().shaped(Material.LLAMA_SPAWN_EGG, "llama_egg_recipe"); + llama.shape("aca","lel","aca"); + llama.setIngredient('a', Material.AIR); + llama.setIngredient('c', Material.WHITE_CARPET); + llama.setIngredient('e', Material.EGG); + llama.setIngredient('l', Material.LEATHER); + getPlugin().getServer().addRecipe(llama); + } + + private void magmaCubeEgg() { + ShapedRecipe magma_cube = getUtil().shaped(Material.MAGMA_CUBE_SPAWN_EGG, "magma_cube_egg_recipe"); + magma_cube.shape("scs","cec","scs"); + magma_cube.setIngredient('s', Material.SOUL_SOIL); + magma_cube.setIngredient('c', Material.MAGMA_CREAM); + magma_cube.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(magma_cube); + } + + private void pandaEgg() { + ShapedRecipe panda = getUtil().shaped(Material.PANDA_SPAWN_EGG, "panda_egg_recipe"); + panda.shape("aba","beb","aba"); + panda.setIngredient('a', Material.AIR); + panda.setIngredient('b', Material.BAMBOO); + panda.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(panda); + } + + private void phantomEgg() { + ShapedRecipe phantom = getUtil().shaped(Material.PHANTOM_SPAWN_EGG, "phantom_egg_recipe"); + phantom.shape("ama","mem","ama"); + phantom.setIngredient('a', Material.AIR); + phantom.setIngredient('m', Material.PHANTOM_MEMBRANE); + phantom.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(phantom); + } + + private void piglinEgg() { + ShapedRecipe piglin = getUtil().shaped(Material.PIGLIN_SPAWN_EGG, "piglin_egg_recipe"); + piglin.shape("sgs","nen","sgs"); + piglin.setIngredient('s', Material.SOUL_SOIL); + piglin.setIngredient('n', Material.GOLD_NUGGET); + piglin.setIngredient('g', Material.GOLD_INGOT); + piglin.setIngredient('e', Material.PIG_SPAWN_EGG); + getPlugin().getServer().addRecipe(piglin); + } + + private void pillagerEgg() { + ShapedRecipe pillager = getUtil().shaped(Material.PILLAGER_SPAWN_EGG, "pillager_egg_recipe"); + pillager.shape("aca","*e*","aca"); + pillager.setIngredient('a', Material.AIR); + pillager.setIngredient('c', Material.CROSSBOW); + pillager.setIngredient('*', Material.ARROW); + pillager.setIngredient('e', Material.VILLAGER_SPAWN_EGG); + getPlugin().getServer().addRecipe(pillager); + } + + private void polarBearEgg() { + ShapedRecipe polar_bear = getUtil().shaped(Material.POLAR_BEAR_SPAWN_EGG, "polar_bear_egg_recipe"); + polar_bear.shape("aca","ses","aca"); + polar_bear.setIngredient('a', Material.AIR); + polar_bear.setIngredient('c', Material.COD); + polar_bear.setIngredient('e', Material.EGG); + polar_bear.setIngredient('s', Material.SALMON); + getPlugin().getServer().addRecipe(polar_bear); + } + + private void ravagerEgg() { + ShapedRecipe ravager = getUtil().shaped(Material.RAVAGER_SPAWN_EGG, "ravager_egg_recipe"); + ravager.shape("asa","ses","asa"); + ravager.setIngredient('a', Material.AIR); + ravager.setIngredient('s', Material.SADDLE); + ravager.setIngredient('e', Material.HOGLIN_SPAWN_EGG); + getPlugin().getServer().addRecipe(ravager); + } + + private void shulkerEgg() { + ShapedRecipe shulker = getUtil().shaped(Material.SHULKER_SPAWN_EGG, "shulker_egg_recipe"); + shulker.shape("scs","beb","scs"); + shulker.setIngredient('s', Material.END_STONE); + shulker.setIngredient('c', Material.CHORUS_FRUIT); + shulker.setIngredient('b', Material.SHULKER_SHELL); + shulker.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(shulker); + } + + private void silverfishEgg() { + ShapedRecipe silverfish = getUtil().shaped(Material.SILVERFISH_SPAWN_EGG, "silverfish_egg_recipe"); + silverfish.shape("asa","cec","asa"); + silverfish.setIngredient('a', Material.AIR); + silverfish.setIngredient('s', Material.STONE_BRICKS); + silverfish.setIngredient('c', Material.CHISELED_STONE_BRICKS); + silverfish.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(silverfish); + } + + private void skeletonEgg() { + ShapedRecipe skeleton = getUtil().shaped(Material.SKELETON_SPAWN_EGG, "skeleton_egg_recipe"); + skeleton.shape("aba","beb","aba"); + skeleton.setIngredient('a', Material.AIR); + skeleton.setIngredient('b', Material.BONE); + skeleton.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(skeleton); + } + + private void slimeEgg() { + ShapedRecipe slime = getUtil().shaped(Material.SLIME_SPAWN_EGG, "slime_egg_recipe"); + slime.shape("asa","ses","asa"); + slime.setIngredient('a', Material.AIR); + slime.setIngredient('s', Material.SLIME_BALL); + slime.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(slime); + } + + private void spiderEgg() { + ShapedRecipe spider = getUtil().shaped(Material.SPIDER_SPAWN_EGG, "spider_egg_recipe"); + spider.shape("aia","ses","aia"); + spider.setIngredient('a', Material.AIR); + spider.setIngredient('i', Material.SPIDER_EYE); + spider.setIngredient('s', Material.STRING); + spider.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(spider); + } + + private void strayEgg() { + ShapedRecipe stray = getUtil().shaped(Material.STRAY_SPAWN_EGG, "stray_egg_recipe"); + stray.shape("asa","iei","asa"); + stray.setIngredient('a', Material.AIR); + stray.setIngredient('s', Material.SNOWBALL); + stray.setIngredient('e', Material.SKELETON_SPAWN_EGG); + stray.setIngredient('i', Material.ICE); + getPlugin().getServer().addRecipe(stray); + } + + private void striderEgg() { + ShapedRecipe strider = getUtil().shaped(Material.STRIDER_SPAWN_EGG, "strider_egg_recipe"); + strider.shape("sls","lel","sls"); + strider.setIngredient('s', Material.SOUL_SOIL); + strider.setIngredient('l', Material.LAVA_BUCKET); + strider.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(strider); + } + + private void vexEgg() { + ShapedRecipe vex = getUtil().shaped(Material.VEX_SPAWN_EGG, "vex_egg_recipe"); + vex.shape("afa","fef","afa"); + vex.setIngredient('a', Material.AIR); + vex.setIngredient('f', Material.FEATHER); + vex.setIngredient('e', Material.EVOKER_SPAWN_EGG); + getPlugin().getServer().addRecipe(vex); + } + + private void vindicatorEgg() { + ShapedRecipe vindicator = getUtil().shaped(Material.VINDICATOR_SPAWN_EGG, "vindicator_egg_recipe"); + vindicator.shape("axa","*e*","axa"); + vindicator.setIngredient('a', Material.AIR); + vindicator.setIngredient('x', Material.IRON_AXE); + vindicator.setIngredient('e', Material.PILLAGER_SPAWN_EGG); + vindicator.setIngredient('*', Material.EMERALD); + getPlugin().getServer().addRecipe(vindicator); + } + + private void witchEgg() { + ShapedRecipe witch = getUtil().shaped(Material.WITCH_SPAWN_EGG, "witch_egg_recipe"); + witch.shape("apa","ses","apa"); + witch.setIngredient('a', Material.AIR); + witch.setIngredient('p', Material.SPLASH_POTION); + witch.setIngredient('s', Material.STICK); + witch.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(witch); + } + + private void witherSkeletonEgg() { + ShapedRecipe wither_skeleton = getUtil().shaped(Material.WITHER_SKELETON_SPAWN_EGG, "wither_skeleton_egg_recipe"); + wither_skeleton.shape("scs","cec","scs"); + wither_skeleton.setIngredient('s', Material.SOUL_SOIL); + wither_skeleton.setIngredient('c', Material.COAL); + wither_skeleton.setIngredient('e', Material.SKELETON_SPAWN_EGG); + getPlugin().getServer().addRecipe(wither_skeleton); + } + + private void wolfEgg() { + ShapedRecipe wolf = getUtil().shaped(Material.WOLF_SPAWN_EGG, "wolf_egg_recipe"); + wolf.shape("aba","nen","aba"); + wolf.setIngredient('a', Material.AIR); + wolf.setIngredient('b', Material.BONE); + wolf.setIngredient('n', Material.NAME_TAG); + wolf.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(wolf); + } + + private void zoglinEgg() { + ShapedRecipe zoglin = getUtil().shaped(Material.ZOGLIN_SPAWN_EGG, "zoglin_egg_recipe"); + zoglin.shape("srs","rer","srs"); + zoglin.setIngredient('s', Material.SOUL_SOIL); + zoglin.setIngredient('r', Material.ROTTEN_FLESH); + zoglin.setIngredient('e', Material.HOGLIN_SPAWN_EGG); + getPlugin().getServer().addRecipe(zoglin); + } + + private void zombieEgg() { + ShapedRecipe zombie = getUtil().shaped(Material.ZOMBIE_SPAWN_EGG, "zombie_egg_recipe"); + zombie.shape("ara","rer","ara"); + zombie.setIngredient('a', Material.AIR); + zombie.setIngredient('r', Material.ROTTEN_FLESH); + zombie.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(zombie); + } + + private void zombieVillagerEgg() { + ShapedRecipe zombie_villager = getUtil().shaped(Material.ZOMBIE_VILLAGER_SPAWN_EGG, "z_villager_egg_recipe"); + zombie_villager.shape("ara","rer","ara"); + zombie_villager.setIngredient('a', Material.AIR); + zombie_villager.setIngredient('r', Material.ROTTEN_FLESH); + zombie_villager.setIngredient('e', Material.VILLAGER_SPAWN_EGG); + getPlugin().getServer().addRecipe(zombie_villager); + } + + private void zPiglinEgg() { + ShapedRecipe zombie_piglin = getUtil().shaped(Material.ZOMBIFIED_PIGLIN_SPAWN_EGG, "z_piglin_egg_recipe"); + zombie_piglin.shape("srs","rer","srs"); + zombie_piglin.setIngredient('s', Material.SOUL_SOIL); + zombie_piglin.setIngredient('r', Material.ROTTEN_FLESH); + zombie_piglin.setIngredient('e', Material.PIGLIN_SPAWN_EGG); + getPlugin().getServer().addRecipe(zombie_piglin); + } + + // NON-HOSTILE \\ + + private void batEgg() { + ShapedRecipe bat = getUtil().shaped(Material.BAT_SPAWN_EGG, "bat_egg_recipe"); + bat.shape("aba","fef","aba"); + bat.setIngredient('a', Material.AIR); + bat.setIngredient('b', Material.APPLE); + bat.setIngredient('e', Material.CHICKEN_SPAWN_EGG); + bat.setIngredient('f', Material.FEATHER); + getPlugin().getServer().addRecipe(bat); + } + + private void catEgg() { + ShapedRecipe cat = getUtil().shaped(Material.CAT_SPAWN_EGG, "cat_egg_recipe"); + cat.shape("aca","ses","aca"); + cat.setIngredient('a', Material.AIR); + cat.setIngredient('c', Material.COD); + cat.setIngredient('s', Material.SALMON); + cat.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(cat); + } + + private void chickenEgg() { + ShapedRecipe chimken = getUtil().shaped(Material.CHICKEN_SPAWN_EGG, "chicken_egg_recipe"); + chimken.shape("afa","fef","afa"); + chimken.setIngredient('a', Material.AIR); + chimken.setIngredient('f', Material.FEATHER); + chimken.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(chimken); + } + + private void codEgg() { + ShapedRecipe cod = getUtil().shaped(Material.COD_SPAWN_EGG, "cod_egg_recipe"); + cod.shape("aca","cec","aca"); + cod.setIngredient('a', Material.AIR); + cod.setIngredient('c', Material.COD); + cod.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(cod); + } + + private void cowEgg() { + ShapedRecipe coo = getUtil().shaped(Material.COW_SPAWN_EGG, "cow_egg_recipe"); + coo.shape("ala","lel","ala"); + coo.setIngredient('a', Material.AIR); + coo.setIngredient('l', Material.LEATHER); + coo.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(coo); + } + + private void donkeyEgg() { + ShapelessRecipe donkeh = getUtil().shapeless(Material.DONKEY_SPAWN_EGG, "donkey_egg_recipe"); + donkeh.addIngredient(Material.HORSE_SPAWN_EGG); + getPlugin().getServer().addRecipe(donkeh); + } + + private void horseEgg() { + ShapedRecipe hoarse = getUtil().shaped(Material.HORSE_SPAWN_EGG, "horse_egg_recipe"); + hoarse.shape("asa","lel","ala"); + hoarse.setIngredient('a', Material.AIR); + hoarse.setIngredient('s', Material.SADDLE); + hoarse.setIngredient('e', Material.EGG); + hoarse.setIngredient('l', Material.LEATHER); + getPlugin().getServer().addRecipe(hoarse); + } + + private void mooshroomEgg() { + ShapedRecipe coo_pat = getUtil().shaped(Material.MOOSHROOM_SPAWN_EGG, "mooshroom_egg_recipe"); + coo_pat.shape("ara","rer","ara"); + coo_pat.setIngredient('a', Material.AIR); + coo_pat.setIngredient('r', Material.RED_MUSHROOM); + coo_pat.setIngredient('e', Material.COW_SPAWN_EGG); + getPlugin().getServer().addRecipe(coo_pat); + } + + private void muleEgg() { + ShapelessRecipe muhle = getUtil().shapeless(Material.MULE_SPAWN_EGG, "mule_egg_recipe"); + muhle.addIngredient(2, Material.CHEST); + muhle.addIngredient(1, Material.HORSE_SPAWN_EGG); + getPlugin().getServer().addRecipe(muhle); + } + + private void ocelotEgg() { + ShapedRecipe ocky_way = getUtil().shaped(Material.OCELOT_SPAWN_EGG, "ocelot_egg_recipe"); + ocky_way.shape("aca","ses","aca"); + ocky_way.setIngredient('a', Material.AIR); + ocky_way.setIngredient('c', Material.COCOA_BEANS); + ocky_way.setIngredient('s', Material.SALMON); + ocky_way.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(ocky_way); + } + + private void parrotEgg() { + ShapedRecipe garrote = getUtil().shaped(Material.PARROT_SPAWN_EGG, "parrot_egg_recipe"); + garrote.shape("asa","fef","asa"); + garrote.setIngredient('a', Material.AIR); + garrote.setIngredient('s', Material.WHEAT_SEEDS); + garrote.setIngredient('f', Material.FEATHER); + garrote.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(garrote); + } + + private void pigEgg() { + ShapedRecipe pidge = getUtil().shaped(Material.PIG_SPAWN_EGG, "pig_egg_recipe"); + pidge.shape("aca","cec","aca"); + pidge.setIngredient('a', Material.AIR); + pidge.setIngredient('c', Material.PORKCHOP); + pidge.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(pidge); + } + + private void pufferfishEgg() { + ShapedRecipe paisson = getUtil().shaped(Material.PUFFERFISH_SPAWN_EGG, "pufferfish_egg_recipe"); + paisson.shape("apa","pep","apa"); + paisson.setIngredient('a', Material.AIR); + paisson.setIngredient('p', Material.PUFFERFISH); + paisson.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(paisson); + } + + private void rabbitEgg() { + ShapedRecipe rebillet = getUtil().shaped(Material.RABBIT_SPAWN_EGG, "rabbit_egg_recipe"); + rebillet.shape("aha","heh","afa"); + rebillet.setIngredient('a', Material.AIR); + rebillet.setIngredient('h', Material.RABBIT_HIDE); + rebillet.setIngredient('e', Material.EGG); + rebillet.setIngredient('f', Material.RABBIT_FOOT); + getPlugin().getServer().addRecipe(rebillet); + } + + private void salmonEgg() { + ShapedRecipe slammin_salmon = getUtil().shaped(Material.SALMON_SPAWN_EGG, "salmon_egg_recipe"); + slammin_salmon.shape("asa","ses","asa"); + slammin_salmon.setIngredient('a', Material.AIR); + slammin_salmon.setIngredient('s', Material.SALMON); + slammin_salmon.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(slammin_salmon); + } + + private void sheepEgg() { + ShapedRecipe haggis = getUtil().shaped(Material.SHEEP_SPAWN_EGG, "sheep_egg_recipe"); + haggis.shape("awa","mem","awa"); + haggis.setIngredient('a', Material.AIR); + haggis.setIngredient('w', Material.WHITE_WOOL); + haggis.setIngredient('m', Material.MUTTON); + haggis.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(haggis); + } + + private void sHorseEgg() { + ShapelessRecipe spooky_horse = getUtil().shapeless(Material.SKELETON_HORSE_SPAWN_EGG, "s_horse_egg_recipe"); + spooky_horse.addIngredient(1, Material.SKELETON_SPAWN_EGG); + spooky_horse.addIngredient(1, Material.HORSE_SPAWN_EGG); + getPlugin().getServer().addRecipe(spooky_horse); + } + + private void squidEgg() { + ShapedRecipe squidge = getUtil().shaped(Material.SQUID_SPAWN_EGG, "squid_egg_recipe"); + squidge.shape("aia","iei","aia"); + squidge.setIngredient('a', Material.AIR); + squidge.setIngredient('i', Material.INK_SAC); + squidge.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(squidge); + } + + private void tropicalFishEgg() { + ShapelessRecipe trop_fish = getUtil().shapeless(Material.TROPICAL_FISH_SPAWN_EGG, "t_fish_egg_recipe"); + trop_fish.addIngredient(1, Material.COD); + trop_fish.addIngredient(1, Material.EGG); + trop_fish.addIngredient(1, Material.PUFFERFISH); + trop_fish.addIngredient(1, Material.SALMON); + trop_fish.addIngredient(1, Material.TROPICAL_FISH); + getPlugin().getServer().addRecipe(trop_fish); + } + + private void traderLlamaEgg() { + ShapelessRecipe fancy_llama = getUtil().shapeless(Material.TRADER_LLAMA_SPAWN_EGG, "t_llama_egg_recipe"); + fancy_llama.addIngredient(1, Material.LLAMA_SPAWN_EGG); + fancy_llama.addIngredient(1, Material.WANDERING_TRADER_SPAWN_EGG); + getPlugin().getServer().addRecipe(fancy_llama); + } + + private void turtleEgg() { + ShapedRecipe tortuga = getUtil().shaped(Material.TURTLE_SPAWN_EGG, "turtle_egg_recipe"); + tortuga.shape("asa","ses","asa"); + tortuga.setIngredient('a', Material.AIR); + tortuga.setIngredient('s', Material.SCUTE); + tortuga.setIngredient('e', Material.EGG); + getPlugin().getServer().addRecipe(tortuga); + } + + private void villagerEgg() { + ShapedRecipe moron = getUtil().shaped(Material.VILLAGER_SPAWN_EGG, "villager_egg_recipe"); + moron.shape("aea","p*p","aea"); + moron.setIngredient('a', Material.AIR); + moron.setIngredient('e', Material.EGG); + moron.setIngredient('p', Material.POPPY); + moron.setIngredient('*', Material.EGG); + getPlugin().getServer().addRecipe(moron); + } + + private void traderEgg() { + ShapedRecipe dinkhead = getUtil().shaped(Material.WANDERING_TRADER_SPAWN_EGG, "trader_egg_recipe"); + dinkhead.shape("aea","e*e","aea"); + dinkhead.setIngredient('a', Material.AIR); + dinkhead.setIngredient('e', Material.EMERALD); + dinkhead.setIngredient('*', Material.VILLAGER_SPAWN_EGG); + getPlugin().getServer().addRecipe(dinkhead); + } + + private void zHorseEgg() { + ShapelessRecipe scary_horus = getUtil().shapeless(Material.ZOMBIE_HORSE_SPAWN_EGG, "z_horse_egg_recipe"); + scary_horus.addIngredient(1, Material.ZOMBIE_SPAWN_EGG); + scary_horus.addIngredient(1, Material.HORSE_SPAWN_EGG); + getPlugin().getServer().addRecipe(scary_horus); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/ElytraRecipe.java b/src/main/java/io/github/paldiu/recipes/ElytraRecipe.java new file mode 100644 index 0000000..25c5df1 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/ElytraRecipe.java @@ -0,0 +1,22 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class ElytraRecipe extends Craftable { + public ElytraRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().elytraEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.ELYTRA, "elytra_recipe"); + recipe.shape("sds","mnm","mam"); + recipe.setIngredient('s', Material.STRING); + recipe.setIngredient('d', Material.DIAMOND); + recipe.setIngredient('m', Material.PHANTOM_MEMBRANE); + recipe.setIngredient('n', Material.NETHER_STAR); + recipe.setIngredient('a', Material.AIR); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/EndFrameRecipe.java b/src/main/java/io/github/paldiu/recipes/EndFrameRecipe.java new file mode 100644 index 0000000..e1edb0a --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/EndFrameRecipe.java @@ -0,0 +1,21 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class EndFrameRecipe extends Craftable { + public EndFrameRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().endFrameEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.END_PORTAL_FRAME, "end_frame_recipe"); + recipe.shape("pap","eoe","eee"); + recipe.setIngredient('p', Material.ENDER_PEARL); + recipe.setIngredient('a', Material.AIR); + recipe.setIngredient('e', Material.END_STONE); + recipe.setIngredient('o', Material.OBSIDIAN); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/HorseArmorRecipe.java b/src/main/java/io/github/paldiu/recipes/HorseArmorRecipe.java new file mode 100644 index 0000000..a032117 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/HorseArmorRecipe.java @@ -0,0 +1,49 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class HorseArmorRecipe extends Craftable { + + public HorseArmorRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().horseArmorEnabled()) return; + + ShapedRecipe leather = getUtil().shaped(Material.LEATHER_HORSE_ARMOR, "leather_horse_armor_recipe"); + leather.shape("aal","lcl","lsi"); + leather.setIngredient('a', Material.AIR); + leather.setIngredient('s', Material.STRING); + leather.setIngredient('l', Material.LEATHER); + leather.setIngredient('c', Material.SADDLE); + leather.setIngredient('i', Material.IRON_INGOT); + getPlugin().getServer().addRecipe(leather); + + ShapedRecipe iron = getUtil().shaped(Material.IRON_HORSE_ARMOR, "iron_horse_armor_recipe"); + iron.shape("aai","ici","isi"); + iron.setIngredient('a', Material.AIR); + iron.setIngredient('s', Material.STRING); + iron.setIngredient('c', Material.SADDLE); + iron.setIngredient('i', Material.IRON_INGOT); + getPlugin().getServer().addRecipe(iron); + + ShapedRecipe gold = getUtil().shaped(Material.GOLDEN_HORSE_ARMOR, "golden_horse_armor_recipe"); + gold.shape("aag","g*g","gsi"); + gold.setIngredient('a', Material.AIR); + gold.setIngredient('s', Material.STRING); + gold.setIngredient('g', Material.GOLD_INGOT); + gold.setIngredient('*', Material.SADDLE); + gold.setIngredient('i', Material.IRON_INGOT); + getPlugin().getServer().addRecipe(gold); + + ShapedRecipe diamond = getUtil().shaped(Material.DIAMOND_HORSE_ARMOR, "diamond_horse_armor_recipe"); + diamond.shape("aad","d*d","dsi"); + diamond.setIngredient('a', Material.AIR); + diamond.setIngredient('s', Material.STRING); + diamond.setIngredient('d', Material.DIAMOND); + diamond.setIngredient('*', Material.SADDLE); + diamond.setIngredient('i', Material.IRON_INGOT); + getPlugin().getServer().addRecipe(diamond); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/MusicDiscRecipes.java b/src/main/java/io/github/paldiu/recipes/MusicDiscRecipes.java new file mode 100644 index 0000000..33e9220 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/MusicDiscRecipes.java @@ -0,0 +1,133 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; +import org.bukkit.inventory.ShapelessRecipe; + +public class MusicDiscRecipes extends Craftable { + public MusicDiscRecipes(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().musicDiscsEnabled()) return; + + cd11(); + cd13(); + cdCAT(); + cdBLOCKS(); + cdCHIRP(); + cdFAR(); + cdMALL(); + cdMELLOHI(); + cdSTAL(); + cdSTRAD(); + cdWARD(); + cdWAIT(); + cdPIGSTEP(); + } + + private void cd13() { + ShapedRecipe thirteen = getUtil().shaped(Material.MUSIC_DISC_13, "13_recipe"); + thirteen.shape("fff", "fyf", "fff"); + thirteen.setIngredient('f', Material.FLINT); + thirteen.setIngredient('y', Material.YELLOW_DYE); + getPlugin().getServer().addRecipe(thirteen); + } + + private void cdCAT() { + ShapedRecipe cat = getUtil().shaped(Material.MUSIC_DISC_CAT, "cat_recipe"); + cat.shape("fff", "fgf", "fff"); + cat.setIngredient('f', Material.FLINT); + cat.setIngredient('g', Material.LIME_DYE); + getPlugin().getServer().addRecipe(cat); + } + + private void cdBLOCKS() { + ShapedRecipe blocks = getUtil().shaped(Material.MUSIC_DISC_BLOCKS, "blocks_recipe"); + blocks.shape("fff", "fof", "fff"); + blocks.setIngredient('f', Material.FLINT); + blocks.setIngredient('o', Material.ORANGE_DYE); + getPlugin().getServer().addRecipe(blocks); + } + + private void cdCHIRP() { + ShapedRecipe chirp = getUtil().shaped(Material.MUSIC_DISC_CHIRP, "chirp_recipe"); + chirp.shape("fff", "frf", "fff"); + chirp.setIngredient('f', Material.FLINT); + chirp.setIngredient('r', Material.RED_DYE); + getPlugin().getServer().addRecipe(chirp); + } + + private void cdFAR() { + ShapelessRecipe far = getUtil().shapeless(Material.MUSIC_DISC_FAR, "far_recipe"); + far.addIngredient(2, Material.BONE_MEAL); + far.addIngredient(1, Material.MUSIC_DISC_CAT); + getPlugin().getServer().addRecipe(far); + } + + private void cdMALL() { + ShapedRecipe mall = getUtil().shaped(Material.MUSIC_DISC_MALL, "mall_recipe"); + mall.shape("fff", "fpf", "fff"); + mall.setIngredient('f', Material.FLINT); + mall.setIngredient('p', Material.PURPLE_DYE); + getPlugin().getServer().addRecipe(mall); + } + + private void cdMELLOHI() { + ShapedRecipe mellohi = getUtil().shaped(Material.MUSIC_DISC_MELLOHI, "mellohi_recipe"); + mellohi.shape("fff", "fpf", "fff"); + mellohi.setIngredient('f', Material.FLINT); + mellohi.setIngredient('p', Material.PINK_DYE); + getPlugin().getServer().addRecipe(mellohi); + } + + private void cdSTAL() { + ShapedRecipe stal = getUtil().shaped(Material.MUSIC_DISC_STAL, "stal_recipe"); + stal.shape("fff", "fbf", "fff"); + stal.setIngredient('f', Material.FLINT); + stal.setIngredient('b', Material.BLACK_DYE); + getPlugin().getServer().addRecipe(stal); + } + + private void cdSTRAD() { + ShapedRecipe strad = getUtil().shaped(Material.MUSIC_DISC_STRAD, "strad_recipe"); + strad.shape("fff", "fwf", "fff"); + strad.setIngredient('f', Material.FLINT); + strad.setIngredient('w', Material.WHITE_DYE); + getPlugin().getServer().addRecipe(strad); + } + + private void cdWARD() { + ShapedRecipe ward = getUtil().shaped(Material.MUSIC_DISC_WARD, "ward_recipe"); + ward.shape("fff", "fgf", "fff"); + ward.setIngredient('f', Material.FLINT); + ward.setIngredient('g', Material.GREEN_DYE); + getPlugin().getServer().addRecipe(ward); + } + + private void cd11() { + ShapedRecipe eleven = getUtil().shaped(Material.MUSIC_DISC_11, "11_recipe"); + eleven.shape("fff", "fbf", "ffa"); + eleven.setIngredient('f', Material.FLINT); + eleven.setIngredient('b', Material.BLACK_DYE); + eleven.setIngredient('a', Material.AIR); + getPlugin().getServer().addRecipe(eleven); + } + + private void cdWAIT() { + ShapedRecipe wait = getUtil().shaped(Material.MUSIC_DISC_WAIT, "wait_recipe"); + wait.shape("fff", "fbf", "fff"); + wait.setIngredient('f', Material.FLINT); + wait.setIngredient('b', Material.BLUE_DYE); + getPlugin().getServer().addRecipe(wait); + } + + private void cdPIGSTEP() { + ShapedRecipe pigstep = getUtil().shaped(Material.MUSIC_DISC_PIGSTEP, "pigstep_recipe"); + pigstep.shape("nqn", "qyq", "nqn"); + pigstep.setIngredient('n', Material.NETHER_BRICK); + pigstep.setIngredient('q', Material.QUARTZ); + pigstep.setIngredient('y', Material.YELLOW_DYE); + getPlugin().getServer().addRecipe(pigstep); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/NameTagRecipe.java b/src/main/java/io/github/paldiu/recipes/NameTagRecipe.java new file mode 100644 index 0000000..db848b2 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/NameTagRecipe.java @@ -0,0 +1,20 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class NameTagRecipe extends Craftable { + public NameTagRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().nameTagEnabled()) return; + + ShapedRecipe nametag = getUtil().shaped(Material.NAME_TAG, "nametag_recipe"); + nametag.shape("aas","apa","paa"); + nametag.setIngredient('a', Material.AIR); + nametag.setIngredient('s', Material.STRING); + nametag.setIngredient('p', Material.PAPER); + getPlugin().getServer().addRecipe(nametag); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/NetherStarRecipe.java b/src/main/java/io/github/paldiu/recipes/NetherStarRecipe.java new file mode 100644 index 0000000..762879d --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/NetherStarRecipe.java @@ -0,0 +1,22 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class NetherStarRecipe extends Craftable { + public NetherStarRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().netherStarEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.NETHER_STAR, "nether_star_recipe"); + recipe.shape("nwn","sss","bqb"); + recipe.setIngredient('n', Material.NETHER_WART); + recipe.setIngredient('w', Material.WITHER_SKELETON_SKULL); + recipe.setIngredient('s', Material.SOUL_SAND); + recipe.setIngredient('b', Material.BLAZE_ROD); + recipe.setIngredient('q', Material.QUARTZ); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/NetherWartRecipe.java b/src/main/java/io/github/paldiu/recipes/NetherWartRecipe.java new file mode 100644 index 0000000..6496283 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/NetherWartRecipe.java @@ -0,0 +1,18 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapelessRecipe; + +public class NetherWartRecipe extends Craftable { + public NetherWartRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().netherWartEnabled()) return; + + ShapelessRecipe recipe = getUtil().shapeless(Material.NETHER_WART, "netherwart_recipe"); + recipe.addIngredient(1, Material.NETHER_WART_BLOCK); + recipe.getResult().setAmount(9); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/SaddleRecipe.java b/src/main/java/io/github/paldiu/recipes/SaddleRecipe.java new file mode 100644 index 0000000..dc4b76d --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/SaddleRecipe.java @@ -0,0 +1,21 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class SaddleRecipe extends Craftable { + + public SaddleRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().saddleEnabled()) return; + + ShapedRecipe saddle = getUtil().shaped(Material.SADDLE, "saddle_recipe"); + saddle.shape("wlw", "sls", "wlw"); + saddle.setIngredient('w', Material.STICK); + saddle.setIngredient('s', Material.STRING); + saddle.setIngredient('l', Material.LEATHER); + getPlugin().getServer().addRecipe(saddle); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/SpawnerRecipe.java b/src/main/java/io/github/paldiu/recipes/SpawnerRecipe.java new file mode 100644 index 0000000..68fcb22 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/SpawnerRecipe.java @@ -0,0 +1,19 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class SpawnerRecipe extends Craftable { + public SpawnerRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().spawnerEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.SPAWNER, "spawner_recipe"); + recipe.shape("ccc","cec","ccc"); + recipe.setIngredient('c', Material.CHAIN); + recipe.setIngredient('e', Material.PIG_SPAWN_EGG); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/TotemRecipe.java b/src/main/java/io/github/paldiu/recipes/TotemRecipe.java new file mode 100644 index 0000000..feb9ca8 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/TotemRecipe.java @@ -0,0 +1,22 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class TotemRecipe extends Craftable { + public TotemRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().totemEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.TOTEM_OF_UNDYING, "totem_recipe"); + recipe.shape("aea","ibi","aga"); + recipe.setIngredient('a', Material.AIR); + recipe.setIngredient('e', Material.EMERALD); + recipe.setIngredient('i', Material.GOLD_INGOT); + recipe.setIngredient('b', Material.GOLD_BLOCK); + recipe.setIngredient('g', Material.GOLDEN_APPLE); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/java/io/github/paldiu/recipes/TridentRecipe.java b/src/main/java/io/github/paldiu/recipes/TridentRecipe.java new file mode 100644 index 0000000..1a26500 --- /dev/null +++ b/src/main/java/io/github/paldiu/recipes/TridentRecipe.java @@ -0,0 +1,20 @@ +package io.github.paldiu.recipes; + +import io.github.paldiu.Uncraftables; +import org.bukkit.Material; +import org.bukkit.inventory.ShapedRecipe; + +public class TridentRecipe extends Craftable { + public TridentRecipe(Uncraftables plugin) { + super(plugin); + + if (!getConfigValues().tridentEnabled()) return; + + ShapedRecipe recipe = getUtil().shaped(Material.TRIDENT, "trident_recipe"); + recipe.shape("add","apd","paa"); + recipe.setIngredient('a', Material.AIR); + recipe.setIngredient('p', Material.PRISMARINE_SHARD); + recipe.setIngredient('d', Material.DIAMOND); + getPlugin().getServer().addRecipe(recipe); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..83bb814 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,17 @@ +barrier: true +bedrock: true +bell: true +crying_obsidian: true +dragon_egg: true +eggs: true +elytra: true +end_frame: true +horse_armor: true +music_discs: true +name_tag: true +nether_star: true +nether_wart: true +saddle: true +spawner: true +totem: true +trident: true \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0e97ac6..7719d6a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,16 @@ name: Uncraftables -main: dev.coomware.Uncraftables -version: 1.1.0 -author: CoomWare -description: Adds in crafting recipes for all uncraftable items. -api-version: 1.16 \ No newline at end of file +main: io.github.paldiu.Uncraftables +version: 1.2.0 +author: Paldiu +description: Adds in crafting recipes for uncraftable items. +api-version: 1.19 + +commands: + reload: + description: Reloads the plugin. + permission: uncraftables.reload + +permissions: + uncraftables.reload: + description: Allows the user to reload the plugin. + default: op \ No newline at end of file