diff --git a/.github/workflows/gradle-publish.yml b/.github/workflows/gradle-publish.yml
new file mode 100644
index 0000000..ad2a28b
--- /dev/null
+++ b/.github/workflows/gradle-publish.yml
@@ -0,0 +1,45 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
+# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
+
+name: Gradle Package
+
+on:
+ release:
+ types: [created]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 17
+ uses: actions/setup-java@v2
+ with:
+ java-version: '17'
+ distribution: 'temurin'
+ server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
+ settings-path: ${{ github.workspace }} # location for the settings.xml file
+
+ - name: Build with Gradle
+ uses: gradle/gradle-build-action@4137be6a8bf7d7133955359dbd952c0ca73b1021
+ with:
+ arguments: build
+
+ # The USERNAME and TOKEN need to correspond to the credentials environment variables used in
+ # the publishing section of your build.gradle
+ - name: Publish to GitHub Packages
+ uses: gradle/gradle-build-action@4137be6a8bf7d7133955359dbd952c0ca73b1021
+ with:
+ arguments: publish
+ env:
+ USERNAME: ${{ github.actor }}
+ TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
new file mode 100644
index 0000000..a495d9f
--- /dev/null
+++ b/.github/workflows/gradle.yml
@@ -0,0 +1,31 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
+
+name: Java CI with Gradle
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 17
+ uses: actions/setup-java@v2
+ with:
+ java-version: '17'
+ distribution: 'temurin'
+ - name: Build with Gradle
+ uses: gradle/gradle-build-action@4137be6a8bf7d7133955359dbd952c0ca73b1021
+ with:
+ arguments: build
diff --git a/.gitignore b/.gitignore
index 4788b4b..e99270d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,7 +18,6 @@ out/
*.ctxt
# Package Files #
-*.jar
*.war
*.nar
*.ear
@@ -111,3 +110,10 @@ buildNumber.properties
# Common working directory
run/
+
+#gradle
+.gradle
+*.jar
+!gradle/wrapper/gradle-wrapper.jar
+build
+
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..b98748b
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,75 @@
+plugins {
+ id "org.jetbrains.kotlin.jvm" version "1.6.10"
+ id 'java'
+ id 'java-library'
+ id 'maven-publish'
+}
+
+group 'igorlink'
+version '1.18'
+
+repositories {
+ mavenCentral()
+ maven {
+ url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
+
+ content {
+ includeGroup 'org.bukkit'
+ includeGroup 'org.spigotmc'
+ }
+ }
+ maven {
+ url = 'https://papermc.io/repo/repository/maven-public/'
+ }
+}
+
+jar {
+ archiveBaseName = 'DonationExecutor'
+ archiveVersion = '1.0-SNAPSHOT'
+}
+
+dependencies {
+ implementation fileTree(
+ dir: 'libs',
+ include: ['*.jar']
+ )
+ implementation "org.jetbrains.kotlin:kotlin-stdlib"
+
+ implementation "io.papermc.paper:paper-api:1.18.1-R0.1-SNAPSHOT"
+ implementation 'io.socket:engine.io-client:2.0.0'
+ implementation 'io.socket:socket.io-client:2.0.1'
+ implementation "org.json:json:20190722"
+
+ compileOnly 'org.projectlombok:lombok:1.18.22'
+ annotationProcessor 'org.projectlombok:lombok:1.18.22'
+
+ testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
+ testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
+ testImplementation 'org.jetbrains.kotlin:kotlin-test'
+}
+
+test {
+ useJUnitPlatform()
+}
+
+publishing {
+ repositories {
+ maven {
+ name = "OSSRH"
+ url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
+ credentials {
+ username = System.getenv("MAVEN_USERNAME")
+ password = System.getenv("MAVEN_PASSWORD")
+ }
+ }
+ maven {
+ name = "GitHubPackages"
+ def username_github = System.getenv("USERNAME")
+ url = "https://maven.pkg.github.com/$username_github/DonationExecutor"
+ credentials {
+ username = System.getenv("GITHUB_ACTOR")
+ password = System.getenv("GITHUB_TOKEN")
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..29e08e8
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1 @@
+kotlin.code.style=official
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..7454180
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..ffed3a2
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..744e882
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or 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 UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$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 "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# 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" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /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/pom.xml b/pom.xml
deleted file mode 100644
index 7e5181b..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
- 4.0.0
-
- IgorLink
- DonationExecutor
- 1.0-SNAPSHOT
- jar
-
- DonationExecutor
-
- Executes donations
-
- 1.8
- UTF-8
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.1
-
- ${java.version}
- ${java.version}
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.2.4
-
-
- package
-
- shade
-
-
- false
-
-
-
-
-
-
-
- src/main/resources
- true
-
-
-
-
-
-
- mvnrepo-repo
- https://papermc.io/repo/repository/maven-public/
-
-
- sonatype
- https://oss.sonatype.org/content/groups/public/
-
-
-
-
-
- io.papermc.paper
- paper-api
- 1.18.1-R0.1-SNAPSHOT
- provided
-
-
- io.socket
- engine.io-client
- 0.8.3
-
-
- io.socket
- socket.io-client
- 0.8.3
-
-
- org.json
- json
- 20190722
-
-
-
-
-
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..8921d78
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+rootProject.name = 'DonationExecutor'
+
diff --git a/src/main/java/igorlink/DonationAlerts/DonationAlerts.java b/src/main/java/igorlink/DonationAlerts/DonationAlerts.java
index c4ca073..8788f78 100644
--- a/src/main/java/igorlink/DonationAlerts/DonationAlerts.java
+++ b/src/main/java/igorlink/DonationAlerts/DonationAlerts.java
@@ -2,101 +2,81 @@
import igorlink.donationexecutor.DonationExecutor;
import igorlink.donationexecutor.executionsstaff.Donation;
-import org.bukkit.Bukkit;
-import org.bukkit.scheduler.BukkitRunnable;
-import io.socket.emitter.Emitter.Listener;
import io.socket.client.IO;
import io.socket.client.Socket;
+import io.socket.emitter.Emitter.Listener;
+import kotlin.Suppress;
+import org.bukkit.Bukkit;
+import org.bukkit.scheduler.BukkitRunnable;
import org.json.JSONException;
import org.json.JSONObject;
+
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Objects;
+
import static igorlink.service.Utils.logToConsole;
public class DonationAlerts {
- private Listener connectListener;
- private Listener disconectListener;
- private Listener donationListener;
- private Listener errorListener;
- private URI url;
- private Socket socket;
+ private final Socket socket;
+ public DonationAlerts(String apiLink) throws URISyntaxException {
- public DonationAlerts(String server) throws URISyntaxException {
-
- url = new URI(server);
+ URI url = new URI(apiLink);
socket = IO.socket(url);
- connectListener = new Listener() {
- @Override
- public void call(Object... arg0) {
- logToConsole("Произведено успешное подключение!");
- }
- };
+ Listener connectListener = arg0 -> logToConsole("Произведено успешное подключение!");
- disconectListener = new Listener() {
- @Override
- public void call(Object... arg0) {
- logToConsole("Соединение разорвано!");
- }
- };
+ Listener disconnectListener = arg0 -> logToConsole("Соединение разорвано!");
- donationListener = new Listener() {
- @Override
- public void call(Object... arg0) {
+ Listener donationListener = arg0 -> {
- JSONObject json = new JSONObject((String) arg0[0]);
- json.toString();
- new BukkitRunnable() {
- @Override
- public void run() {
+ JSONObject json = new JSONObject((String) arg0[0]);
+ new BukkitRunnable() {
+ @Override
+ public void run() {
- if ( (json.isNull("username")) || (json.isNull("amount_formatted"))) {
- return;
- }
+ if ((json.isNull("username")) || (json.isNull("amount_formatted"))) {
+ return;
+ }
- if ((json.getString("amount_formatted")).length() <= 1) {
- return;
- }
+ if ((json.getString("amount_formatted")).length() <= 1) {
+ return;
+ }
- DonationExecutor.getInstance().listOfStreamerPlayers
- .addToDonationsQueue(new Donation(Bukkit.getConsoleSender(),
- json.getString("username"),
- json.getString("amount_formatted"),
- json.getString("message")));
+ DonationExecutor.getInstance().listOfStreamerPlayers
+ .addToDonationsQueue(new Donation(Bukkit.getConsoleSender(),
+ json.getString("username"),
+ json.getString("amount_formatted"),
+ json.getString("message")));
- }
- }.runTask(Bukkit.getPluginManager().getPlugin("DonationExecutor"));
+ }
+ }.runTask(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("DonationExecutor")));
- }
};
- errorListener = new Listener() {
- @Override
- public void call(Object... arg0) {
- logToConsole("Произошла ошибка подключения к Donation Alerts!");
- }
- };
+ Listener errorListener = arg0 -> logToConsole("Произошла ошибка подключения к Donation Alerts!");
socket.on(Socket.EVENT_CONNECT, connectListener)
- .on(Socket.EVENT_DISCONNECT, disconectListener)
- .on(Socket.EVENT_ERROR, errorListener)
+ .on(Socket.EVENT_DISCONNECT, disconnectListener)
+ .on(Socket.EVENT_CONNECT_ERROR, errorListener)
.on("donation", donationListener);
}
- public void Connect (String token) throws JSONException {
+ public void connect(String token) throws JSONException {
socket.connect();
socket.emit("add-user", new JSONObject()
.put("token", token)
.put("type", "minor"));
}
- public void Disconnect() throws JSONException {
+ public void disconnect() throws JSONException {
socket.disconnect();
}
+ @Suppress(names = "UNUSED")
public boolean getConnected() {
return socket.connected();
}
diff --git a/src/main/java/igorlink/command/AbstractCommand.java b/src/main/java/igorlink/command/AbstractCommand.java
index d62bf86..5981ba5 100644
--- a/src/main/java/igorlink/command/AbstractCommand.java
+++ b/src/main/java/igorlink/command/AbstractCommand.java
@@ -21,10 +21,6 @@ public AbstractCommand(String command) {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
- if (execute(sender, label, args)) {
- return true;
- } else {
- return false;
- }
+ return execute(sender, label, args);
}
}
diff --git a/src/main/java/igorlink/command/DonateSubCommand.java b/src/main/java/igorlink/command/DonateSubCommand.java
index 3e4c1b3..c604e14 100644
--- a/src/main/java/igorlink/command/DonateSubCommand.java
+++ b/src/main/java/igorlink/command/DonateSubCommand.java
@@ -9,9 +9,9 @@ public static void onDonateCommand(CommandSender sender, String[] args) {
int i;
//Getting donation's amount
- String donationAmount = new String();
- String donationUsername = new String();
- String donationMessage = new String();
+ String donationAmount;
+ StringBuilder donationUsername = new StringBuilder();
+ StringBuilder donationMessage = new StringBuilder();
//Getting donation's amount
donationAmount = args[0];
@@ -20,24 +20,23 @@ public static void onDonateCommand(CommandSender sender, String[] args) {
for (i = 1; i <= args.length - 1; i++) {
if (args[i].equals("##")) {
break;
- }
- else {
- if (i==1) {
- donationUsername = donationUsername + args[i];
- }
- else {
- donationUsername = ' ' + donationUsername + args[i];
+ } else {
+ if (i == 1) {
+ donationUsername.append(args[i]);
+ } else {
+ donationUsername = new StringBuilder(' ' + donationUsername.toString() + args[i]);
}
}
}
//Все, что после символов ## - это сообщение
- for (i = i+1; i <= args.length - 1; i++)
- {
- donationMessage = donationMessage + args[i] + ' ';
+ for (i = i + 1; i <= args.length - 1; i++) {
+ donationMessage.append(args[i]).append(' ');
}
- //Отправляем донат на исполнение
- DonationExecutor.getInstance().listOfStreamerPlayers.addToDonationsQueue(new Donation(sender, donationUsername, donationAmount+".00", donationMessage));
+ String amount = donationAmount + ".00";
+
+ //Отправляем Донат на исполнение
+ DonationExecutor.getInstance().listOfStreamerPlayers.addToDonationsQueue(new Donation(sender, donationUsername.toString(), amount, donationMessage.toString()));
}
}
diff --git a/src/main/java/igorlink/command/DonationExecutorCommand.java b/src/main/java/igorlink/command/DonationExecutorCommand.java
index fae90d7..04380dc 100644
--- a/src/main/java/igorlink/command/DonationExecutorCommand.java
+++ b/src/main/java/igorlink/command/DonationExecutorCommand.java
@@ -17,52 +17,49 @@ public Boolean execute(CommandSender sender, String label, String[] args) {
if (args.length == 0) {
return false;
}
-
try {
-
//Если команда - это reload, где не должно быть доп аргументов, то вызываем функцию релоуда конфига
- if (args[0].equals("reload")) {
- if (args.length == 1) {
- ReloadSubCommand.onReloadCommand(sender);
- return true;
- }
- } else if (args[0].equals("donate")) {
- //Инициализируем список аргментов для новой сабфункции
- //Если команда - donate, где нужен минимум 1 доп аргумент, создаем новый массив аргументов со смещением 1, и вызываем функцию обработки доната
- if (args.length >= 2) {
- //Инициализируем список новых аргументов для субкоманды
- newArgs = new String[args.length - 1];
- //Создаем новый список аргументов, копируя старый со смещением 1
- System.arraycopy(args, 1, newArgs, 0, args.length - 1);
- //Вызываем обработку доната
- DonateSubCommand.onDonateCommand(sender, newArgs);
- //Возвращаем true, к все прошло успешно
- return true;
- }
- } else if (args[0].equals("filter")) {
- if ((args.length == 2) && (args[1].equals("on")) || (args[1].equals("off"))) {
- //Инициализируем список новых аргументов для субкоманды
- newArgs = new String[args.length - 1];
- //Создаем новый список аргументов, копируя старый со смещением 1
- System.arraycopy(args, 1, newArgs, 0, args.length - 1);
- //Вызываем обработку доната
- FilterSubCommand.onFilterCommand(sender, newArgs);
- //Возвращаем true, к все прошло успешно
- return true;
- }
+ switch (args[0]) {
+ case "reload":
+ if (args.length == 1) {
+ ReloadSubCommand.onReloadCommand(sender);
+ return true;
+ }
+ break;
+ case "donate":
+ //Инициализируем список аргментов для новой сабфункции
+ //Если команда - donate, где нужен минимум 1 доп аргумент, создаем новый массив аргументов со смещением 1, и вызываем функцию обработки доната
+ if (args.length >= 2) {
+ //Инициализируем список новых аргументов для субкоманды
+ newArgs = new String[args.length - 1];
+ //Создаем новый список аргументов, копируя старый со смещением 1
+ System.arraycopy(args, 1, newArgs, 0, args.length - 1);
+ //Вызываем обработку доната
+ DonateSubCommand.onDonateCommand(sender, newArgs);
+ //Возвращаем true, к все прошло успешно
+ return true;
+ }
+ break;
+ case "filter":
+ if ((args.length == 2) && (args[1].equals("on")) || (args[1].equals("off"))) {
+ //Инициализируем список новых аргументов для субкоманды
+ newArgs = new String[args.length - 1];
+ //Создаем новый список аргументов, копируя старый со смещением 1
+ System.arraycopy(args, 1, newArgs, 0, args.length - 1);
+ //Вызываем обработку доната
+ FilterSubCommand.onFilterCommand(sender, newArgs);
+ //Возвращаем true, к все прошло успешно
+ return true;
+ }
+ break;
}
-
} catch (Exception e) {
-
//Если получили exception, сообщаем о нем и выдаем сообщение об ошибке в консоль
e.printStackTrace();
logToConsole("Произошла неизвестная ошибка при выполнении команды!");
return false;
-
}
-
//Если ничего не выполнилось - в команде была ошибка
return false;
}
-
}
diff --git a/src/main/java/igorlink/command/FilterSubCommand.java b/src/main/java/igorlink/command/FilterSubCommand.java
index b6c8402..66a4c9a 100644
--- a/src/main/java/igorlink/command/FilterSubCommand.java
+++ b/src/main/java/igorlink/command/FilterSubCommand.java
@@ -5,22 +5,24 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import static org.dark0ghost.configs.Text.RU.FilterSubCommandText.FILTER_OFF_TEXT;
+import static org.dark0ghost.configs.Text.RU.FilterSubCommandText.FILTER_ON_TEXT;
+
public class FilterSubCommand {
public static void onFilterCommand(CommandSender sender, String[] args) {
- if (args[0].toLowerCase().equals("on")) {
+ if (args[0].equalsIgnoreCase("on")) {
MainConfig.turnFilterOn();
- Utils.logToConsole("Фильтр никнеймов донатеров §bВКЛЮЧЕН");
+ Utils.logToConsole(FILTER_ON_TEXT);
if (sender instanceof Player) {
- Utils.sendSysMsgToPlayer((Player) sender, "Фильтр никнеймов донатеров §bВКЛЮЧЕН");
+ Utils.sendSysMsgToPlayer((Player) sender, FILTER_ON_TEXT);
}
} else {
MainConfig.turnFilterOff();
- Utils.logToConsole("Фильтр никнеймов донатеров §bВЫКЛЮЧЕН");
+ Utils.logToConsole(FILTER_OFF_TEXT);
if (sender instanceof Player) {
- Utils.sendSysMsgToPlayer((Player) sender,"Фильтр никнеймов донатеров §bВЫКЛЮЧЕН");
+ Utils.sendSysMsgToPlayer((Player) sender, FILTER_OFF_TEXT);
}
}
-
}
}
diff --git a/src/main/java/igorlink/command/ReloadSubCommand.java b/src/main/java/igorlink/command/ReloadSubCommand.java
index 5c59c0c..3996b62 100644
--- a/src/main/java/igorlink/command/ReloadSubCommand.java
+++ b/src/main/java/igorlink/command/ReloadSubCommand.java
@@ -5,12 +5,16 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import java.util.Objects;
+
+import static org.dark0ghost.configs.Text.RU.ReloadSubCommandText.UPDATE_SETTINGS_TEXT;
+
public class ReloadSubCommand {
public static void onReloadCommand(CommandSender sender){
MainConfig.loadMainConfig(true);
- Utils.logToConsole("Настройки успешно обновлены!");
+ Utils.logToConsole(UPDATE_SETTINGS_TEXT);
if (sender instanceof Player) {
- Utils.sendSysMsgToPlayer(((Player) sender).getPlayer(), "Настройки успешно обновлены!");
+ Utils.sendSysMsgToPlayer(Objects.requireNonNull(((Player) sender).getPlayer()), UPDATE_SETTINGS_TEXT);
}
}
}
diff --git a/src/main/java/igorlink/donationexecutor/DonationExecutor.java b/src/main/java/igorlink/donationexecutor/DonationExecutor.java
index ddca55b..fa8c386 100644
--- a/src/main/java/igorlink/donationexecutor/DonationExecutor.java
+++ b/src/main/java/igorlink/donationexecutor/DonationExecutor.java
@@ -7,17 +7,19 @@
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import igorlink.DonationAlerts.*;
+import org.json.JSONException;
+
import java.net.URISyntaxException;
import static igorlink.service.Utils.*;
public final class DonationExecutor extends JavaPlugin {
- public static final String DASERVER = "https://socket.donationalerts.ru:443";
+ public static final String apiLink = "https://socket.donationalerts.ru:443";
private static DonationExecutor instance;
public static DonationAlerts da;
public static GiantMobManager giantMobManager;
- public static Boolean isRunning = true;
+ public static Boolean isRunningStatus = true;
public ListOfStreamerPlayers listOfStreamerPlayers;
@@ -30,35 +32,32 @@ public void onEnable() {
if (CheckNameAndToken()) {
try {
- da = new DonationAlerts(DASERVER);
- da.Connect(MainConfig.token);
+ da = new DonationAlerts(apiLink);
+ da.connect(MainConfig.token);
} catch (URISyntaxException e) {
- e.printStackTrace();
+ System.err.println(e.getMessage());
}
new DonationExecutorCommand();
}
-
-
- Bukkit.getPluginManager().registerEvents(new EventListener(),this);
-
+ Bukkit.getPluginManager().registerEvents(new EventListener(), this);
}
@Override
public void onDisable() {
try {
- isRunning = false;
- da.Disconnect();
+ isRunningStatus = false;
+ da.disconnect();
Thread.sleep(1000);
- da = null;
- } catch (Exception e) {
+ } catch (JSONException e) {
logToConsole("Какая-то ебаная ошибка, похуй на нее вообще");
+ } catch (Exception e){
+ logToConsole("Произошла неустановленная ошибка, как такое могло произойти?");
+ } finally {
+ da = null;
}
}
-
public static DonationExecutor getInstance() {
return instance;
}
-
-
}
diff --git a/src/main/java/igorlink/donationexecutor/EventListener.java b/src/main/java/igorlink/donationexecutor/EventListener.java
index cf0748c..0f793fb 100644
--- a/src/main/java/igorlink/donationexecutor/EventListener.java
+++ b/src/main/java/igorlink/donationexecutor/EventListener.java
@@ -12,7 +12,7 @@
public class EventListener implements Listener {
- private Map projectiles = new HashMap();
+ private final Map projectiles = new HashMap<>();
//Отмена горения НКВДшников
@EventHandler
diff --git a/src/main/java/igorlink/donationexecutor/Executor.java b/src/main/java/igorlink/donationexecutor/Executor.java
index 4ff2e9c..f34b618 100644
--- a/src/main/java/igorlink/donationexecutor/Executor.java
+++ b/src/main/java/igorlink/donationexecutor/Executor.java
@@ -1,42 +1,56 @@
package igorlink.donationexecutor;
+
+import org.dark0ghost.annotations.MagicConst;
import igorlink.service.MainConfig;
-import net.md_5.bungee.api.ChatMessageType;
-import net.md_5.bungee.api.chat.TextComponent;
-import org.bukkit.*;
+import kotlin.Suppress;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.Sound;
+import org.bukkit.World;
import org.bukkit.attribute.Attribute;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.*;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
import static igorlink.service.Utils.*;
-import static java.lang.Math.*;
+import static java.lang.Math.random;
+import static java.lang.Math.round;
import static org.bukkit.Bukkit.getPlayer;
+import static org.dark0ghost.configs.Text.RU.ExecutorText.*;
public class Executor {
- public static String nameOfStreamerPlayer;
- public static String nameOfSecondStreamerPlayer;
+
+ private @MagicConst static final int eventOneHealth = 1;
+ private @MagicConst static final int eventZeroHealth = 1;
+ private @MagicConst static final double rotateAroundY = 1.5708;
+
+ public @Suppress(names = "UNUSED_PARAMETER")
+ static String nameOfStreamerPlayer;
+ public @Suppress(names = "UNUSED_PARAMETER")
+ static String nameOfSecondStreamerPlayer;
public static List executionsList = new ArrayList<>(Arrays.asList("ShitToInventory", "Lesch", "DropActiveItem",
"PowerKick", "ClearLastDeathDrop", "SpawnCreeper", "GiveDiamonds", "GiveStackOfDiamonds", "GiveBread",
"CallNKVD", "CallStalin", "RandomChange", "TamedBecomesEnemies", "HalfHeart", "BigBoom"));
-
public static void DoExecute(CommandSender sender, String streamerName, String donationUsername, String fullDonationAmount, String donationMessage, String executionName) {
//Если имя донатера не указано - устанавливаем в качестве имени "Кто-то"
- String _donationUsername;
+ @Suppress(names = "UNUSED_PARAMETER") String _donationUsername;
if (donationUsername.equals("")) {
- _donationUsername = "Кто-то";
+ _donationUsername = UNIDENTIFIED_USER_NAME;
} else {
_donationUsername = donationUsername;
}
- Boolean canContinue = true;
+ boolean canContinue = true;
//Определяем игрока (если он оффлайн - не выполняем донат и пишем об этом в консоль), а также определяем мир, местоположение и направление игрока
Player streamerPlayer = getPlayer(streamerName);
if (streamerPlayer == null) {
@@ -51,71 +65,37 @@ public static void DoExecute(CommandSender sender, String streamerName, String d
}
Location streamerPlayerLocation = streamerPlayer.getLocation();
- World world = streamerPlayer.getWorld();
- Vector direction = streamerPlayerLocation.getDirection();
+ @Suppress(names = "UNUSED_PARAMETER") World world = streamerPlayer.getWorld();
+ @Suppress(names = "UNUSED_PARAMETER") Vector direction = streamerPlayerLocation.getDirection();
//streamerPlayer.sendActionBar(donationMessage);
switch (executionName) {
- case "ShitToInventory":
- shitToInventory(streamerPlayer, donationUsername);
- break;
- case "Lesch":
- lesch(streamerPlayer, donationUsername);
- break;
- case "DropActiveItem":
- dropActiveItem(streamerPlayer, donationUsername);
- break;
- case "PowerKick":
- powerKick(streamerPlayer, donationUsername);
- break;
- case "ClearLastDeathDrop":
- clearLastDeathDrop(streamerPlayer, donationUsername);
- break;
- case "SpawnCreeper":
- spawnCreeper(streamerPlayer, donationUsername);
- break;
- case "GiveDiamonds":
- giveDiamonds(streamerPlayer, donationUsername);
- break;
- case "GiveStackOfDiamonds":
- giveStackOfDiamonds(streamerPlayer, donationUsername);
- break;
- case "GiveBread":
- giveBread(streamerPlayer, donationUsername);
- break;
- case "CallNKVD":
- callNKVD(streamerPlayer, donationUsername);
- break;
- case "CallStalin":
- callStalin(streamerPlayer, donationUsername);
- break;
- case "RandomChange":
- randomChange(streamerPlayer, donationUsername);
- break;
- case "TamedBecomesEnemies":
- tamedBecomesEnemies(streamerPlayer, donationUsername);
- break;
- case "HalfHeart":
- halfHeart(streamerPlayer, donationUsername);
- break;
- case "BigBoom":
- bigBoom(streamerPlayer, donationUsername);
- break;
+ case "ShitToInventory" -> shitToInventory(streamerPlayer, donationUsername);
+ case "Lesch" -> lesch(streamerPlayer, donationUsername);
+ case "DropActiveItem" -> dropActiveItem(streamerPlayer, donationUsername);
+ case "PowerKick" -> powerKick(streamerPlayer, donationUsername);
+ case "ClearLastDeathDrop" -> clearLastDeathDrop(streamerPlayer, donationUsername);
+ case "SpawnCreeper" -> spawnCreeper(streamerPlayer, donationUsername);
+ case "GiveDiamonds" -> giveDiamonds(streamerPlayer, donationUsername);
+ case "GiveStackOfDiamonds" -> giveStackOfDiamonds(streamerPlayer, donationUsername);
+ case "GiveBread" -> giveBread(streamerPlayer, donationUsername);
+ case "CallNKVD" -> callNKVD(streamerPlayer, donationUsername);
+ case "CallStalin" -> callStalin(streamerPlayer, donationUsername);
+ case "RandomChange" -> randomChange(streamerPlayer, donationUsername);
+ case "TamedBecomesEnemies" -> tamedBecomesEnemies(streamerPlayer, donationUsername);
+ case "HalfHeart" -> halfHeart(streamerPlayer, donationUsername);
+ case "BigBoom" -> bigBoom(streamerPlayer, donationUsername);
}
-
}
-
-
-
- public static void shitToInventory (Player player, String donationUsername) {
- announce(donationUsername, "насрал тебе в инвентарь", "насрал в инвентарь", player, true);
+ public static void shitToInventory(Player player, String donationUsername) {
+ announce(donationUsername, SHIT_INVENTORY_EVENT_TEXT, SHIT_INVENTORY_EVENT_TEXT, player, true);
Material itemType = Material.DIRT;
ItemStack itemStack = new ItemStack(itemType, 64);
ItemMeta meta = itemStack.getItemMeta();
meta.setDisplayName("§cГОВНО ОТ §f" + donationUsername.toUpperCase());
- meta.setLore(Arrays.asList("§7Это говно ужасно вонюче и занимает много места"));
+ meta.setLore(List.of(SHIT_INVENTORY_LORE));
itemStack.setItemMeta(meta);
for (int i = 0; i < MainConfig.dirtAmount; i++) {
@@ -123,130 +103,129 @@ public static void shitToInventory (Player player, String donationUsername) {
}
}
- public static void dropActiveItem (Player player, String donationUsername) {
+ public static void dropActiveItem(Player player, String donationUsername) {
if (player.getEquipment().getItemInMainHand().getType() == Material.AIR) {
- announce(donationUsername, "безуспешно пытался выбить у тебя предмет из рук", "безуспешно пытался выбить предмет из рук", player, true);
- } else {
- announce(donationUsername, "выбил у тебя предмет из рук", "выбил предмет из рук", player, true);
- ((HumanEntity) player).dropItem(true);
- player.updateInventory();
+ announce(donationUsername, FAIL_DROP_EVENT_TEXT, FAIL_DROP_EVENT_TEXT, player, true);
+ return;
}
+ announce(donationUsername, SUCCESS_DROP_EVENT_TEXT, SUCCESS_DROP_EVENT_TEXT, player, true);
+ player.dropItem(true);
+ player.updateInventory();
}
- public static void lesch (Player player, String donationUsername) {
- announce(donationUsername, "дал тебе леща", "дал леща", player, true);
+ public static void lesch(Player player, String donationUsername) {
+ announce(donationUsername, LESH_EVENT_TEXT, LESH_EVENT_TEXT, player, true);
Vector direction = player.getLocation().getDirection();
direction.setY(0);
direction.normalize();
direction.setY(0.3);
player.setVelocity(direction.multiply(0.8));
- if (player.getHealth()>2.0D) {
- player.setHealth(player.getHealth()-2);
+ if (player.getHealth() > 2.0D) {
+ player.setHealth(player.getHealth() - 2);
} else {
- player.setHealth(0);
+ player.setHealth(eventZeroHealth);
}
- ((org.bukkit.entity.Player) player).playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT, 1, 1);
+ player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT, 1, 1);
}
- public static void powerKick (Player player, String donationUsername) {
- announce(donationUsername, "дал тебе смачного пинка под зад", "дал смачного пинка под зад", player, true);
+ public static void powerKick(Player player, String donationUsername) {
+ announce(donationUsername, KICK_EVENT_TEXT, KICK_EVENT_TEXT, player, true);
Vector direction = player.getLocation().getDirection();
direction.setY(0);
direction.normalize();
direction.setY(0.5);
player.setVelocity(direction.multiply(1.66));
- if (player.getHealth()>3.0D) {
- player.setHealth(player.getHealth()-3);
+ if (player.getHealth() > 3.0D) {
+ player.setHealth(player.getHealth() - 3);
} else {
- player.setHealth(0);
+ player.setHealth(eventZeroHealth);
}
- ((org.bukkit.entity.Player) player).playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT, 1, 1);
+ player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT, 1, 1);
}
- public static void clearLastDeathDrop (Player player, String donationUsername) {
+ public static void clearLastDeathDrop(Player player, String donationUsername) {
//Remove Last Death Dropped Items
if (DonationExecutor.getInstance().listOfStreamerPlayers.getStreamerPlayer(player.getName()).removeDeathDrop()) {
- announce(donationUsername, "уничтожил твой посмертный дроп...", "уничтожил посмертный дроп", player, true);
- } else {
- announce(donationUsername, "безуспешно пытался уничтожить твой посмертный дроп...", "безуспешно пытался уничтожить посмертный дроп", player, true);
+ announce(donationUsername, SUCCESS_CLEAR_DROP_EVENT_TEXT + SPECIAL_END_TEXT, SUCCESS_CLEAR_DROP_EVENT_TEXT, player, true);
+ return;
}
+ announce(donationUsername, FAIL_CLEAR_DROP_EVENT_TEXT + SPECIAL_END_TEXT, FAIL_CLEAR_DROP_EVENT_TEXT, player, true);
}
- public static void spawnCreeper (Player player, String donationUsername) {
+ public static void spawnCreeper(Player player, String donationUsername) {
//Spawn Creepers
Vector direction = player.getLocation().getDirection();
- announce(donationUsername, "прислал тебе в подарок крипера...", "прислал крипера в подарок", player, true);
+ announce(donationUsername, SPAWN_CREEPER_EVENT_TEXT + SPECIAL_END_TEXT, SPAWN_CREEPER_EVENT_TEXT, player, true);
direction.setY(0);
direction.normalize();
player.getWorld().spawnEntity(player.getLocation().clone().subtract(direction.multiply(1)), EntityType.CREEPER);
-
}
- public static void giveDiamonds (Player player, String donationUsername) {
+ public static void giveDiamonds(Player player, String donationUsername) {
//Give some diamonds to the player
- announce(donationUsername, "насыпал тебе алмазов!", "насыпал алмазов", player, true);
+ announce(donationUsername, GIVE_DIAMOND_EVENT_TEXT, GIVE_DIAMOND_EVENT_TEXT, player, true);
Material itemType = Material.DIAMOND;
ItemStack itemStack = new ItemStack(itemType, MainConfig.diamondsAmount);
ItemMeta meta = itemStack.getItemMeta();
meta.setDisplayName("§bАлмаз");
- meta.setLore(Arrays.asList("§7Эти алмазы подарил §f" + donationUsername));
+ meta.setLore(List.of("§7Эти алмазы подарил §f" + donationUsername));
itemStack.setItemMeta(meta);
- Item diamonds = player.getWorld().dropItemNaturally(player.getLocation(), itemStack);
+ @Suppress(names = "UNUSED_PARAMETER") Item diamonds = player.getWorld().dropItemNaturally(player.getLocation(), itemStack);
}
- public static void giveStackOfDiamonds (Player player, String donationUsername) {
- announce(donationUsername, "насыпал тебе алмазов!", "насыпал алмазов", player, true);
+ public static void giveStackOfDiamonds(Player player, String donationUsername) {
+ announce(donationUsername, GIVE_DIAMOND_EVENT_TEXT, GIVE_DIAMOND_EVENT_TEXT, player, true);
Material itemType = Material.DIAMOND;
ItemStack itemStack = new ItemStack(itemType, 64);
ItemMeta meta = itemStack.getItemMeta();
meta.setDisplayName("§bАлмаз");
- meta.setLore(Arrays.asList("§7Эти алмазы подарил §f" + donationUsername));
+ meta.setLore(List.of("§7Эти алмазы подарил §f" + donationUsername));
itemStack.setItemMeta(meta);
- Item diamonds = player.getWorld().dropItemNaturally(player.getLocation(), itemStack);
+ @Suppress(names = "UNUSED_PARAMETER") Item diamonds = player.getWorld().dropItemNaturally(player.getLocation(), itemStack);
}
- public static void giveBread (Player player, String donationUsername) {
- announce(donationUsername, "дал тебе хлеба!", "дал хлеба", player, true);
+ public static void giveBread(Player player, String donationUsername) {
+ announce(donationUsername, BREAD_EVENT_SUBTEXT, BREAD_EVENT_ALERT_TEXT, player, true);
Material itemType = Material.BREAD;
ItemStack itemStack = new ItemStack(itemType, 4);
ItemMeta meta = itemStack.getItemMeta();
meta.setDisplayName("§bХлеб");
- meta.setLore(Arrays.asList("§7Этот хлеб подарил §f" + donationUsername));
+ meta.setLore(List.of("§7Этот хлеб подарил §f" + donationUsername));
itemStack.setItemMeta(meta);
- Item bread = player.getWorld().dropItemNaturally(player.getLocation(), itemStack);
+ @Suppress(names = "UNUSED_PARAMETER") Item bread = player.getWorld().dropItemNaturally(player.getLocation(), itemStack);
}
- public static void callNKVD (Player player, String donationUsername) {
+ public static void callNKVD(Player player, String donationUsername) {
Vector direction = player.getLocation().getDirection();
LivingEntity nkvdMob;
- announce(donationUsername, "хочет отправить тебя в ГУЛАГ!", "хочет отправить в ГУЛАГ", player, true);
+ announce(donationUsername, NKVD_EVENT_TEXT, NKVD_EVENT_TEXT, player, true);
direction.setY(0);
direction.normalize();
for (int i = 1; i <= 3; i++) {
- Location newloc = player.getLocation().clone();
+ Location newLoc = player.getLocation().clone();
Vector newdir = direction.clone();
- newdir = newdir.rotateAroundY(1.5708 * i).multiply(2);
- newloc.add(newdir);
- nkvdMob = (LivingEntity) player.getWorld().spawnEntity(newloc, EntityType.ZOMBIE);
+ newdir = newdir.rotateAroundY(rotateAroundY * i).multiply(2);
+ newLoc.add(newdir);
+ nkvdMob = (LivingEntity) player.getWorld().spawnEntity(newLoc, EntityType.ZOMBIE);
nkvdMob.setCustomName("§cСотрудник НКВД");
- nkvdMob.getEquipment().setItem(EquipmentSlot.HAND, new ItemStack(Material.IRON_SWORD));
- nkvdMob.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue(0.3);
+ Objects.requireNonNull(nkvdMob.getEquipment()).setItem(EquipmentSlot.HAND, new ItemStack(Material.IRON_SWORD));
+ Objects.requireNonNull(nkvdMob.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED)).setBaseValue(0.3);
}
}
- public static void callStalin (Player player, String donationUsername) {
- announce(donationUsername, "призвал Сталина разобраться с тобой!", "призвал Сталина разобраться с", player, true);
+ public static void callStalin(Player player, String donationUsername) {
+ announce(donationUsername, STALING_EVENT_TEXT + "тобой!" , STALING_EVENT_TEXT, player, true);
DonationExecutor.giantMobManager.addMob(player.getLocation(), "§cИосиф Сталин");
}
- public static void randomChange (Player player, String donationUsername) {
- announce(donationUsername, "подменил тебе кое-что на камни...", "призвал Сталина разобраться с", player, true);
+ public static void randomChange(Player player, String donationUsername) {
+ announce(donationUsername, RANDOM_EVENT_TEXT, STALING_EVENT_TEXT, player, true);
int[] randoms = new int[5];
for (int i = 0; i <= 4; i++) {
int temp = 0;
- Boolean isUnique = false;
+ boolean isUnique = false;
while (!isUnique) {
temp = (int) (round(random() * 35));
isUnique = true;
@@ -259,38 +238,55 @@ public static void randomChange (Player player, String donationUsername) {
}
}
randoms[i] = temp;
-
}
- String replacedItems = new String("");
+ StringBuilder replacedItems = new StringBuilder();
int replacedCounter = 0;
for (int i = 0; i <= 4; i++) {
if (!(player.getInventory().getItem(randoms[i]) == null)) {
replacedCounter++;
if (replacedCounter > 1) {
- replacedItems = replacedItems + "§f, ";
+ replacedItems.append("§f, ");
}
- replacedItems = replacedItems + "§b" + player.getInventory().getItem(randoms[i]).getAmount() + " §f" + player.getInventory().getItem(randoms[i]).getI18NDisplayName().toString();
+ replacedItems
+ .append("§b")
+ .append(
+ Objects
+ .requireNonNull(
+ player
+ .getInventory()
+ .getItem(randoms[i])
+ )
+ .getAmount())
+ .append(" §f")
+ .append(
+ Objects
+ .requireNonNull(
+ player
+ .getInventory()
+ .getItem(randoms[i])
+ )
+ .getI18NDisplayName());
}
player.getInventory().setItem(randoms[i], new ItemStack(Material.STONE, 1));
}
if (replacedCounter == 0) {
- sendSysMsgToPlayer(player,"§cТебе повезло: все камни попали в пустые слоты!");
- } else {
- sendSysMsgToPlayer(player,"§cБыли заменены следующие предметусы: §f" + replacedItems);
+ sendSysMsgToPlayer(player, "§cТебе повезло: все камни попали в пустые слоты!");
+ return;
}
+ sendSysMsgToPlayer(player, "§cБыли заменены следующие предметусы: §f" + replacedItems);
}
- public static void halfHeart (Player player, String donationUsername) {
- player.setHealth(1);
- announce(donationUsername, "оставил тебе лишь полсердечка...", "оставил лишь полсердечка", player, true);
+ public static void halfHeart(Player player, String donationUsername) {
+ player.setHealth(eventOneHealth);
+ announce(donationUsername, HALF_HEART_EVENT_TEXT + SPECIAL_END_TEXT, HALF_HEART_EVENT_TEXT, player, true);
}
- public static void tamedBecomesEnemies (Player player, String donationUsername) {
- announce(donationUsername, "настроил твоих питомцев против тебя!", "настроил прирученных питомцев против", player, true);
+ public static void tamedBecomesEnemies(Player player, String donationUsername) {
+ announce(donationUsername, ENEMIES_EVENT_TEXT, ENEMIES_EVENT_TEXT, player, true);
for (Entity e : player.getWorld().getEntitiesByClasses(Wolf.class, Cat.class)) {
- if (((Tameable) e).isTamed() && ((Tameable) e).getOwner().getName().equals(player.getName())) {
+ if (((Tameable) e).isTamed() && Objects.equals(Objects.requireNonNull(((Tameable) e).getOwner()).getName(), player.getName())) {
if (e instanceof Cat) {
((Tameable) e).setOwner(null);
((Cat) e).setSitting(false);
@@ -305,11 +301,8 @@ public static void tamedBecomesEnemies (Player player, String donationUsername)
}
}
- public static void bigBoom (Player player, String donationUsername) {
- announce(donationUsername, "сейчас тебя РАЗНЕСЕТ В КЛОЧЬЯ!!!", "сейчас РАЗНЕСЕТ В КЛОЧЬЯ", player, true);
+ public static void bigBoom(Player player, String donationUsername) {
+ announce(donationUsername, BOOM_EVENT_TEXT, BOOM_EVENT_TEXT, player, true);
player.getWorld().createExplosion(player.getLocation(), MainConfig.bigBoomRadius, true);
-
}
-
-
}
diff --git a/src/main/java/igorlink/donationexecutor/executionsstaff/Donation.java b/src/main/java/igorlink/donationexecutor/executionsstaff/Donation.java
index 6a33bda..9a883d5 100644
--- a/src/main/java/igorlink/donationexecutor/executionsstaff/Donation.java
+++ b/src/main/java/igorlink/donationexecutor/executionsstaff/Donation.java
@@ -1,53 +1,40 @@
package igorlink.donationexecutor.executionsstaff;
+
+import kotlin.Suppress;
+import lombok.Getter;
+import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
+import static org.dark0ghost.configs.Text.RU.DonationText.DEFAULT_NAME;
+
public class Donation {
+ @Getter
private CommandSender sender;
+ @Getter
private String username;
+ @Getter
private String amount;
+ @Getter
private String message;
+ @Getter
+ @Setter
private String executionName = null;
- public Donation(String _username, String _amount, String _message) {
- new Donation(Bukkit.getConsoleSender(), _username, _amount, _message);
+ @Suppress(names = "Unused constructor")
+ public Donation(String username, String amount, String message) {
+ new Donation(Bukkit.getConsoleSender(), username, amount, message);
}
- public Donation(CommandSender _sender, String _username, String _amount, String _message) {
- sender = _sender;
- if (_username.equals("")) {
- username = "Аноним";
- } else {
- username = _username;
+ public Donation(CommandSender sender, String username, String amount, String message) {
+ this.sender = sender;
+ this.amount = amount;
+ this.message = message;
+ if (username.equals("")) {
+ this.username = DEFAULT_NAME;
+ return;
}
- amount = _amount;
- message = _message;
- }
-
- public CommandSender getSender() {
- return sender;
- }
-
- public String getName() {
- return username;
- }
-
- public String getAmount() {
- return amount;
+ this.username = username;
}
-
- public String getMessage() {
- return message;
- }
-
- public String getexecutionName() {
- return executionName;
- }
-
- public void setexecutionName(String _executionName) {
- executionName = _executionName;
- }
-
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/igorlink/donationexecutor/executionsstaff/GiantMobManager.java b/src/main/java/igorlink/donationexecutor/executionsstaff/GiantMobManager.java
index 082ee21..dd14038 100644
--- a/src/main/java/igorlink/donationexecutor/executionsstaff/GiantMobManager.java
+++ b/src/main/java/igorlink/donationexecutor/executionsstaff/GiantMobManager.java
@@ -3,6 +3,7 @@
import com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent;
import igorlink.donationexecutor.DonationExecutor;
import io.papermc.paper.event.entity.EntityMoveEvent;
+import kotlin.Suppress;
import org.bukkit.*;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
@@ -25,8 +26,8 @@
import org.bukkit.event.Listener;
public class GiantMobManager {
- private HashMap listOfMobLists = new HashMap();
- private HashMap listOfGiantMob = new HashMap();
+ private final HashMap> listOfMobLists = new HashMap<>();
+ private @Suppress(names = "UNUSED_PARAMETER") final HashMap listOfGiantMob = new HashMap<>();
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -71,7 +72,7 @@ private void addMobToList(@NotNull GiantMob newGiantMob) {
if (listOfMobLists.containsKey(newGiantMob.getName())) {
listOfMobLists.get(newGiantMob.getName()).put(newGiantMob.getUUID(), newGiantMob);
} else {
- listOfMobLists.put(newGiantMob.getName(), new HashMap());
+ listOfMobLists.put(newGiantMob.getName(), new HashMap());
listOfMobLists.get(newGiantMob.getName()).put(newGiantMob.getUUID(), newGiantMob);
}
@@ -87,7 +88,7 @@ private void removeMobFromList(@NotNull LivingEntity giantMob) {
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Класс гигантского моба
- private class GiantMob {
+ private static class GiantMob {
private int timesThisGiantMobIsOnOnePlace = 0;
private String thisGiantMobPlayerCurrentTargetName = null;
private int stepsAfterHiding = 0;
@@ -96,7 +97,6 @@ private class GiantMob {
final private int howManySnowballsMobLaunches = 4;
final private Boolean SnowballsFollowingTarget = false;
- final private int giantMobTrackingRange = 40;
final private static int timeBeforeThisGiantMobForgetHisTarget = 5;
final private static int ticksBetweenSnowballsShots = 7;
@@ -118,7 +118,7 @@ public GiantMob(@NotNull Location playerLocation, String mobName) {
this.giantMobLivingEntity.setGravity(true);
this.giantMobLivingEntity.setRemoveWhenFarAway(false);
this.thisGiantMobUUID = giantMobLivingEntity.getUniqueId();
- this.giantMobLivingEntity.getEquipment().setItem(EquipmentSlot.HAND, new ItemStack(Material.IRON_SWORD));
+ Objects.requireNonNull(this.giantMobLivingEntity.getEquipment()).setItem(EquipmentSlot.HAND, new ItemStack(Material.IRON_SWORD));
//Заставляем бегать и стрелять
this.makeGiantMobAttackWithFireballs();
@@ -153,21 +153,22 @@ public UUID getUUID() {
//Поиск ближайшей цели
private LivingEntity findGiantMobTarget() {
//получаем список ближайших врагов dв радиусе sralinShootingRadius
- Double sralinShootingRadius = (double) giantMobTrackingRange;
+ int giantMobTrackingRange = 40;
+ double sralinShootingRadius = (double) giantMobTrackingRange;
List listOfNearbyEntities = giantMobLivingEntity.getNearbyEntities(sralinShootingRadius, sralinShootingRadius, sralinShootingRadius);
List listOfNearbyPlayers = new ArrayList<>();
List listOfNearbyLivingEntities = new ArrayList<>();
//Пробегаемся и ищем игроков
for (Entity e : listOfNearbyEntities) {
- RayTraceResult rtRes1 = null;
- RayTraceResult rtRes2 = null;
- RayTraceResult rtRes3 = null;
- RayTraceResult rtRes4 = null;
- RayTraceResult rtRes5 = null;
- RayTraceResult rtRes6 = null;
- RayTraceResult rtRes7 = null;
- RayTraceResult rtRes8 = null;
+ RayTraceResult rtRes1;
+ RayTraceResult rtRes2;
+ RayTraceResult rtRes3;
+ RayTraceResult rtRes4;
+ RayTraceResult rtRes5;
+ RayTraceResult rtRes6;
+ RayTraceResult rtRes7;
+ RayTraceResult rtRes8;
if (e instanceof LivingEntity) {
//Позиции псевдоглаз вокруг головы с каждой стороны
@@ -181,10 +182,10 @@ private LivingEntity findGiantMobTarget() {
rtRes2 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos2, genVec(rtGiantMobPseudoEyesPos2, ((LivingEntity) e).getEyeLocation()), rtGiantMobPseudoEyesPos2.distance(((LivingEntity) e).getEyeLocation()), FluidCollisionMode.NEVER, true);
rtRes3 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos3, genVec(rtGiantMobPseudoEyesPos3, ((LivingEntity) e).getEyeLocation()), rtGiantMobPseudoEyesPos3.distance(((LivingEntity) e).getEyeLocation()), FluidCollisionMode.NEVER, true);
rtRes4 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos4, genVec(rtGiantMobPseudoEyesPos4, ((LivingEntity) e).getEyeLocation()), rtGiantMobPseudoEyesPos4.distance(((LivingEntity) e).getEyeLocation()), FluidCollisionMode.NEVER, true);
- rtRes5 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos1, genVec(rtGiantMobPseudoEyesPos1, ((LivingEntity) e).getLocation()), rtGiantMobPseudoEyesPos1.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
- rtRes6 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos2, genVec(rtGiantMobPseudoEyesPos2, ((LivingEntity) e).getLocation()), rtGiantMobPseudoEyesPos2.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
- rtRes7 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos3, genVec(rtGiantMobPseudoEyesPos3, ((LivingEntity) e).getLocation()), rtGiantMobPseudoEyesPos3.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
- rtRes8 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos4, genVec(rtGiantMobPseudoEyesPos4, ((LivingEntity) e).getLocation()), rtGiantMobPseudoEyesPos4.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
+ rtRes5 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos1, genVec(rtGiantMobPseudoEyesPos1, e.getLocation()), rtGiantMobPseudoEyesPos1.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
+ rtRes6 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos2, genVec(rtGiantMobPseudoEyesPos2, e.getLocation()), rtGiantMobPseudoEyesPos2.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
+ rtRes7 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos3, genVec(rtGiantMobPseudoEyesPos3, e.getLocation()), rtGiantMobPseudoEyesPos3.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
+ rtRes8 = giantMobLivingEntity.getWorld().rayTraceBlocks(rtGiantMobPseudoEyesPos4, genVec(rtGiantMobPseudoEyesPos4, e.getLocation()), rtGiantMobPseudoEyesPos4.distance(((LivingEntity) e).getLocation()), FluidCollisionMode.NEVER, true);
//Если Сталин может из любой позиции поврота голвоы увидеть верх или низ цели, то эта цель вносится в список кандидатов
if ((rtRes1 == null) || (rtRes2 == null) || (rtRes3 == null) || (rtRes4 == null) || (rtRes5 == null) || (rtRes6 == null) || (rtRes7 == null) || (rtRes8 == null)) {
@@ -237,21 +238,19 @@ private LivingEntity findGiantMobTarget() {
if ( (!(target instanceof Player)) && (!(thisGiantMobPlayerCurrentTargetName == null)) ) {
//Если прошлая цель-игрок существует, и он не мертв и находится в том же мире, что и наш моб
- if ( (!(getPlayer(thisGiantMobPlayerCurrentTargetName).isDead())) && (getPlayer(thisGiantMobPlayerCurrentTargetName).getWorld() == giantMobLivingEntity.getWorld()) ) {
+ if ( (!(Objects.requireNonNull(getPlayer(thisGiantMobPlayerCurrentTargetName)).isDead())) && (Objects.requireNonNull(getPlayer(thisGiantMobPlayerCurrentTargetName)).getWorld() == giantMobLivingEntity.getWorld()) ) {
//Если не подошло время забыть о нем и он не стал спектэйтором, фокусим моба на него
- if ((stepsAfterHiding <= timeBeforeThisGiantMobForgetHisTarget * 2) && (!(getPlayer(thisGiantMobPlayerCurrentTargetName).getGameMode()==GameMode.SPECTATOR)) && (!(getPlayer(thisGiantMobPlayerCurrentTargetName).getGameMode()==GameMode.CREATIVE))){
+ if ((stepsAfterHiding <= timeBeforeThisGiantMobForgetHisTarget * 2) && (!(Objects.requireNonNull(getPlayer(thisGiantMobPlayerCurrentTargetName)).getGameMode()==GameMode.SPECTATOR)) && (!(getPlayer(thisGiantMobPlayerCurrentTargetName).getGameMode()==GameMode.CREATIVE))){
target = getPlayer(thisGiantMobPlayerCurrentTargetName);
stepsAfterHiding++;
- } else {
+ return target;
+ }
//если подошло время забыть про него - забываем
stepsAfterHiding = 0;
thisGiantMobPlayerCurrentTargetName = null;
- }
-
}
}
-
//Возвращаем ближайшее ентити (игрок в приоритете)
return target;
}
@@ -272,11 +271,11 @@ private void forceGiantMobToMove() {
public void run() {
LivingEntity thisGiantMobLivingEntity = thisGiantMob.giantMobLivingEntity;
- if ( (thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunning)) ) {
+ if ( (thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunningStatus)) ) {
//Если Сталин уже помер, отрубаем задание
this.cancel();
return;
- } else {
+ }
//Если не помер, находим ближайшую цель (игроки в приоритете)
LivingEntity target;
target = thisGiantMob.findGiantMobTarget();
@@ -347,7 +346,7 @@ public void run() {
@Override
public void run() {
- if ( (thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunning)) ) {
+ if ( (thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunningStatus)) ) {
this.cancel();
return;
}
@@ -383,7 +382,6 @@ public void run() {
}
}.runTaskLater(DonationExecutor.getInstance(), 7);
}
- }
}
}.runTaskTimer(DonationExecutor.getInstance(), 0, 10);
}
@@ -401,7 +399,7 @@ public void run() {
LivingEntity thisGiantMobLivingEntity = thisGiantMob.giantMobLivingEntity;
//Если моб уже не существует, отменяем стрельбу
- if ((thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunning)) ) {
+ if ((thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunningStatus)) ) {
this.cancel();
return;
}
@@ -434,7 +432,7 @@ public void run() {
LivingEntity thisGiantMobLivingEntity = thisGiantMob.giantMobLivingEntity;
//Если моб уже не существует, отменяем стрельбу
- if ( (thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunning)) ) {
+ if ( (thisGiantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunningStatus)) ) {
this.cancel();
return;
}
@@ -453,7 +451,7 @@ public void run() {
new BukkitRunnable() {
@Override
public void run() {
- if ( (thisGiantMob.giantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunning)) ) {
+ if ( (thisGiantMob.giantMobLivingEntity.isDead()) || (!(DonationExecutor.isRunningStatus)) ) {
this.cancel();
return;
}
@@ -476,12 +474,11 @@ public void run() {
new BukkitRunnable() {
@Override
public void run() {
- if ( (snowball.isDead()) || finalTarget.isDead() || (!(finalTarget.getWorld() == snowball.getWorld())) || (!(DonationExecutor.isRunning)) ) {
+ if ( (snowball.isDead()) || finalTarget.isDead() || (!(finalTarget.getWorld() == snowball.getWorld())) || (!(DonationExecutor.isRunningStatus)) ) {
this.cancel();
return;
- } else {
- snowball.setVelocity(genVec(snowball.getLocation(), finalTarget.getEyeLocation()));
}
+ snowball.setVelocity(genVec(snowball.getLocation(), finalTarget.getEyeLocation()));
}
}.runTaskTimer(DonationExecutor.getInstance(), finali * ticksBetweenSnowballsShots, 1);
}
@@ -500,7 +497,7 @@ public void run() {
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Проверка всех добавлений и удалений из мира, чтобы ловить и упаковывать подходящих гигантов или удалять их из списка
- private class GiantMobEventListener implements Listener{
+ private static class GiantMobEventListener implements Listener{
GiantMobManager thisInstanceOfGiantMobManager;
private GiantMobEventListener(GiantMobManager _thisInstanceOfGiantMobManager) {
@@ -527,7 +524,8 @@ public void onGiantMobDamage(EntityDamageEvent e){
if ( (e.getEntity() instanceof Giant) && ((e.getCause() == EntityDamageEvent.DamageCause.FALL) || (e.getCause() == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION) || (e.getCause() == EntityDamageEvent.DamageCause.FIRE) || (e.getCause() == EntityDamageEvent.DamageCause.FIRE_TICK))) {
e.setCancelled(true);
// sendSysMsgToPlayer(getPlayer(Executor.nameOfStreamerPlayer), "Cancelled DMG from: " + e.getCause().toString());
- } else if (e.getEntity() instanceof Giant) {
+ }
+ if (e.getEntity() instanceof Giant) {
// sendSysMsgToPlayer(getPlayer(Executor.nameOfStreamerPlayer), "Passed DMG from: " + e.getCause().toString());
}
}
@@ -572,6 +570,4 @@ public void onComeTooClose(EntityMoveEvent e){
}
}
-
-
}
diff --git a/src/main/java/igorlink/donationexecutor/executionsstaff/ListOfStreamerPlayers.java b/src/main/java/igorlink/donationexecutor/executionsstaff/ListOfStreamerPlayers.java
index f6d44aa..2e35ba5 100644
--- a/src/main/java/igorlink/donationexecutor/executionsstaff/ListOfStreamerPlayers.java
+++ b/src/main/java/igorlink/donationexecutor/executionsstaff/ListOfStreamerPlayers.java
@@ -8,29 +8,30 @@
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
public class ListOfStreamerPlayers {
- private List listOfStreamerPlayers = new ArrayList();
+ private final List listOfStreamerPlayers = new ArrayList();
//Таймер будет выполнять донаты из очередей игроков каждые 2 сек, если они живы и онлайн - выполняем донат и убираем его из очереди
public ListOfStreamerPlayers() {
new BukkitRunnable() {
@Override
public void run() {
- if (!DonationExecutor.isRunning) {
+ if (!DonationExecutor.isRunningStatus) {
this.cancel();
return;
}
for (StreamerPlayer sp : listOfStreamerPlayers) {
if ( !(Bukkit.getPlayer(sp.getName()) == null) ) {
- if (!(Bukkit.getPlayer(sp.getName()).isDead())) {
+ if (!(Objects.requireNonNull(Bukkit.getPlayer(sp.getName())).isDead())) {
Donation donation = sp.takeDonationFromQueue();
if (donation==null) {
continue;
}
- Utils.logToConsole("Отправлен на выполнение донат §b" + donation.getexecutionName() + "§f для стримера §b" + sp.getName() + "§f от донатера §b" + donation.getName());
- Executor.DoExecute(donation.getSender(), sp.getName(), donation.getName(), donation.getAmount(), donation.getMessage(), donation.getexecutionName());
+ Utils.logToConsole("Отправлен на выполнение донат §b" + donation.getExecutionName() + "§f для стримера §b" + sp.getName() + "§f от донатера §b" + donation.getUsername());
+ Executor.DoExecute(donation.getSender(), sp.getName(), donation.getUsername(), donation.getAmount(), donation.getMessage(), donation.getExecutionName());
}
}
@@ -68,9 +69,9 @@ public void addToDonationsQueue(Donation donation) {
for (StreamerPlayer sp : listOfStreamerPlayers) {
execution = sp.checkExecution(Utils.cutOffKopeykis(donation.getAmount()));
if (!(execution == null)) {
- donation.setexecutionName(execution);
+ donation.setExecutionName(execution);
sp.putDonationToQueue(donation);
- Utils.logToConsole("Донат от §b" + donation.getName() + "§f в размере §b" + donation.getAmount() + " руб.§f был обработан и отправлен в очередь на выполнение.");
+ Utils.logToConsole("Донат от §b" + donation.getUsername() + "§f в размере §b" + donation.getAmount() + " руб.§f был обработан и отправлен в очередь на выполнение.");
return;
}
}
diff --git a/src/main/java/igorlink/donationexecutor/executionsstaff/StreamerPlayer.java b/src/main/java/igorlink/donationexecutor/executionsstaff/StreamerPlayer.java
index 2d89de3..679aae6 100644
--- a/src/main/java/igorlink/donationexecutor/executionsstaff/StreamerPlayer.java
+++ b/src/main/java/igorlink/donationexecutor/executionsstaff/StreamerPlayer.java
@@ -16,10 +16,10 @@
import java.util.*;
public class StreamerPlayer {
- private String streamerPlayerName;
- private List- listOfDeathDropItems = new ArrayList
- ();
- private Queue listOfQueuedDonations = new LinkedList();
- private HashMap listOfAmounts = new HashMap();
+ private final String streamerPlayerName;
+ private final List
- listOfDeathDropItems = new ArrayList
- ();
+ private final Queue listOfQueuedDonations = new LinkedList();
+ private final HashMap listOfAmounts = new HashMap();
//Инициализация нового объекта стримера-игрока
diff --git a/src/main/java/igorlink/service/MainConfig.java b/src/main/java/igorlink/service/MainConfig.java
index cc81967..fb350cf 100644
--- a/src/main/java/igorlink/service/MainConfig.java
+++ b/src/main/java/igorlink/service/MainConfig.java
@@ -1,24 +1,27 @@
package igorlink.service;
import igorlink.donationexecutor.DonationExecutor;
+import kotlin.Suppress;
import org.bukkit.configuration.file.FileConfiguration;
import org.jetbrains.annotations.NotNull;
+
import java.util.ArrayList;
-import static igorlink.service.Utils.*;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
+
+import static igorlink.service.Utils.logToConsole;
public class MainConfig {
- private static HashMap> donationAmountsHashMap = new HashMap>();
+ private static final HashMap> donationAmountsHashMap = new HashMap<>();
private static FileConfiguration config = DonationExecutor.getInstance().getConfig();
public static int dirtAmount = 0;
public static int diamondsAmount = 0;
public static int breadAmount = 0;
public static int bigBoomRadius = 0;
public static String token;
- public static List listOfBlackListedSubstrings = new ArrayList<>();
- public static List listOfWhiteListedSubstrings = new ArrayList<>();
+ public @SuppressWarnings("unchecked") static List listOfBlackListedSubstrings = new ArrayList<>();
+ public @SuppressWarnings("unchecked") static List listOfWhiteListedSubstrings = new ArrayList<>();
private static Boolean twitchFilter;
public MainConfig() {
@@ -31,7 +34,7 @@ public static FileConfiguration getConfig(){
}
//Обновить данные из конфига
- public static void reloadMainConfig() {
+ public @Suppress(names = "UNUSED_PARAMETER") static void reloadMainConfig() {
loadMainConfig(true);
}
@@ -52,52 +55,40 @@ public static void loadMainConfig(Boolean isReload) {
config = DonationExecutor.getInstance().getConfig();
- String stringWithPlayersNames = config.getString("StreamersNamesList");
- List streamerPlayersNamesList = new ArrayList(Arrays.asList(stringWithPlayersNames.split(",")));
+ @SuppressWarnings("unchecked") List streamerPlayersNamesList = (List) getConfig().getList("StreamersNamesList");
+ assert streamerPlayersNamesList != null;
for (String playerName : streamerPlayersNamesList) {
DonationExecutor.getInstance().listOfStreamerPlayers.addStreamerPlayer(playerName);
}
logToConsole("При чтении файла конфигурации было добавлено §b" + DonationExecutor.getInstance().listOfStreamerPlayers.getNumberOfStreamers() + "§f стримеров.");
- dirtAmount = Integer.valueOf(config.getString("DirtAmount"));
- diamondsAmount = Integer.valueOf(config.getString("DiamondsAmount"));
- breadAmount = Integer.valueOf(config.getString("BreadAmount"));
- bigBoomRadius = Integer.valueOf(config.getString("BigBoomRadius"));
+ dirtAmount = Integer.parseInt(Objects.requireNonNull(config.getString("DirtAmount")));
+ diamondsAmount = Integer.parseInt(Objects.requireNonNull(config.getString("DiamondsAmount")));
+ breadAmount = Integer.parseInt(Objects.requireNonNull(config.getString("BreadAmount")));
+ bigBoomRadius = Integer.parseInt(Objects.requireNonNull(config.getString("BigBoomRadius")));
token = config.getString("DonationAlertsToken");
- listOfBlackListedSubstrings = Arrays.asList(config.getString("BlacklistedSubstrings").split(","));
- listOfWhiteListedSubstrings = Arrays.asList(config.getString("WhitelistedSubstrings").split(","));
-
- if (config.getString("TwitchFilter") == "true") {
- twitchFilter = true;
- } else if (config.getString("TwitchFilter") == "false") {
- twitchFilter = false;
- }
- else {
- logToConsole("Ошибка при чтении значение TwitchFilter");
- }
-
+ listOfBlackListedSubstrings = (List) config.getList("BlacklistedSubstrings");
+ listOfWhiteListedSubstrings = (List) config.getList("WhitelistedSubstrings");
+ twitchFilter = config.getBoolean("TwitchFilter");
+ logToConsole("Ошибка при чтении значение TwitchFilter");
}
-
-
public static void turnFilterOn() {
twitchFilter = true;
- config.set("TwitchFilter", "true");
}
public static void turnFilterOff() {
twitchFilter = false;
- config.set("TwitchFilter", "false");
}
- public static Boolean getFilterStatus() {
+ public @Suppress(names = "UNUSED") static Boolean getFilterStatus() {
return twitchFilter;
}
- public static HashMap getNameAndExecution (@NotNull String donationAmount) {
+ public @Suppress(names = "UNUSED") static HashMap getNameAndExecution (@NotNull String donationAmount) {
String thisDonateForStreamerName = null;
String nameOfExecution = null;
for (String p : donationAmountsHashMap.keySet()) {
@@ -113,6 +104,4 @@ public static HashMap getNameAndExecution (@NotNull String donat
return null;
}
-
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/igorlink/service/Utils.java b/src/main/java/igorlink/service/Utils.java
index debc62b..5766d65 100644
--- a/src/main/java/igorlink/service/Utils.java
+++ b/src/main/java/igorlink/service/Utils.java
@@ -1,28 +1,44 @@
package igorlink.service;
import com.destroystokyo.paper.Title;
+import org.dark0ghost.annotations.ExperimentalApi;
import igorlink.donationexecutor.DonationExecutor;
+import kotlin.Suppress;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
+import org.jetbrains.annotations.NotNull;
+
import java.math.BigInteger;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Utils {
+
+ @ExperimentalApi(message = "use in isBlackListed")
+ private static @NotNull String validateText(@NotNull String validationText) {
+ for (String ss : MainConfig.listOfWhiteListedSubstrings) {
+ if (validationText.contains(ss)) {
+ validationText = validationText.replace(ss, "");
+ }
+ }
+ return validationText;
+ }
+
public static Boolean isPluginActive;
//Вывод сообщения в консоль
- public static void logToConsole(String text){
+ public static void logToConsole(String text) {
Bukkit.getConsoleSender().sendMessage("§c[DonationExecutor] §f" + text);
}
//Отправка сообщения игроку со стороны плагина
- public static void sendSysMsgToPlayer(Player player, String text){
+ public static void sendSysMsgToPlayer(Player player, String text) {
player.sendMessage("§c[DE] §f" + text);
}
@@ -30,7 +46,7 @@ public static byte[] decodeUsingBigInteger(String hexString) {
byte[] byteArray = new BigInteger(hexString, 16).toByteArray();
if (byteArray[0] == 0) {
byte[] output = new byte[byteArray.length - 1];
- System.arraycopy(byteArray, 1, output,0, output.length);
+ System.arraycopy(byteArray, 1, output, 0, output.length);
return output;
}
return byteArray;
@@ -38,10 +54,10 @@ public static byte[] decodeUsingBigInteger(String hexString) {
public static Boolean CheckNameAndToken() {
isPluginActive = true;
- if ((DonationExecutor.getInstance().getConfig().getString("DonationAlertsToken") == "") || (DonationExecutor.getInstance().getConfig().getString("DonationAlertsToken") == null)) {
+ if ((Objects.equals(DonationExecutor.getInstance().getConfig().getString("DonationAlertsToken"), "")) || (DonationExecutor.getInstance().getConfig().getString("DonationAlertsToken") == null)) {
logToConsole("Вы не указали свой токен DonationAlerts в файле конфигурации плагина, поэтому сейчас плагин не работает.");
isPluginActive = false;
- } else if ((DonationExecutor.getInstance().getConfig().getString("Nickname") == "") || (DonationExecutor.getInstance().getConfig().getString("Nickname") == "")) {
+ } else if ((Objects.equals(DonationExecutor.getInstance().getConfig().getString("Nickname"), "")) || (Objects.equals(DonationExecutor.getInstance().getConfig().getString("Nickname"), ""))) {
logToConsole("Вы не указали свой игровой никнейм в файле конфигурации плагина, поэтому сейчас плагин не работает.");
isPluginActive = false;
}
@@ -51,7 +67,7 @@ public static Boolean CheckNameAndToken() {
public static void announce(String donaterName, String subText, String alterSubtext, Player player, Boolean bigAnnounce) {
String _donaterName = donaterName;
- if (bigAnnounce) {
+ if (bigAnnounce) {
if (donaterName.equals("")) {
_donaterName = "Кто-то";
}
@@ -60,11 +76,11 @@ public static void announce(String donaterName, String subText, String alterSubt
player.sendMessage("§c[DE] §fДонатер §c" + _donaterName, "§f" + subText);
}
- if (_donaterName == "") {
+ if (Objects.equals(_donaterName, "")) {
_donaterName = "Кто-то";
}
for (Player p : Bukkit.getOnlinePlayers()) {
- if (!(p.getName() == player.getName())) {
+ if (!(p.getName().equals(player.getName()))) {
p.sendMessage("§c[DE] §fДонатер §c" + _donaterName + " §f" + alterSubtext + " §b" + player.getName());
}
}
@@ -83,29 +99,28 @@ public static Vector genVec(Location a, Location b, Boolean isNormalized) {
public static Vector genVec(Location a, Location b) {
Vector vec = locToVec(b).clone().subtract(locToVec(a));
- return vec.normalize();
+ return vec.normalize();
}
public static Vector locToVec(Location loc) {
- Vector vec = new Vector(loc.getX(), loc.getY(), loc.getZ());
- return vec;
+ return new Vector(loc.getX(), loc.getY(), loc.getZ());
}
public static String cutOffKopeykis(String donationAmountWithKopeykis) {
- String amountWithoutKopeykis = "";
+ StringBuilder amountWithoutKopeykis = new StringBuilder();
for (int i = 0; i <= donationAmountWithKopeykis.length() - 1; i++) {
if (donationAmountWithKopeykis.charAt(i) == '.') {
break;
- } else if (donationAmountWithKopeykis.charAt(i) == ' ') {
+ }
+ if (donationAmountWithKopeykis.charAt(i) == ' ') {
continue;
- } else {
- amountWithoutKopeykis = amountWithoutKopeykis + donationAmountWithKopeykis.charAt(i);
}
+ amountWithoutKopeykis.append(donationAmountWithKopeykis.charAt(i));
}
-
- return amountWithoutKopeykis;
+ return amountWithoutKopeykis.toString();
}
+ @Suppress(names = "UNUSED_PARAMETER")
public static Boolean isBlackListed(String text) {
HashMap> mapOfSynonimousChars = new HashMap>();
@@ -122,8 +137,8 @@ public static Boolean isBlackListed(String text) {
mapOfSynonimousChars.put('п', (Arrays.asList('p', 'n', 'и', 'р'))); //rus
mapOfSynonimousChars.put('o', (Arrays.asList('о', '0'))); //eng
mapOfSynonimousChars.put('о', (Arrays.asList('o', '0'))); //rus
- mapOfSynonimousChars.put('a', (Arrays.asList('а'))); //eng
- mapOfSynonimousChars.put('а', (Arrays.asList('a'))); //rus
+ mapOfSynonimousChars.put('a', (List.of('а'))); //eng
+ mapOfSynonimousChars.put('а', (List.of('a'))); //rus
mapOfSynonimousChars.put('и', (Arrays.asList('i', 'n', 'e', 'е', '|', 'l', '!', '1', '3', 'й'))); //rus
mapOfSynonimousChars.put('i', (Arrays.asList('1', 'и', 'e', 'е', '|', 'l', '!', 'й'))); //eng
mapOfSynonimousChars.put('с', (Arrays.asList('c', 's', '$', '5'))); //rus
@@ -140,13 +155,13 @@ public static Boolean isBlackListed(String text) {
mapOfSynonimousChars.put('х', (Arrays.asList('x', 'h'))); //rus
mapOfSynonimousChars.put('ы', (Arrays.asList('у', 'u', 'y'))); //rus
mapOfSynonimousChars.put('ы', (Arrays.asList('у', 'u', 'y'))); //rus
- mapOfSynonimousChars.put('ч', (Arrays.asList('4')));//rus
- mapOfSynonimousChars.put('k', (Arrays.asList('к')));//eng
- mapOfSynonimousChars.put('к', (Arrays.asList('k')));//rus
+ mapOfSynonimousChars.put('ч', (List.of('4')));//rus
+ mapOfSynonimousChars.put('k', (List.of('к')));//eng
+ mapOfSynonimousChars.put('к', (List.of('k')));//rus
mapOfSynonimousChars.put('0', (Arrays.asList('o', 'о'))); //num
mapOfSynonimousChars.put('1', (Arrays.asList('i', 'l'))); //num
- mapOfSynonimousChars.put('3', (Arrays.asList('e', 'е','з')));
- mapOfSynonimousChars.put('4', (Arrays.asList('ч')));
+ mapOfSynonimousChars.put('3', (Arrays.asList('e', 'е', 'з')));
+ mapOfSynonimousChars.put('4', (List.of('ч')));
mapOfSynonimousChars.put('5', (Arrays.asList('с', 'c', 's')));
mapOfSynonimousChars.put('9', (Arrays.asList('r', 'я')));
@@ -155,8 +170,8 @@ public static Boolean isBlackListed(String text) {
Pattern pattern = Pattern.compile("[l1i]*[\\-]*[l1i]*");
Matcher matcher = pattern.matcher(validationText);
- if ( (matcher.find()) && (matcher.group().length()>0) ) {
- validationText = validationText.replace(matcher.group(), "н");
+ if ((matcher.find()) && (matcher.group().length() > 0)) {
+ validationText = validationText.replace(matcher.group(), "н");
}
validationText = validationText.replace(" ", "");
@@ -171,13 +186,6 @@ public static Boolean isBlackListed(String text) {
return false;
}
-// for (String ss : MainConfig.listOfWhiteListedSubstrings) {
-// if (validationText.contains(ss)) {
-// validationText = validationText.replace(ss, "");
-// }
-// }
-
-
if (!(validationText.matches("[a-zа-я0-9$!ё]*"))) {
return true;
}
@@ -200,10 +208,10 @@ public static Boolean isBlackListed(String text) {
}
}
- Boolean repeated = true;
- Boolean finishCycle = false;
+ boolean repeated = true;
+ boolean finishCycle = false;
while ((repeated) && (!finishCycle)) {
- if (j==0) {
+ if (j == 0) {
break;
}
if (!(validationText.charAt(tempi + j) == validationText.charAt(tempi + j - 1))) {
@@ -216,8 +224,8 @@ public static Boolean isBlackListed(String text) {
}
}
tempi++;
- if ((validationText.length()-tempi-j) < (ss.length()-j)) {
- finishCycle=true;
+ if ((validationText.length() - tempi - j) < (ss.length() - j)) {
+ finishCycle = true;
break;
}
}
@@ -233,16 +241,11 @@ public static Boolean isBlackListed(String text) {
continue;
}
}
-
break;
-
}
}
}
-
return false;
}
-
-
}
diff --git a/src/main/kotlin/org/dark0ghost/annotations/ExperimentalApi.kt b/src/main/kotlin/org/dark0ghost/annotations/ExperimentalApi.kt
new file mode 100644
index 0000000..a1c63fb
--- /dev/null
+++ b/src/main/kotlin/org/dark0ghost/annotations/ExperimentalApi.kt
@@ -0,0 +1,6 @@
+package org.dark0ghost.annotations
+
+@RequiresOptIn(message = "This API is experimental. It may be changed in the future without notice.")
+@Retention(AnnotationRetention.BINARY)
+@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
+annotation class ExperimentalApi(val message: String)
diff --git a/src/main/kotlin/org/dark0ghost/annotations/MagicConst.kt b/src/main/kotlin/org/dark0ghost/annotations/MagicConst.kt
new file mode 100644
index 0000000..86a1798
--- /dev/null
+++ b/src/main/kotlin/org/dark0ghost/annotations/MagicConst.kt
@@ -0,0 +1,4 @@
+package org.dark0ghost.annotations
+
+@Target(AnnotationTarget.FIELD)
+annotation class MagicConst
diff --git a/src/main/kotlin/org/dark0ghost/configs/Text.kt b/src/main/kotlin/org/dark0ghost/configs/Text.kt
new file mode 100644
index 0000000..dbda1a0
--- /dev/null
+++ b/src/main/kotlin/org/dark0ghost/configs/Text.kt
@@ -0,0 +1,57 @@
+package org.dark0ghost.configs
+
+object Text {
+ object RU {
+ object ExecutorText {
+ const val SPECIAL_END_TEXT: String = "...."
+
+ const val UNIDENTIFIED_USER_NAME: String = "Кто-то"
+
+ const val SHIT_INVENTORY_EVENT_TEXT: String = "насрал тебе в инвентарь"
+ const val SHIT_INVENTORY_LORE: String = "§7Это говно ужасно вонюче и занимает много места"
+
+ const val FAIL_DROP_EVENT_TEXT: String = "безуспешно пытался выбить у тебя предмет из рук"
+ const val SUCCESS_DROP_EVENT_TEXT: String = "выбил у тебя предмет из рук"
+
+ const val LESH_EVENT_TEXT: String = "дал тебе леща"
+
+ const val KICK_EVENT_TEXT: String = "дал тебе смачного пинка под зад"
+
+ const val SUCCESS_CLEAR_DROP_EVENT_TEXT: String = "уничтожил твой посмертный дроп"
+ const val FAIL_CLEAR_DROP_EVENT_TEXT: String = "безуспешно пытался уничтожить твой посмертный дроп"
+
+ const val SPAWN_CREEPER_EVENT_TEXT: String = "прислал тебе в подарок крипера"
+
+ const val GIVE_DIAMOND_EVENT_TEXT: String = "насыпал тебе алмазов!"
+
+ const val BREAD_EVENT_SUBTEXT: String = "дал тебе хлеба!"
+ const val BREAD_EVENT_ALERT_TEXT: String = "дал хлеба"
+
+ const val NKVD_EVENT_TEXT: String = "хочет отправить тебя в ГУЛАГ!"
+
+ const val STALING_EVENT_TEXT: String = "призвал Сталина разобраться с"
+
+ const val RANDOM_EVENT_TEXT: String = "подменил тебе кое-что на камни..."
+
+ const val HALF_HEART_EVENT_TEXT: String = "оставил тебе лишь полсердечка"
+
+ const val ENEMIES_EVENT_TEXT: String = "настроил твоих питомцев против тебя!"
+
+ const val BOOM_EVENT_TEXT: String = "сейчас тебя РАЗНЕСЕТ В КЛОЧЬЯ!!!"
+
+ }
+
+ object FilterSubCommandText {
+ const val FILTER_ON_TEXT: String = "Фильтр никнеймов донатеров §bВКЛЮЧЕН"
+ const val FILTER_OFF_TEXT: String = "Фильтр никнеймов донатеров §bВЫКЛЮЧЕН"
+ }
+
+ object ReloadSubCommandText {
+ const val UPDATE_SETTINGS_TEXT: String = "Настройки успешно обновлены!"
+ }
+
+ object DonationText {
+ const val DEFAULT_NAME: String = "Аноним"
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/test/kotlin/TestGetterDonation.kt b/src/test/kotlin/TestGetterDonation.kt
new file mode 100644
index 0000000..61adcd3
--- /dev/null
+++ b/src/test/kotlin/TestGetterDonation.kt
@@ -0,0 +1,116 @@
+import igorlink.donationexecutor.executionsstaff.Donation
+import net.kyori.adventure.text.Component
+import org.bukkit.Server
+import org.bukkit.command.CommandSender
+import org.bukkit.permissions.Permission
+import org.bukkit.permissions.PermissionAttachment
+import org.bukkit.permissions.PermissionAttachmentInfo
+import org.bukkit.plugin.Plugin
+import org.junit.jupiter.api.Test
+import java.util.*
+
+
+
+internal class TestGetterDonation {
+ private val donation: Donation = Donation(testSender,"IgorLink", 100.toString(), "test Getter")
+
+ @Test
+ fun testGetterDonation() {
+ assert(donation.message == "test Getter")
+ assert(donation.amount == "100")
+ assert(donation.message == "test Getter")
+ assert(donation.executionName == null)
+ }
+
+ @Test
+ fun testSetterExecutionName() {
+ donation.executionName = "testString"
+ assert(donation.executionName == "testString")
+ }
+}
+
+private val testSender: CommandSender = object: CommandSender{
+ override fun spigot(): CommandSender.Spigot {
+ TODO("Not yet implemented")
+ }
+
+ override fun name(): Component {
+ TODO("Not yet implemented")
+ }
+
+ override fun sendMessage(message: String) {
+ TODO("Not yet implemented")
+ }
+
+ override fun sendMessage(vararg messages: String) {
+ TODO("Not yet implemented")
+ }
+
+ override fun sendMessage(sender: UUID?, message: String) {
+ TODO("Not yet implemented")
+ }
+
+ override fun sendMessage(sender: UUID?, vararg messages: String) {
+ TODO("Not yet implemented")
+ }
+
+ override fun isOp(): Boolean {
+ TODO("Not yet implemented")
+ }
+
+ override fun setOp(value: Boolean) {
+ TODO("Not yet implemented")
+ }
+
+ override fun isPermissionSet(name: String): Boolean {
+ TODO("Not yet implemented")
+ }
+
+ override fun isPermissionSet(perm: Permission): Boolean {
+ TODO("Not yet implemented")
+ }
+
+ override fun hasPermission(name: String): Boolean {
+ TODO("Not yet implemented")
+ }
+
+ override fun hasPermission(perm: Permission): Boolean {
+ TODO("Not yet implemented")
+ }
+
+ override fun addAttachment(plugin: Plugin, name: String, value: Boolean): PermissionAttachment {
+ TODO("Not yet implemented")
+ }
+
+ override fun addAttachment(plugin: Plugin): PermissionAttachment {
+ TODO("Not yet implemented")
+ }
+
+ override fun addAttachment(plugin: Plugin, name: String, value: Boolean, ticks: Int): PermissionAttachment? {
+ TODO("Not yet implemented")
+ }
+
+ override fun addAttachment(plugin: Plugin, ticks: Int): PermissionAttachment? {
+ TODO("Not yet implemented")
+ }
+
+ override fun removeAttachment(attachment: PermissionAttachment) {
+ TODO("Not yet implemented")
+ }
+
+ override fun recalculatePermissions() {
+ TODO("Not yet implemented")
+ }
+
+ override fun getEffectivePermissions(): MutableSet {
+ TODO("Not yet implemented")
+ }
+
+ override fun getServer(): Server {
+ TODO("Not yet implemented")
+ }
+
+ override fun getName(): String {
+ TODO("Not yet implemented")
+ }
+}