From c3bce35dc42abb59af57e63fa6982fca53e0b7a9 Mon Sep 17 00:00:00 2001 From: TheTrouper <93684527+thetrouper@users.noreply.github.com> Date: Thu, 28 Mar 2024 15:57:36 -0500 Subject: [PATCH] Added lots o commands --- .gitignore | 42 ++++ .idea/.gitignore | 3 + .idea/discord.xml | 7 + .idea/gradle.xml | 17 ++ .idea/misc.xml | 15 ++ .idea/uiDesigner.xml | 124 ++++++++++ .idea/vcs.xml | 6 + build.gradle | 76 ++++++ gradle.properties | 8 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 234 ++++++++++++++++++ gradlew.bat | 89 +++++++ libs/PDK-1.3.4.jar | Bin 0 -> 89914 bytes settings.gradle | 2 + src/main/java/functions/Text.java | 85 +++++++ .../me/trouper/ultrautils/UltraUtils.java | 95 +++++++ .../commands/UltraUtilsCommand.java | 37 +++ .../commands/gamemode/GMACommand.java | 44 ++++ .../commands/gamemode/GMCCommand.java | 43 ++++ .../commands/gamemode/GMSCommand.java | 43 ++++ .../commands/gamemode/GMSPCommand.java | 44 ++++ .../commands/gamemode/GamemodeCommand.java | 72 ++++++ .../commands/mobility/FlyCommand.java | 51 ++++ .../commands/mobility/SpeedCommand.java | 96 +++++++ .../commands/workstations/AnvilCommand.java | 23 ++ .../workstations/CartographyCommand.java | 23 ++ .../workstations/CraftingCommand.java | 23 ++ .../workstations/GrindstoneCommand.java | 23 ++ .../commands/workstations/LoomCommand.java | 23 ++ .../workstations/SmithingCommand.java | 23 ++ .../workstations/StonecutterCommand.java | 23 ++ .../me/trouper/ultrautils/data/Items.java | 4 + .../me/trouper/ultrautils/data/Storage.java | 4 + .../ultrautils/data/config/Config.java | 24 ++ .../ultrautils/events/JoinLeaveEvent.java | 31 +++ src/main/resources/plugin.yml | 118 +++++++++ 37 files changed, 1581 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/discord.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 libs/PDK-1.3.4.jar create mode 100644 settings.gradle create mode 100644 src/main/java/functions/Text.java create mode 100644 src/main/java/me/trouper/ultrautils/UltraUtils.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/UltraUtilsCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/gamemode/GMACommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/gamemode/GMCCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/gamemode/GMSCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/gamemode/GMSPCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/gamemode/GamemodeCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/mobility/FlyCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/mobility/SpeedCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/workstations/AnvilCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/workstations/CartographyCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/workstations/CraftingCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/workstations/GrindstoneCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/workstations/LoomCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/workstations/SmithingCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/commands/workstations/StonecutterCommand.java create mode 100644 src/main/java/me/trouper/ultrautils/data/Items.java create mode 100644 src/main/java/me/trouper/ultrautils/data/Storage.java create mode 100644 src/main/java/me/trouper/ultrautils/data/config/Config.java create mode 100644 src/main/java/me/trouper/ultrautils/events/JoinLeaveEvent.java create mode 100644 src/main/resources/plugin.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b63da45 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..30bab2a --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..2a65317 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..53589ce --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..522e9ee --- /dev/null +++ b/build.gradle @@ -0,0 +1,76 @@ +plugins { + id 'java' +} + +group = project.group +version = project.version + +jar { + from { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + configurations.runtimeClasspath.collect { + it.isDirectory() ? it : zipTree(it) + } + } +} + +repositories { + mavenCentral() + maven { + name = 'spigotmc-repo' + url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' + } + maven { + url = uri("https://repo.papermc.io/repository/maven-public/") + } + maven { + name = 'sonatype' + url = 'https://oss.sonatype.org/content/groups/public/' + } +} + +dependencies { + compileOnly 'io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT' + implementation 'com.google.code.gson:gson:2.10.1' + implementation files("libs/PDK-1.3.4.jar") +} + +def targetJavaVersion = 17 +java { + def javaVersion = JavaVersion.toVersion(targetJavaVersion) + sourceCompatibility = javaVersion + targetCompatibility = javaVersion + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + if (JavaVersion.current() < javaVersion) { + toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) + } +} + +tasks.withType(JavaCompile).configureEach { + if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { + options.release = targetJavaVersion + } +} + +tasks.register('copyDeps', Copy) { + from configurations.runtimeClasspath + into 'build/deps' + include '*.jar' +} + + +processResources { + def props = [version: version] + inputs.properties props + filteringCharset 'UTF-8' + filesMatching('plugin.yml') { + expand props + } +} + +compileJava.options.encoding("UTF-8") + +tasks.withType(JavaCompile) { + options.encoding = "UTF-8" +} + diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..9317c2b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,8 @@ + +# Plugin +group = 'me.trouper' +version = 0.0.1 + +# Minecraft +mc_version = 1.20.4 + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + 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 \ + "$@" + +# 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..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@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%" == "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%"=="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! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/libs/PDK-1.3.4.jar b/libs/PDK-1.3.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..e949bf16cf74b392688d46b6fee0165700ddacd0 GIT binary patch literal 89914 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 $$NX$*d| zL0(xL$otNd0;W+x2PHMMR80-A!KI~0ajXyLw=%^YQ!YBFYMjxjia+JJzNZGuMp#+y zfd8V;Eh69jf;134JfLm{GNaDf`2D<(2cYb~=rElQZdwwxUyd1!A=JUPBq zFa?EFuV{v97*e=aA6+Tjt#8SSOIyZimQh4}fkScKr3D&Xz%!0lH}y1_1nZt!FBrg9 zjvKIH4N{>!HPP9gDPq#HC5CZXYs$iUGr~Aiti>}t0|_3{nHoWH9p1HsO0O{Dg3}Y| z{A$FE@|@4on?=y)yo3CRhVGiteQ4)f(6_+)MHpOBkCiV zM|T5}rDKIE{qA0M7makG$$r$dSI2h@TD6`M$tgkNY9XGdkh3=0qpVw~Kx@{GLXat_ z@C{|3*$-YcD<%by-((xJZ_o&Cr#l5)OSUFM1+g;WmV2n9w?WfD+nbw(D$uGjo7pXVOsG{&d|`{&Z;%ZEC_VrGJ}s(N{4C)mg- zTJ0XF(6)Y5c;c*BgRVCMsa3;2c)#_4w`bSJznUG*aIJ81JHRb3+s$uq&Tt(MXVD)2 zBI|-$3&U&6iGM*TMMe7<=6!2`ulBfttxf2-)Cs7pGAJ)!p{&g=a>DZQ&#sc~g)72; zm_! zkGCw@0oSuU^9lo{&{QeX)PXman%m72V1&c$<-x65xNN+&`P<(^4+r97nvODM- zef*Bl-)uT!jxdT)U#?s`db;4YQ+#aQ)9Dm$Rrd!Fv~uHe{6qa){1I|zG{1l_7zUUq z%3aJG+UzGn8A`WH`7xW@C<|(i17EkZ?qNbj?{CC6=f{`tA3wK#NZ-{@Z5e=_6mUXLh&7umI$eQmwv}@bej9~RENvgG)vYV-|nM&6U;-=L_0dlK}NLo zBHNG{7}&D}5Nf(AidauNhmK{Ii^C8WDKlX6zAVUR0IsYHA0qw={m)y=#F)~B{W|T4 zul4iaytV&w;tt08PXBV`UkqD*m~;FK;Hr_u1aO{X{v+D!pJH-|d10g*rYUWx$#7{W zvD>nH+wfl`6jKHtt@GS!bDh_hmycR+kY8BGg)?$?(kdy$bOg)9)%&U$7@VEyGApIsDm2b=E?2ks}#CtOT-ns$7HIfeOK4VSCQ(Z|K*)P|?&QME7L8=M}94H!Kf zFJBq6Qocw|mndJ6s6ty(A{!3sqBonF zOj&PM)0q@AiR3DC%!yTU=1z>Hs8%VX7A#XEbABo>agVAKViw>jGIK|j0{g66NTyxu z_$|pPR&c{P8B1<3SWBj*Rq1~>fdYMTns*omTZ+bDgzz(E=8jMY-VLzJnD()iqY*c7~upApq8VE)@0FBq8jFR(G zE2dWmm6&N*M0oDe%fa9^XUNm1NS-xdHRh_4QOTiInc21)v2f}E?CZfn+^p%o5h~yCkEeg()u8qg2M5@8XdRr;cM`DGR!Zu3d zNSb08TnaQ0ysc_=kb-Hu2Z9UZqJ#^U1iQU?$$pVfTSAf?8&#U7;M|>hv(m=^Gd@vM4hdEb?8INf(!Nb-?&OliNF9>yx^Id)sGQP-!ju zi%;U4WNH~Jm;Oki$%5#^~Q4ncmIML+kc(OESz!|^0_0ho46jL=ie9D^SV?D1}Dl^ZZaXQ@m- z?v{2;#NAH3f9jvg7-)jRloPt@sk=u#NVR}FYw{Iie{BpPDcW>UPq1pZVJjEN6&8PO zJfJg{i%igr7{Pu&8fu_+{+bLT{~(l=Q#V8Q8gml8W{8JL2tCFoVsu+|+!bXJ5tQ}h z;EdD_x$ZxjQfhbLZxNqD&QC5+Xw>E{F-Z}=g5~hwE84W}5gk2 zcs1C3l;8EyxTbT!LKX!i#YIzgmj%#F5y@m)q4xY~y90-9(T2Sk1N&ejaOnfDsG3l@ ztK`-AC^Q{6+}$-bwvrE55$Wv)`lT7Y3hxg?R_tS=7jH`Un518*aSoU=ru#h2Vpx6; z--4$@n~+f`^5r8mrvY5UQQKFUevb^w#va062pa?a)u5;>vsY$n{(~s_&#pLZ@5Z|e83F%*GE%9sd z{I3(5xQ)v{v0AMR@RwjL!VNrB!qV6EdEV%gyh-Pp?p$n*@2~ce=IOwE!l6M zo!vI&(Qk@TCk9G3S+N1^J9MMU969ZQV%JO%nix$CEJ{+({qw?7;e?=aT#85Ks^so> ztIoJpx^yEuwOm6=|8S1Ud0G4iK1GA z;Mx!p*k>c$YR>QNk!wRts$=#FUjL=QRpoB+JMzny-U8>_H>UsXdH;=w2h}09ke4w& z`A}U}Hi1wFK=?^Q+o+E%qR7OMkvB*50}WUv8L0ai>&~oPOr^!w?^0M70S~+luJa4H z=H;X%W*I|GYpjir#+Ou`m+g~_K9`dw};-Jmmgb?L!#NdpY*?ID(1qt zSBUq=$$w?_ddqPXJPAm!AD{l=D)|oc-7^7oDbnP7Msd}$p8z{CyKxIXQ^kUlt{l_% zJ#XI07Rd-5hTwRYUK$%S z0^JZq^Zo5XMhW)130E7kfmlYwJvs^FM18mbN442L(l65MLndg+eF%J7f&a1=#w~re z8(3bMLCIc@G>3mvksR~}6b7`s_}X^?4{D(GR4S`@wH(^`T69TtD40ozQW)cNab0ID zc^Yiw^{NEvvLJbulEKL1&;(Q-#y{JIgEfkxzLs}A6u@;$%-g|EH<+vh1 zMmX9Eyci4|f)CQJ;Kli8eVI$q`i4Bq=#Oja+ARCo`kfg`-^#^8pY8Mu!g{J5#k zbPuwA2L+BGPH3Fp%f|z#Zp3n!3sT(~npWkJ)@D2WIU%r6t1C9nf%-P6Op7?%ug&8t zeyogS;zNb$an~(auA^6bA`;p>nN^hi8nT{Wbkbz&qvZ3{T6qcyFq)J?$syd0L<;Eh z5&mR*?)aefLQN5PfV8oh7|zLI5d}_+JOW&U5KtTZbX<+@5YR>@YL0)83{W*?KTMK& z;vprx119Ep3HBD@p2~&@Mv)L9fx}XK!#l`zjhKjT1`9zK)C)1F(Om$Utb=ViFSdLh z6vefriba|gCLL?W*kD$G?g!GYJ<^Z zVO!3Udo_-<8SThEB$B)&dL6bis|-qZK?%4^sT#{})d>)DH)nBJTBny(FT)s`H zw^962l!bJn&5EQ2`SLpHq0~=&%(pCXm6iyqpQ5sw%|uCU0qZ;*oHewjA?yBcB3i_E zq?YQ}dkr>b>6qhI&hEJMcScp(8R<-}a*&T93!RV`ODK6iS?Hw79XrLvp6u6-KouJ* zA_v~}ieM0zLE4(LlD~8q{Kc zw)M`i5&@XVN3l6OA*~+v(bG;aj4{d2e{RNe8At%+12c3^QM1X;fXW4}$1qsj*>A64 zDf+$NC9Exk7OG6t7$$ib4@H%R_oe{5!*0|>RkoJxjrw(zKG_bA8!L%zh}T0?5MEScgi`|{pm_l?jjp#m6k zz$R+#!HU^c1(ZezX)rEf9pQ^jr!R8cbE$=tQUc^2J?fpz>N3)rY}eN1h)~X!!E47N znqgTe?D8XLj9>N>ttWVnMy{Huq7TXJsSz3uq~jH#D2nxHM4yTx^a~zu^CVK*)fufA zOP(fiR&On_?>jY^*02<{=yXfbi6Uw;vI43az#Iv2RJG4A<0kuZVahY!hJPv(We-iX zLIn0_ty_LTKd11um3$ed-&~Q8J*BJ<+@c+~5+6K6@ucX(O^!b`%QMgl6{4dVhM`;5 zBn~O$QS_jN9ZKFgB@GE+Vs)7Ic6{lYV>?j5^2u+iu!Gh$_3?yTn*}fjfoP6?tA6rcJ0P;LmC>U`m^Gy`s|#F~%gfeR&s24i;(4LyB0au;CqP4D zqE!c^+T&Om3^h)oF;$uRrP@!P84NimTsfyt*OO}-C0xI&nsu9}*v1C_9%v4QUv7%1 z;TU$fG)@GFR6fF}xDCtM_VZqj2C57S_-hDgiriHEm>Va>>7ps|sZ@Q#7#j=`cSHE8H_RukE+;0q{nA*{mdhjnKU<~ZzN zfsgrmLtaW@c1x9<64h6c_AbTtSO%38@h9(qKjlIc2q))Ohm$=JTadhkf<8goj1l%+ zn1dcqAnWn?+28}Q#(&FT0)09`2Bv?5A(H}1O^9V*(!Ufeu_<%nA{?HPb~J}^BEkhB zId|tqbDHe*h5_+9(8GP-#j73Gvzrx}+J4q73%z0|UWeR2VpGMT7>>AeY%!gU>yd9Z ztO-*_G+5-oKFO)=(1)p>0+|fQe8}#{ddM2qYC-eKy}xfLPh<9$8o03;tIyUXuwMy(2Hqed%tEkc@$u80>nbN~vXbqc zUQu~y8IkcNWW1=yo>%n!e#sk6i@D{B(f&jq3{RgqBzieas?aA*>mgP`G&^4F_|$UH zRn|bVGbrz9I~Q{+QJHtA}hocGHtO48} zdJepM8#+oRdu1Q4+R1z&+3P}5qfKaVEOhkQsSorrz;wOa#g+DpasK3|gaxV^JxsTR zkr8EWqPUkOssR(1ue4?ND3n4XytMs%NP^?_qwuc@HYnNYk#TT0QIoX z!1nqds(i8h*i!;$J=xc25iJ^Sp>+?ywC8*g()*)ud5tU+=2@Rexj9L>^^7JqEq+fXU|CEnO z{|#_!{-xph?~yG~f*0o-oP`C>$fv#i!_#Dyna^G>qs4bthDbC^=; zi8kUHMXy~S1n)PEotKj%n39Y-T_1Xr6JLgcJg(lhZ#TYGo!|8EK2`%UL6H|67IFc( z%QcIMJ5q;xWjmQ{4ru}k(`9MTH43m0j1^;= z$;nFz>qv;U?cd=2^VRvGMXA;fDFC6_i%4(?GAA+%3l1E>5J83{K&@gAoaisfhaq|# zgqzc-{%TPyP@Eh#eUmViU&8T8qsJWM)#yX?rokE}CH?hjkqjhdNevMG4S!9PiUT*; zB?c?aSkonm(85mor7<%PIA{)+s8v9!5%bmGfc?K zT{GUbH_RwJi1>ffI+9{PgsiDjWKY#kCQbb6gY*TDgY$Om!I~KwQjDT4T1WM1=EYF3 z4?}ZIt5EB~!n@(43Pu)Gtd3f6DCKdPsry%_XAme8pkg9|TLSXoxzPO+Yum|Di&SDy zGzt{@lPbFvN5ToRPuKRQel2r5dGe?jgHTXH-=@%=G!XVL%hihOp|f&^aTb0}{N z@q;V4Qn_BembeDaUdSE|fulIhJu7qr`=*%8BBO{lUuI79iW5wfBiJrd-cNOGh$)JceQMv+(4aE9M(8iq zT0%nLzTFz(L=A~SY8^`Mfm<-{5qQKpKGO%Hy0x4=F5j+orIZ`zVDmPdk!fE{FRTo8ei zckGxQkg7TU>WB96!~$shc^Rov@CY8I0C;;Zbi7=C15M!=blN~v)@F!9gDTZBI&5Xz zB_86wd;4hF?SuutG;V|qMdJc$`;msddF*V2*6IX75vk4T@Y2^7t4n*R-IBOEX0q%; zi*|b77r5lhkN}=>KG`!owJ^B;PH4yL;Jz_C%X}9FwDmasli}Nw766Xp<8E|n*35)` zlt&1lb5O%{E+_a*vx~-JjB>r2%R}VQW$?k>QRB=Frg&`m!?x?T;gFd0$Ytg@kL&Aq z1`3kT(5%nEj~Kypr;2ed$uKKV6Z;-fUtJf|;;1@;P3d;j)4w?7O*P`GCxM1h`7M9b z&BuJ!=y9yPKCgdh$f!u<`|!hsHh(;omOW7a-6^h{_VniFvsh!63khI3qA{0PJ@%`= zOw$xYz!vr(J}HszVZSlzw~3{3Xjgzx)ZRY*U~E2TlSHlJMZfbZXTj9y#9eCrAVZbm zi4m>L#Yo3M_+bk#?s_DFe1goDO5eF>XSXnAiu8gYI8fJ!e6tQF>aZPa%~eond|bm| zPUcv7@5T|TyNv?Yz5j&bBmL?)ierJ`DWPgOXKByPA;?fSh-@M8nyqu45>&j8$xb<+ zx{h6cUg}jO;Y(9MF5zQLr=7sI1gqK=Wl_W-v4dmQZ;Qsh9i!ObL+7%=XZHrdXVagJ z?m~AT&`P-KHBxu1N1`D!P4Pt4pG*QK-~0On+tX0qf?l-+(1m{DhD~&K?>*cP5Wd-uzZ2*$bk6Cta*{NA~coo1>4SqsTQ8uSKaLfPOy9>XU zkewcs_Y=D|!4Yb*Y>)K%4sPqz7sfdP z?A{2@>qXgbm)&Y%B4j9tH6WWS;-=F+cLr=c=V`ZfSd~r^-U2V{vaCYKRpS1Bs+X!5j%2!n*k|mdJd(0RbH7rC~CRP3B%QE#C2pd+I*BVCkU%v zcwwA(f zrk)qC)~0panQIL z8bWAL!<~hDL^u0~#Lrp2i9QzYN@3_i@UHfctV--!J|wK}0y+~32S>SurA9-_B7}>3 z#Xc+Ya%yplvG8&?p+HN47HXfR(pDor_ze^?KUex#T@IgMgw1l_VgJ7#?9soB9>x2= z;X`L9bF2RjFLje4%n`p@xTRn2NOb@6-}%4v^zO=k?ezEkG^(BaH8$n5(`KI3P;qV( z3fYQ5k|Y#gfKszSK}xfs5QXv&b6V59jA@^d0yS;Pw*M>b#Y!tT&=iQ|*+XwI!vd?2K+&wU+5OZEwuC=&El0jJk%>e0P z@_ypz40DB9xO-|YFERjiW@5$$@<2*B3Wo{CoTk)B`isp8K3b$37z!>XEm61+b3!I4 zt_p}4ir6}G)EHB8qG8>I+10OJ46HJCq^d)BB>Ke)q$vbCJN3h9Cpx{3V6v1kfW8`w ztYCpq(6^+h_R5Kg6C?d{gPnfC_b3<}RIoV|_l}WSA}z9QsD@`BvgF%x2roCWUU{hX z%G3{)yA^)}+QUPGaCh-hlcl*jgz6tUA>Ex=} zxq~}_anWkwUoo0m#+$yYTd{=J8jS3uqq87m5dBZ~b?hJkdpWf=!3|FpTByx2i} zWoANat~KebDk}k1<<)pnGk=2WF_GjyEuC|{%yiB9gwZ?fiw2}6$Tep7i`cX>{o)Kl(3~~m(VLbwZ1)u# z%W5jQWni=me=L6md?)T!aIwf|kWL3%!8K&S4drP5_3ifABxjaMjs`#Kr5BxrVsb4}zamRcN|>jHO{yX@Wm5nk zsVj|EK=hZnYZm7g!y1oMS>f{G480^sup&#To0&u782&md779%Qk=XDh5iiP+$OVcz zi(sV;5$0%i`zxz=I!e~yQj(vn%4#T>yoGDy(rro6Mbg%0ltV1PvPPPuBuG%dryl&l z-qr;>?ty4>TAyc@Xwoz3eP&#|DDsv(u#M>Yq;V-8&a!g?DWg)GBa_bd5vw`6^jkmB+ z*=vlf`XWI0Pv=1HbZM-vmRGR8I1*Fc=c})YkXJO_KfOgO>wp_+EPt1Z+?=$0d=~d3 zRBz$%2(Cw7VhFVfPS2sF&)$0FfEhBgl$qDX$rW0uOhG-R!F5O@{J5g(Z(7S+pt90$ z`*SZ}_N2?Sxpl$@EwVVqPe?hedlG=gc(R=~}6tvu+ zv>h(a*T2d_nA+wVQ!^rO;?r!1SmFeK

_0Yn78MiFdUhx34p<+m;((GND%4bo{E{ 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�NsLQ0 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 F{|^dpV>18% literal 0 HcmV?d00001 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..816233a --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'UltraUtils' + diff --git a/src/main/java/functions/Text.java b/src/main/java/functions/Text.java new file mode 100644 index 0000000..9dba901 --- /dev/null +++ b/src/main/java/functions/Text.java @@ -0,0 +1,85 @@ +package functions; + + +import me.trouper.ultrautils.UltraUtils; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Text { + + public static String regexHighlighter(String input, String regex, String startString, String endString) { + Pattern pattern = Pattern.compile(regex); + + Matcher matcher = pattern.matcher(input); + + StringBuffer result = new StringBuffer(); + + while (matcher.find()) { + matcher.appendReplacement(result, startString + matcher.group() + endString); + } + + matcher.appendTail(result); + + return result.toString(); + } + + public static final char SECTION_SYMBOL = (char)167; + + public static String color(String msg) { + return msg.replace('&', SECTION_SYMBOL); + } + public static String prefix(String text) { + String prefix = UltraUtils.config.prefix; + return color(prefix + text); + } + public static String removeFirstColor(String input) { + if (input.startsWith("\u00a7")) { + if (input.length() > 2) { + return input.substring(2); + } else { + return ""; + } + } else { + return input; + } + } + public static String replaceRepeatingLetters(String input) { + if (input == null || input.isEmpty()) { + return input; + } + + StringBuilder simplifiedText = new StringBuilder(); + char currentChar = input.charAt(0); + int count = 1; + + for (int i = 1; i < input.length(); i++) { + char nextChar = input.charAt(i); + + if (Character.toLowerCase(nextChar) == Character.toLowerCase(currentChar)) { + count++; + } else { + simplifiedText.append(currentChar); + + if (count > 1) { + simplifiedText.append(currentChar); + } + + currentChar = nextChar; + count = 1; + } + } + + simplifiedText.append(currentChar); + + if (count > 1) { + simplifiedText.append(currentChar); + } + + return simplifiedText.toString(); + } + + public static String cleanName(String type) { + return type.replaceAll("_"," ").toLowerCase(); + } +} diff --git a/src/main/java/me/trouper/ultrautils/UltraUtils.java b/src/main/java/me/trouper/ultrautils/UltraUtils.java new file mode 100644 index 0000000..75d7295 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/UltraUtils.java @@ -0,0 +1,95 @@ +package me.trouper.ultrautils; + +import io.github.itzispyder.pdk.PDK; +import io.github.itzispyder.pdk.utils.misc.JsonSerializable; +import me.trouper.ultrautils.commands.UltraUtilsCommand; +import me.trouper.ultrautils.commands.gamemode.*; +import me.trouper.ultrautils.commands.mobility.FlyCommand; +import me.trouper.ultrautils.commands.mobility.SpeedCommand; +import me.trouper.ultrautils.commands.workstations.*; +import me.trouper.ultrautils.data.config.Config; +import org.bukkit.Bukkit; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; +import java.util.logging.Logger; + +public final class UltraUtils extends JavaPlugin { + + private static UltraUtils instance; + private static final File configFile = new File("plugins/UltraUtils/main-config.json"); + public static Config config = JsonSerializable.load(configFile, Config.class, new Config()); + public static final Logger log = Bukkit.getLogger(); + + /** + * Plugin startup logic + */ + @Override + public void onEnable() { + + log.info("\n]======------ Pre-load started ------======["); + PDK.init(this); + instance = this; + + loadConfig(); + + startup(); + } + + public void startup() { + log.info("\n]======----- Loading UltraUtils-----======["); + + // Plugin startup logic + log.info("Starting Up! (%s)...".formatted(getDescription().getVersion())); + + + new UltraUtilsCommand().register(); + new GamemodeCommand().register(); + new GMACommand().register(); + new GMCCommand().register(); + new GMSPCommand().register(); + new GMSCommand().register(); + new AnvilCommand().register(); + new CartographyCommand().register(); + new CraftingCommand().register(); + new GrindstoneCommand().register(); + new LoomCommand().register(); + new SmithingCommand().register(); + new StonecutterCommand().register(); + new FlyCommand().register(); + new SpeedCommand().register(); + + // Events + + log.info(""" + Finished! + UltraUtils has loaded. + """); + } + + public void loadConfig() { + log.info("Loading Config..."); + + // Init + config = JsonSerializable.load(configFile, Config.class,new Config()); + + // Save + config.save(); + + } + + + /** + * Plugin shutdown logic + */ + @Override + public void onDisable() { + // Plugin shutdown logic + log.info("UltraUtils has disabled! (%s)".formatted(getDescription().getVersion())); + } + + public static UltraUtils getInstance() { + return instance; + } + +} diff --git a/src/main/java/me/trouper/ultrautils/commands/UltraUtilsCommand.java b/src/main/java/me/trouper/ultrautils/commands/UltraUtilsCommand.java new file mode 100644 index 0000000..b1b1bc6 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/UltraUtilsCommand.java @@ -0,0 +1,37 @@ +package me.trouper.ultrautils.commands; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import me.trouper.ultrautils.UltraUtils; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "ultrautils", permission = @Permission("ultrautils.admin"), printStackTrace = true) +public class UltraUtilsCommand implements CustomCommand { + + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + + switch (args.get(0).toString()) { + case "toggle" -> { + switch (args.get(1).toString()) { + case "debug" -> { + UltraUtils.config.debugMode = !UltraUtils.config.debugMode; + UltraUtils.config.save(); + } + } + } + } + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + b.then(b.arg("toggle") + .then(b.arg("debug")) + ); + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/gamemode/GMACommand.java b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMACommand.java new file mode 100644 index 0000000..3bafb1b --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMACommand.java @@ -0,0 +1,44 @@ +package me.trouper.ultrautils.commands.gamemode; + +import functions.Text; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.ServerUtils; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +@CommandRegistry(value = "gma",permission = @Permission("ultrautils.gamemode.adventure")) +public class GMACommand implements CustomCommand { + + @Override + public void dispatchCommand(CommandSender commandSender, Args args) { + Player target = Bukkit.getPlayer(args.get(0).toString()); + if (target == null && (commandSender instanceof Player)) target = (Player) commandSender; + if (target == null) { + commandSender.sendMessage(Text.prefix("Only players may execute that command")); + return; + } + if (!commandSender.hasPermission("ultrautils.gamemode")) { + commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode.")); + return; + } + GamemodeCommand.setGameMode(commandSender,target,GameMode.ADVENTURE,"ultrautils.gamemode.adventure"); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + List players = new ArrayList<>(); + for (Player player : ServerUtils.players()) { + players.add(player.getName()); + } + b.then(b.arg(players)); + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/gamemode/GMCCommand.java b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMCCommand.java new file mode 100644 index 0000000..ee33afc --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMCCommand.java @@ -0,0 +1,43 @@ +package me.trouper.ultrautils.commands.gamemode; + +import functions.Text; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.ServerUtils; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +@CommandRegistry(value = "gmc",permission = @Permission("ultrautils.gamemode.creative")) +public class GMCCommand implements CustomCommand { + + @Override + public void dispatchCommand(CommandSender commandSender, Args args) { + Player target = Bukkit.getPlayer(args.get(0).toString()); + if (target == null && (commandSender instanceof Player)) target = (Player) commandSender; + if (target == null) { + commandSender.sendMessage(Text.prefix("Only players may execute that command")); + return; + } + if (!commandSender.hasPermission("ultrautils.gamemode")) { + commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode.")); + return; + } + GamemodeCommand.setGameMode(commandSender,target,GameMode.CREATIVE,"ultrautils.gamemode.creative");} + + @Override + public void dispatchCompletions(CompletionBuilder b) { + List players = new ArrayList<>(); + for (Player player : ServerUtils.players()) { + players.add(player.getName()); + } + b.then(b.arg(players)); + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/gamemode/GMSCommand.java b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMSCommand.java new file mode 100644 index 0000000..02b67d7 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMSCommand.java @@ -0,0 +1,43 @@ +package me.trouper.ultrautils.commands.gamemode; + +import functions.Text; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.ServerUtils; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +@CommandRegistry(value = "gms",permission = @Permission("ultrautils.gamemode.survival")) +public class GMSCommand implements CustomCommand { + + @Override + public void dispatchCommand(CommandSender commandSender, Args args) { + Player target = Bukkit.getPlayer(args.get(0).toString()); + if (target == null && (commandSender instanceof Player)) target = (Player) commandSender; + if (target == null) { + commandSender.sendMessage(Text.prefix("Only players may execute that command")); + return; + } + if (!commandSender.hasPermission("ultrautils.gamemode")) { + commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode.")); + return; + } + GamemodeCommand.setGameMode(commandSender,target,GameMode.SURVIVAL,"ultrautils.gamemode.survival");} + + @Override + public void dispatchCompletions(CompletionBuilder b) { + List players = new ArrayList<>(); + for (Player player : ServerUtils.players()) { + players.add(player.getName()); + } + b.then(b.arg(players)); + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/gamemode/GMSPCommand.java b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMSPCommand.java new file mode 100644 index 0000000..ed53e78 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/gamemode/GMSPCommand.java @@ -0,0 +1,44 @@ +package me.trouper.ultrautils.commands.gamemode; + +import functions.Text; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.ServerUtils; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +@CommandRegistry(value = "gmc",permission = @Permission("ultrautils.gamemode.spectator")) +public class GMSPCommand implements CustomCommand { + + @Override + public void dispatchCommand(CommandSender commandSender, Args args) { + Player target = Bukkit.getPlayer(args.get(0).toString()); + if (target == null && (commandSender instanceof Player)) target = (Player) commandSender; + if (target == null) { + commandSender.sendMessage(Text.prefix("Only players may execute that command")); + return; + } + if (!commandSender.hasPermission("ultrautils.gamemode")) { + commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode.")); + return; + } + GamemodeCommand.setGameMode(commandSender,target,GameMode.SPECTATOR,"ultrautils.gamemode.spectator"); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + List players = new ArrayList<>(); + for (Player player : ServerUtils.players()) { + players.add(player.getName()); + } + b.then(b.arg(players)); + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/gamemode/GamemodeCommand.java b/src/main/java/me/trouper/ultrautils/commands/gamemode/GamemodeCommand.java new file mode 100644 index 0000000..ea8265b --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/gamemode/GamemodeCommand.java @@ -0,0 +1,72 @@ +package me.trouper.ultrautils.commands.gamemode; + +import functions.Text; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.ServerUtils; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import javax.annotation.Nullable; +import java.util.ArrayList; +import java.util.List; + +@CommandRegistry(value = "gamemode", permission = @Permission("ultrautils.gamemode")) +public class GamemodeCommand implements CustomCommand { + + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player target = Bukkit.getPlayer(args.get(1).toString()); + if (target == null && (sender instanceof Player)) target = (Player) sender; + if (target == null) { + sender.sendMessage(Text.prefix("Only players may execute that command")); + return; + } + switch (args.get(0).toString()) { + case "a","adventure","adv","gma" -> setGameMode(sender,target,GameMode.ADVENTURE, "ultrautils.gamemode.adventure"); + case "c","creative","cre","gmc" -> setGameMode(sender,target,GameMode.CREATIVE,"ultrautils.gamemode.creative"); + case "s","survival","sur","gms" -> setGameMode(sender,target,GameMode.SURVIVAL,"ultrautils.gamemode.survival"); + case "sp","spectator","spec","gmsp" -> setGameMode(sender,target,GameMode.SPECTATOR,"ultrautils.gamemode.spectator"); + } + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + List players = new ArrayList<>(); + for (Player player : ServerUtils.players()) { + players.add(player.getName()); + } + b.then(b.arg("adventure","creative","survival","spectator") + .then(b.arg(players)) + ); + } + + public static void setGameMode(CommandSender user, @Nullable Player target, GameMode gm, String permission) { + if (!user.hasPermission(permission)) { + user.sendMessage(Text.prefix("You lack the permission to swith gamemodes to %c%s&7.")); + return; + } + + if (target == null && user instanceof Player) target = (Player) user; + if (target == null) { + user.sendMessage(Text.prefix("Only players can execute self-effecting commands.")); + return; + } + + if (user.equals(target)) { + target.setGameMode(gm); + user.sendMessage(Text.prefix("Set your gamemode to &a%s&7.".formatted(target.getGameMode().toString().toLowerCase()))); + } else if (user.hasPermission("ultrautils.gamemode.others")) { + target.setGameMode(gm); + user.sendMessage(Text.prefix("Set the gamemode of &e%s&7 to &a%s&7.".formatted(target.getName(),target.getGameMode().toString().toLowerCase()))); + target.sendMessage(Text.prefix("Your gamemode has been set to &a%s&7.".formatted(target.getGameMode().toString().toLowerCase()))); + } else { + user.sendMessage(Text.prefix("You lack the permission to set other player's gamemode.")); + } + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/mobility/FlyCommand.java b/src/main/java/me/trouper/ultrautils/commands/mobility/FlyCommand.java new file mode 100644 index 0000000..f1ef3c4 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/mobility/FlyCommand.java @@ -0,0 +1,51 @@ +package me.trouper.ultrautils.commands.mobility; + +import functions.Text; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.ServerUtils; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +@CommandRegistry(value = "fly", permission = @Permission("ultrautils.flight")) +public class FlyCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player user = (Player) sender; + Player target = Bukkit.getPlayer(args.get(1).toString()); + if (target == null && (sender instanceof Player)) target = (Player) sender; + if (target == null) { + sender.sendMessage(Text.prefix("Only players may execute that command")); + return; + } + + boolean current = target.getAllowFlight(); + if (user.equals(target)) { + target.setAllowFlight(!current); + sender.sendMessage(Text.prefix("Flight &a%s&7.".formatted(!current ? "&aenabled" : "&cdisabled"))); + } else if (sender.hasPermission("ultrautils.flight.others")) { + target.setAllowFlight(!current); + sender.sendMessage(Text.prefix("&a%s&7 the flight of &e%s&7.".formatted(!current ? "&aenabled" : "&cdisabled",target.getName()))); + target.sendMessage(Text.prefix("Your flight has been &a%s&7.".formatted(!current ? "&aenabled" : "&cdisabled"))); + } else { + sender.sendMessage(Text.prefix("You lack the permission to set other player's flight status.")); + } + + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + List players = new ArrayList<>(); + for (Player player : ServerUtils.players()) { + players.add(player.getName()); + } + b.then(b.arg(players)); + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/mobility/SpeedCommand.java b/src/main/java/me/trouper/ultrautils/commands/mobility/SpeedCommand.java new file mode 100644 index 0000000..5d2ae89 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/mobility/SpeedCommand.java @@ -0,0 +1,96 @@ +package me.trouper.ultrautils.commands.mobility; + +import functions.Text; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.ServerUtils; +import me.trouper.ultrautils.UltraUtils; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +@CommandRegistry(value = "speed", permission = @Permission("ultrautils.speed")) +public class SpeedCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + String type = args.get(1).toString(); + float speed = args.get(0).toFloat(); + Player user = (Player) sender; + Player target = Bukkit.getPlayer(args.get(2).toString()); + if (target == null && (sender instanceof Player)) target = (Player) sender; + if (target == null) { + sender.sendMessage(Text.prefix("Only players may execute that command")); + return; + } + + switch (type) { + case "walk" -> { + setWalkSpeed(sender,user,target,speed); + } + case "flight" -> { + setFlySpeed(sender,user,target,speed); + } + default -> { + if (target.isFlying()) { + setFlySpeed(sender,user,target,speed); + return; + } + setWalkSpeed(sender,user,target,speed); + } + } + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + List players = new ArrayList<>(); + for (Player player : ServerUtils.players()) { + players.add(player.getName()); + } + + b.then(b.arg("[]") + .then(b.arg("walk","flight") + .then(b.arg(players)) + ) + ); + } + public static void setFlySpeed(CommandSender sender, Player user, Player target, float speed) { + if (!user.hasPermission("ultrautils.speed.flight")) { + sender.sendMessage("You lack the permission to set walk speed."); + return; + } + if (user.equals(target)) { + target.setFlySpeed(speed); + user.sendMessage(Text.prefix("Set your flight speed to &a%s&7.".formatted(speed))); + } else if (user.hasPermission("ultrautils.speed.fly.others")) { + target.setFlySpeed(speed); + user.sendMessage(Text.prefix("Set the flight speed of &e%s&7 to &a%s&7.".formatted(target.getName(),speed))); + target.sendMessage(Text.prefix("Your flight speed has been set to &a%s&7.".formatted(speed))); + } else { + user.sendMessage(Text.prefix("You lack the permission to set other player's flight speed.")); + } + } + + public static void setWalkSpeed(CommandSender sender, Player user, Player target, float speed) { + if (!user.hasPermission("ultrautils.speed.walk")) { + sender.sendMessage("You lack the permission to set walk speed."); + return; + } + if (user.equals(target)) { + target.setWalkSpeed(speed); + user.sendMessage(Text.prefix("Set your walk speed to &a%s&7.".formatted(speed))); + } else if (user.hasPermission("ultrautils.speed.walk.others")) { + target.setWalkSpeed(speed); + user.sendMessage(Text.prefix("Set the walk speed of &e%s&7 to &a%s&7.".formatted(target.getName(),speed))); + target.sendMessage(Text.prefix("Your walk speed has been set to &a%s&7.".formatted(speed))); + } else { + user.sendMessage(Text.prefix("You lack the permission to set other player's walk speed.")); + } + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/workstations/AnvilCommand.java b/src/main/java/me/trouper/ultrautils/commands/workstations/AnvilCommand.java new file mode 100644 index 0000000..190a7e2 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/workstations/AnvilCommand.java @@ -0,0 +1,23 @@ +package me.trouper.ultrautils.commands.workstations; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "anvil", permission = @Permission("ultrautils.anvil"),playersOnly = true) +public class AnvilCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + p.openAnvil(p.getLocation(),true); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/workstations/CartographyCommand.java b/src/main/java/me/trouper/ultrautils/commands/workstations/CartographyCommand.java new file mode 100644 index 0000000..3a6c826 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/workstations/CartographyCommand.java @@ -0,0 +1,23 @@ +package me.trouper.ultrautils.commands.workstations; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "cartography", permission = @Permission("ultrautils.cartography"),playersOnly = true) +public class CartographyCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + p.openCartographyTable(p.getLocation(),true); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/workstations/CraftingCommand.java b/src/main/java/me/trouper/ultrautils/commands/workstations/CraftingCommand.java new file mode 100644 index 0000000..1c33b84 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/workstations/CraftingCommand.java @@ -0,0 +1,23 @@ +package me.trouper.ultrautils.commands.workstations; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "craft", permission = @Permission("ultrautils.craft"),playersOnly = true) +public class CraftingCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + p.openWorkbench(p.getLocation(),true); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/workstations/GrindstoneCommand.java b/src/main/java/me/trouper/ultrautils/commands/workstations/GrindstoneCommand.java new file mode 100644 index 0000000..941dcfe --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/workstations/GrindstoneCommand.java @@ -0,0 +1,23 @@ +package me.trouper.ultrautils.commands.workstations; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "grindstone", permission = @Permission("ultrautils.grind"),playersOnly = true) +public class GrindstoneCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + p.openGrindstone(p.getLocation(),true); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/workstations/LoomCommand.java b/src/main/java/me/trouper/ultrautils/commands/workstations/LoomCommand.java new file mode 100644 index 0000000..53c9ec3 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/workstations/LoomCommand.java @@ -0,0 +1,23 @@ +package me.trouper.ultrautils.commands.workstations; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "smith", permission = @Permission("ultrautils.smith"),playersOnly = true) +public class LoomCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + p.openLoom(p.getLocation(),true); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/workstations/SmithingCommand.java b/src/main/java/me/trouper/ultrautils/commands/workstations/SmithingCommand.java new file mode 100644 index 0000000..a0e9ead --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/workstations/SmithingCommand.java @@ -0,0 +1,23 @@ +package me.trouper.ultrautils.commands.workstations; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "smith", permission = @Permission("ultrautils.smith"),playersOnly = true) +public class SmithingCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + p.openSmithingTable(p.getLocation(),true); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + + } +} diff --git a/src/main/java/me/trouper/ultrautils/commands/workstations/StonecutterCommand.java b/src/main/java/me/trouper/ultrautils/commands/workstations/StonecutterCommand.java new file mode 100644 index 0000000..d705c7d --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/commands/workstations/StonecutterCommand.java @@ -0,0 +1,23 @@ +package me.trouper.ultrautils.commands.workstations; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandRegistry(value = "stonecutter", permission = @Permission("ultrautils.stonecut"),playersOnly = true) +public class StonecutterCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + p.openStonecutter(p.getLocation(),true); + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + + } +} diff --git a/src/main/java/me/trouper/ultrautils/data/Items.java b/src/main/java/me/trouper/ultrautils/data/Items.java new file mode 100644 index 0000000..1f6f2f9 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/data/Items.java @@ -0,0 +1,4 @@ +package me.trouper.ultrautils.data; + +public class Items { +} diff --git a/src/main/java/me/trouper/ultrautils/data/Storage.java b/src/main/java/me/trouper/ultrautils/data/Storage.java new file mode 100644 index 0000000..149a5d4 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/data/Storage.java @@ -0,0 +1,4 @@ +package me.trouper.ultrautils.data; + +public class Storage { +} diff --git a/src/main/java/me/trouper/ultrautils/data/config/Config.java b/src/main/java/me/trouper/ultrautils/data/config/Config.java new file mode 100644 index 0000000..7d84dbc --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/data/config/Config.java @@ -0,0 +1,24 @@ +package me.trouper.ultrautils.data.config; + +import io.github.itzispyder.pdk.utils.misc.JsonSerializable; + +import java.io.File; + +public class Config implements JsonSerializable { + + @Override + public File getFile() { + File file = new File("plugins/UltraUtils/main-config.json"); + file.getParentFile().mkdirs(); + return file; + } + + public String prefix = "&9UltraCore> &7"; + public boolean debugMode = false; + public Plugin plugin = new Plugin(); + + public class Plugin { + public String joinMessage = "&8[&2+&8] &a%s&7 has joined."; + public String leaveMessage = "&8[&4-&8] &c%s&7 has left."; + } +} diff --git a/src/main/java/me/trouper/ultrautils/events/JoinLeaveEvent.java b/src/main/java/me/trouper/ultrautils/events/JoinLeaveEvent.java new file mode 100644 index 0000000..ad3f7e8 --- /dev/null +++ b/src/main/java/me/trouper/ultrautils/events/JoinLeaveEvent.java @@ -0,0 +1,31 @@ +package me.trouper.ultrautils.events; + +import functions.Text; +import io.github.itzispyder.pdk.events.CustomListener; +import me.trouper.ultrautils.UltraUtils; +import me.trouper.ultrautils.data.config.Config; +import net.kyori.adventure.text.Component; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +public class JoinLeaveEvent implements CustomListener { + + @EventHandler + public void onJoin(PlayerJoinEvent e) { + if (UltraUtils.config.plugin.joinMessage.isBlank()) { + e.joinMessage(null); + return; + } + e.joinMessage(Component.text(Text.color(UltraUtils.config.plugin.joinMessage))); + } + + @EventHandler + public void onLeave(PlayerQuitEvent e) { + if (UltraUtils.config.plugin.leaveMessage.isBlank()) { + e.quitMessage(null); + return; + } + e.quitMessage(Component.text(Text.color(UltraUtils.config.plugin.leaveMessage))); + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..cf01cb3 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,118 @@ +name: UltraUtils +version: '${version}' +main: me.trouper.ultrautils.UltraUtils +api-version: 1.19 +authors: [ obvWolf ] +description: A Utility plugin for server management and moderation. +website: https://trouper.me/ +permissions: + ultrautils.admin: + default: op + description: Access to the admin command + ultrautils.gamemode: + default: op + description: This permission is required to use ANY gamemode commands. It does not give permission to switch to any gamemodes. + ultrautils.gamemode.adventure: + default: op + description: Allows changing gamemode to adventure + ultrautils.gamemode.creative: + default: op + description: Allows changing gamemode to creative + ultrautils.gamemode.survival: + default: op + description: Allows changing gamemode to survival + ultrautils.gamemode.spectator: + default: op + description: Allows changing gamemode to spectator + ultrautils.gamemode.others: + default: op + description: Allows setting the gamemode of other players + ultrautils.craft: + default: op + description: Access to the portable crafting table + ultrautils.anvil: + default: op + description: Access to the portable anvil + ultrautils.cartography: + default: op + description: Access to the portable cartography table + ultrautils.grindstone: + default: op + description: Access to the portable grindstone + ultrautils.loom: + default: op + description: Access to the portable loom + ultrautils.smithing: + default: op + description: Access to the portable smithing table + ultrautils.stonecutter: + default: op + description: Access to the portable stonecutter + ultrautils.flight: + default: op + description: Enable or disable flight (only the sender) + ultrautils.flight.others: + defualt: op + description: Enable or disable flight for specific players + + +commands: + ultrautils: + description: Admin command for admin things + usage: /ultrautils + permission: ultrautils.admin + aliases: + - uu + gma: + description: Change gamemode to adventure + permission: ultrautils.gamemode.adventure + usage: /gma [] + gmc: + description: Change gamemode to creative + permission: ultrautils.gamemode.creative + usage: /gmc [] + gms: + description: Change gamemode to survival + permission: ultrautils.gamemode.survival + usage: /gms [] + gmsp: + description: Change gamemode to spectator + permission: ultrautils.gamemode.spectator + usage: /gmsp [] + gamemode: + description: Root gamemode changing command. Required for all the other gamemode commands. + permission: ultrautils.gamemode + usage: /gamemode [] + anvil: + permission: ultrautils.anvil + description: a portable anvil + cartography: + permission: ultrautils.cartography + description: a portable cartography table + aliases: + - mapstation + craft: + permission: ultrautils.craft + description: a portable crafting table + aliases: + - workbench + grindstone: + permission: ultrautils.grindstone + description: a portable grindstone + loom: + permission: ultrautils.loom + description: a portable loom + smithingtable: + description: a portable smithing table + permission: ultrautils.smithing + aliases: + - upgradetable + stonecutter: + description: a portable stonecutter + permission: ultrautils.stonecutter + fly: + description: Toggle flight status + permission: ultrautils.flight + usage: /fly [] + aliases: + - flight