Going to rewrite the action builder
This commit is contained in:
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@@ -5,6 +5,7 @@
|
|||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
|
<option name="gradleJvm" value="19" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
|
|||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -9,5 +9,5 @@
|
|||||||
</list>
|
</list>
|
||||||
</component>
|
</component>
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK" />
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="temurin-17" project-jdk-type="JavaSDK" />
|
||||||
</project>
|
</project>
|
||||||
1
.idea/modules/Sentinel.main.iml
generated
1
.idea/modules/Sentinel.main.iml
generated
@@ -7,6 +7,7 @@
|
|||||||
<platformType>PAPER</platformType>
|
<platformType>PAPER</platformType>
|
||||||
<platformType>ADVENTURE</platformType>
|
<platformType>ADVENTURE</platformType>
|
||||||
</autoDetectTypes>
|
</autoDetectTypes>
|
||||||
|
<projectReimportVersion>1</projectReimportVersion>
|
||||||
</configuration>
|
</configuration>
|
||||||
</facet>
|
</facet>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
@@ -1,39 +1,40 @@
|
|||||||
{
|
{
|
||||||
"Settings": {
|
"Settings": {
|
||||||
"Input": "/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libs/Sentinel-0.2.5.jar",
|
"Input": "C:/Users/chase/Documents/Sentinel/build/libs/Sentinel-0.2.5.jar",
|
||||||
"Output": "/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/obf/out/Sentinel-0.2.5-beta.jar",
|
"Output": "C:\\Users\\chase\\Documents\\Sentinel\\build\\libs\\Sentinel-0.2.5-beta-reobf.jar",
|
||||||
"Libraries": [
|
"Libraries": [
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/gson-2.10.1.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/gson-2.10.1.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-api-4.15.0.jar",
|
"C:\\Users\\chase\\Documents\\Sentinel\\build\\libraries\\ProtocolLib-5.1.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-key-4.15.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventure-api-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-text-logger-slf4j-4.15.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventu re-key-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-text-minimessage-4.15.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventure-text-logger-slf4j-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-text-serializer-gson-4.15.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventure-text-minimessage-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-text-serializer-json-4.15.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventure-text-serializer-gson-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-text-serializer-legacy-4.15.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventure-text-serializer-json-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/adventure-text-serializer-plain-4.15.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventure-text-serializer-legacy-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/annotations-24.1.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/adventure-text-serializer-plain-4.15.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/bungeecord-chat-1.20-R0.1.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/annotations-24.1.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/checker-qual-3.33.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/bungeecord-chat-1.20-R0.1.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/error_prone_annotations-2.18.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/checker-qual-3.33.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/examination-api-1.3.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/error_prone_annotations-2.18.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/examination-string-1.3.0.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/examination-api-1.3.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/failureaccess-1.0.1.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/examination-string-1.3.0.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/fastutil-8.5.6.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/failureaccess-1.0.1.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/gson-2.10.1.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/fastutil-8.5.6.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/guava-32.1.2-jre.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/gson-2.10.1.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/j2objc-annotations-2.8.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/guava-32.1.2-jre.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/javax.inject-1.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/j2objc-annotations-2.8.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/joml-1.10.5.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/javax.inject-1.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/json-simple-1.1.1.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/joml-1.10.5.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/jsr305-3.0.2.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/json-simple-1.1.1.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/jsr305-3.0.2.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/org.eclipse.sisu.inject-0.9.0.M2.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/PDK-1.3.4.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/org.eclipse.sisu.inject-0.9.0.M2.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/plexus-interpolation-1.26.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/PDK-1.3.4.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/plexus-utils-3.5.1.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/plexus-interpolation-1.26.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/snakeyaml-2.2.jar",
|
"C:/Users/chase/Documents/Sentinel/build/libraries/plexus-utils-3.5.1.jar",
|
||||||
"/run/media/trouper/1TB drive/IJ/IdeaProjects/Sentinel/build/libraries/spigot-api-1.20.2-R0.1-SNAPSHOT.jar"
|
"C:/Users/chase/Documents/Sentinel/build/libraries/snakeyaml-2.2.jar",
|
||||||
|
"C:/Users/chase/Documents/Sentinel/build/libraries/spigot-api-1.20.2-R0.1-SNAPSHOT.jar"
|
||||||
],
|
],
|
||||||
"Exclusions": [
|
"Exclusions": [
|
||||||
"com/google/gson/",
|
"com/google/gson/",
|
||||||
@@ -41,10 +42,10 @@
|
|||||||
],
|
],
|
||||||
"GenerateRemap": true,
|
"GenerateRemap": true,
|
||||||
"RemapOutput": "mappings.json",
|
"RemapOutput": "mappings.json",
|
||||||
"ParallelProcessing": false,
|
"ParallelProcessing": true,
|
||||||
"CustomDictionary": [],
|
"CustomDictionary": [],
|
||||||
"DictionaryStartIndex": 0,
|
"DictionaryStartIndex": 0,
|
||||||
"CorruptOutput": true,
|
"CorruptOutput": false,
|
||||||
"FileRemovePrefix": [],
|
"FileRemovePrefix": [],
|
||||||
"FileRemoveSuffix": []
|
"FileRemoveSuffix": []
|
||||||
},
|
},
|
||||||
@@ -54,11 +55,12 @@
|
|||||||
"LineDebug": true,
|
"LineDebug": true,
|
||||||
"RenameSourceDebug": true,
|
"RenameSourceDebug": true,
|
||||||
"SourceNames": [
|
"SourceNames": [
|
||||||
"protected-by-sentinel.java"
|
"protected-by-redactor.java",
|
||||||
|
"COPYRIGHT_SENTINEL_ANTINUKE_2024"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Shrinking": {
|
"Shrinking": {
|
||||||
"Enabled": false,
|
"Enabled": true,
|
||||||
"RemoveInnerClass": true,
|
"RemoveInnerClass": true,
|
||||||
"RemoveUnusedLabel": true,
|
"RemoveUnusedLabel": true,
|
||||||
"RemoveNOP": false,
|
"RemoveNOP": false,
|
||||||
@@ -117,16 +119,16 @@
|
|||||||
"Exclusions": []
|
"Exclusions": []
|
||||||
},
|
},
|
||||||
"LocalVariableRename": {
|
"LocalVariableRename": {
|
||||||
"Enabled": false,
|
"Enabled": true,
|
||||||
"Dictionary": "Alphabet",
|
"Dictionary": "Alphabet",
|
||||||
"ThisReference": false
|
"ThisReference": false
|
||||||
},
|
},
|
||||||
"MethodRename": {
|
"MethodRename": {
|
||||||
"Enabled": true,
|
"Enabled": true,
|
||||||
"Dictionary": "Alphabet",
|
"Dictionary": "Alphabet",
|
||||||
"HeavyOverloads": false,
|
"HeavyOverloads": true,
|
||||||
"RandomKeywordPrefix": false,
|
"RandomKeywordPrefix": true,
|
||||||
"Prefix": "",
|
"Prefix": "INEL_",
|
||||||
"Exclusion": [
|
"Exclusion": [
|
||||||
"io/github/thetrouper/sentinel/data/config/",
|
"io/github/thetrouper/sentinel/data/config/",
|
||||||
"io/github/thetrouper/sentinel/data/cmdblocks/"
|
"io/github/thetrouper/sentinel/data/cmdblocks/"
|
||||||
@@ -136,8 +138,8 @@
|
|||||||
"FieldRename": {
|
"FieldRename": {
|
||||||
"Enabled": true,
|
"Enabled": true,
|
||||||
"Dictionary": "Alphabet",
|
"Dictionary": "Alphabet",
|
||||||
"RandomKeywordPrefix": false,
|
"RandomKeywordPrefix": true,
|
||||||
"Prefix": "",
|
"Prefix": "SENT_",
|
||||||
"Exclusion": [
|
"Exclusion": [
|
||||||
"io/github/thetrouper/sentinel/data/config/",
|
"io/github/thetrouper/sentinel/data/config/",
|
||||||
"io/github/thetrouper/sentinel/data/cmdblocks/"
|
"io/github/thetrouper/sentinel/data/cmdblocks/"
|
||||||
@@ -148,7 +150,7 @@
|
|||||||
"Enabled": true,
|
"Enabled": true,
|
||||||
"Dictionary": "Alphabet",
|
"Dictionary": "Alphabet",
|
||||||
"Parent": "sentinel/",
|
"Parent": "sentinel/",
|
||||||
"Prefix": "",
|
"Prefix": "SENTINEL_",
|
||||||
"CorruptedName": false,
|
"CorruptedName": false,
|
||||||
"CorruptedNameExclusions": [],
|
"CorruptedNameExclusions": [],
|
||||||
"ManifestReplace": [
|
"ManifestReplace": [
|
||||||
@@ -169,7 +171,7 @@
|
|||||||
"RefmapFile": "mixins.example.refmap.json"
|
"RefmapFile": "mixins.example.refmap.json"
|
||||||
},
|
},
|
||||||
"ShuffleMembers": {
|
"ShuffleMembers": {
|
||||||
"Enabled": false,
|
"Enabled": true,
|
||||||
"Methods": true,
|
"Methods": true,
|
||||||
"Fields": true,
|
"Fields": true,
|
||||||
"Annotations": false
|
"Annotations": false
|
||||||
|
|||||||
1939
obf/mappings.json
Normal file
1939
obf/mappings.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -4,13 +4,11 @@ import com.comphenix.protocol.ProtocolLibrary;
|
|||||||
import com.comphenix.protocol.ProtocolManager;
|
import com.comphenix.protocol.ProtocolManager;
|
||||||
import io.github.itzispyder.pdk.PDK;
|
import io.github.itzispyder.pdk.PDK;
|
||||||
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
||||||
import io.github.thetrouper.sentinel.auth.Auth;
|
|
||||||
import io.github.thetrouper.sentinel.cmds.*;
|
|
||||||
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistStorage;
|
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistStorage;
|
||||||
import io.github.thetrouper.sentinel.data.config.*;
|
import io.github.thetrouper.sentinel.data.config.*;
|
||||||
import io.github.thetrouper.sentinel.events.*;
|
import io.github.thetrouper.sentinel.server.functions.Authenticator;
|
||||||
import io.github.thetrouper.sentinel.server.functions.*;
|
import io.github.thetrouper.sentinel.server.functions.Load;
|
||||||
import io.github.thetrouper.sentinel.server.util.ServerUtils;
|
import io.github.thetrouper.sentinel.server.functions.Telemetry;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
@@ -48,6 +46,8 @@ public final class Sentinel extends JavaPlugin {
|
|||||||
public static String IP;
|
public static String IP;
|
||||||
public static boolean doNoPlugins = false;
|
public static boolean doNoPlugins = false;
|
||||||
|
|
||||||
|
Load load = new Load();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plugin startup logic
|
* Plugin startup logic
|
||||||
*/
|
*/
|
||||||
@@ -80,100 +80,8 @@ public final class Sentinel extends JavaPlugin {
|
|||||||
license = mainConfig.plugin.license;
|
license = mainConfig.plugin.license;
|
||||||
|
|
||||||
log.info("Pre-load finished!\n]====---- Requesting Authentication ----====[ \n- License Key: %s\n- Server ID: %s".formatted(license,serverID));
|
log.info("Pre-load finished!\n]====---- Requesting Authentication ----====[ \n- License Key: %s\n- Server ID: %s".formatted(license,serverID));
|
||||||
String authStatus = "ERROR";
|
|
||||||
String authstatus = "ERROR";
|
|
||||||
try {
|
|
||||||
authStatus = Authenticator.authorize(license, serverID);
|
|
||||||
authstatus = Auth.authorize(license, serverID);
|
|
||||||
IP = Authenticator.getPublicIPAddress();
|
|
||||||
log.info("Auth Requested...");
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
log.info("WTFFFF ARE YOU DOING MAN??????");
|
|
||||||
manager.disablePlugin(this);
|
|
||||||
}
|
|
||||||
authStatus = "AUTHORIZED";
|
|
||||||
switch (authStatus) {
|
|
||||||
case "AUTHORIZED" -> {
|
|
||||||
log.info("\n]======----- Auth Success! -----======[");
|
|
||||||
startup();
|
|
||||||
}
|
|
||||||
case "MINEHUT" -> {
|
|
||||||
usesDynamicIP = true;
|
|
||||||
Telemetry.initTelemetryHook();
|
|
||||||
boolean minehutStatus = Telemetry.sendStartupLog();
|
|
||||||
if (minehutStatus) {
|
|
||||||
authstatus = authstatus.replaceAll("ur a skid lmao", "get out of here kiddo");
|
|
||||||
ServerUtils.sendDebugMessage(authstatus);
|
|
||||||
log.info("Dynamic IP auth Success! ");
|
|
||||||
startup();
|
|
||||||
} else {
|
|
||||||
log.info("Dynamic IP Failure. Webhook Error possible? Please contact obvWolf to fix this.");
|
|
||||||
manager.disablePlugin(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case "INVALID-ID" -> {
|
|
||||||
log.info("Authentication Failure, You have not whitelisted this server ID yet.");
|
|
||||||
manager.disablePlugin(this);
|
|
||||||
}
|
|
||||||
case "UNREGISTERED" -> {
|
|
||||||
log.warning("Authentication Failure, YOU SHALL NOT PASS! License: %s Server ID: %s".formatted(license,serverID));
|
|
||||||
manager.disablePlugin(this);
|
|
||||||
}
|
|
||||||
case "ERROR" -> {
|
|
||||||
log.warning("Hmmmmmm thats not right... License: %s Server ID: %s\nPlease report the above stacktrace.".formatted(license,serverID));
|
|
||||||
manager.disablePlugin(this);
|
|
||||||
}
|
|
||||||
default -> {
|
|
||||||
log.warning("Achievement unlocked: How did we get here? License: %s Server ID: %s\nPlease report the above stacktrace.".formatted(license,serverID));
|
|
||||||
manager.disablePlugin(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void startup() {
|
load.load(license,serverID);
|
||||||
log.info("\n]======----- Loading Sentinel! -----======[");
|
|
||||||
|
|
||||||
// Plugin startup logic
|
|
||||||
log.info("Starting Up! (%s)...".formatted(getDescription().getVersion()));
|
|
||||||
|
|
||||||
// Commands
|
|
||||||
new SentinelCommand().register();
|
|
||||||
new MessageCommand().register();
|
|
||||||
new ReplyCommand().register();
|
|
||||||
new ReopCommand().register();
|
|
||||||
new SocialSpyCommand().register();
|
|
||||||
new ChatClickCallback().register();
|
|
||||||
|
|
||||||
// Events
|
|
||||||
new ChatEvent().register();
|
|
||||||
new CommandEvent().register();
|
|
||||||
new CMDBlockExecute().register();
|
|
||||||
new CMDBlockPlace().register();
|
|
||||||
new CMDBlockUse().register();
|
|
||||||
new CMDMinecartPlace().register();
|
|
||||||
new CMDMinecartUse().register();
|
|
||||||
new NBTEvents().register();
|
|
||||||
new MiscEvents().register();
|
|
||||||
if (doNoPlugins) {
|
|
||||||
new TrapCommand().register();
|
|
||||||
new PluginHiderEvents().register();
|
|
||||||
TabCompleteEvent.registerEvent(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scheduled timers
|
|
||||||
Bukkit.getScheduler().runTaskTimer(this, AntiSpam::decayHeat,0, 20);
|
|
||||||
Bukkit.getScheduler().runTaskTimer(this, ProfanityFilter::decayScore,0,1200);
|
|
||||||
log.info("""
|
|
||||||
Finished!
|
|
||||||
____ __ ___ \s
|
|
||||||
/\\ _`\\ /\\ \\__ __ /\\_ \\ \s
|
|
||||||
\\ \\,\\L\\_\\ __ ___\\ \\ ,_\\/\\_\\ ___ __\\//\\ \\ \s
|
|
||||||
\\/_\\__ \\ /'__`\\/' _ `\\ \\ \\/\\/\\ \\ /' _ `\\ /'__`\\\\ \\ \\ \s
|
|
||||||
/\\ \\L\\ \\/\\ __//\\ \\/\\ \\ \\ \\_\\ \\ \\/\\ \\/\\ \\/\\ __/ \\_\\ \\_\s
|
|
||||||
\\ `\\____\\ \\____\\ \\_\\ \\_\\ \\__\\\\ \\_\\ \\_\\ \\_\\ \\____\\/\\____\\
|
|
||||||
\\/_____/\\/____/\\/_/\\/_/\\/__/ \\/_/\\/_/\\/_/\\/____/\\/____/
|
|
||||||
]====---- Advanced Anti-Grief & Chat Filter ----====[""");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadConfig() {
|
public void loadConfig() {
|
||||||
@@ -217,11 +125,6 @@ public final class Sentinel extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if a player is trusted.
|
|
||||||
* @param player the player to check
|
|
||||||
* @return true if the player is trusted, false otherwise
|
|
||||||
*/
|
|
||||||
public static boolean isTrusted(Player player) {
|
public static boolean isTrusted(Player player) {
|
||||||
return Sentinel.mainConfig.plugin.trustedPlayers.contains(player.getUniqueId().toString());
|
return Sentinel.mainConfig.plugin.trustedPlayers.contains(player.getUniqueId().toString());
|
||||||
}
|
}
|
||||||
@@ -230,39 +133,6 @@ public final class Sentinel extends JavaPlugin {
|
|||||||
return Sentinel.mainConfig.plugin.trustedPlayers.contains(uuid);
|
return Sentinel.mainConfig.plugin.trustedPlayers.contains(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if a command is a logged command.
|
|
||||||
* @param command the command to check
|
|
||||||
* @return true if the command is logged, false otherwise
|
|
||||||
*/
|
|
||||||
public static boolean isLoggedCommand(String command) {
|
|
||||||
if (command.startsWith("/")) {
|
|
||||||
command = command.substring(1);
|
|
||||||
}
|
|
||||||
for (String logged : Sentinel.mainConfig.plugin.logged) {
|
|
||||||
if (command.contains(logged)) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if a command is dangerous.
|
|
||||||
* @param command the command to check
|
|
||||||
* @return true if the command is dangerous, false otherwise
|
|
||||||
*/
|
|
||||||
public static boolean isDangerousCommand(String command) {
|
|
||||||
if (command.startsWith("/")) {
|
|
||||||
command = command.substring(1);
|
|
||||||
}
|
|
||||||
for (String blocked : Sentinel.mainConfig.plugin.dangerous) {
|
|
||||||
if (command.startsWith(blocked)) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Returns an instance of this plugin
|
|
||||||
* @return an instance of this plugin
|
|
||||||
*/
|
|
||||||
public static Sentinel getInstance() {
|
public static Sentinel getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,9 +39,7 @@ public class SentinelCommand implements CustomCommand {
|
|||||||
SystemCheck.fullCheck(p);
|
SystemCheck.fullCheck(p);
|
||||||
}
|
}
|
||||||
case "debug" -> handleDebugCommand(p,args);
|
case "debug" -> handleDebugCommand(p,args);
|
||||||
case "false-positive" -> {
|
case "false-positive" -> handleFalsePositive(p,args);
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void handleFalsePositive(Player p, Args args) {
|
private void handleFalsePositive(Player p, Args args) {
|
||||||
|
|||||||
@@ -4,13 +4,9 @@ import io.github.itzispyder.pdk.commands.Args;
|
|||||||
import io.github.itzispyder.pdk.commands.CommandRegistry;
|
import io.github.itzispyder.pdk.commands.CommandRegistry;
|
||||||
import io.github.itzispyder.pdk.commands.CustomCommand;
|
import io.github.itzispyder.pdk.commands.CustomCommand;
|
||||||
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
|
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
|
||||||
import io.github.itzispyder.pdk.utils.ArrayUtils;
|
|
||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
import io.github.thetrouper.sentinel.data.config.AdvancedConfig;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@CommandRegistry(value = "sentineltab")
|
@CommandRegistry(value = "sentineltab")
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ package io.github.thetrouper.sentinel.data;
|
|||||||
|
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public record Report(long id, AsyncPlayerChatEvent event, LinkedHashMap<String,String> stepsTaken) {
|
public record Report(long id, AsyncPlayerChatEvent event, LinkedHashMap<String,String> stepsTaken) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
package io.github.thetrouper.sentinel.data.cmdblocks;
|
package io.github.thetrouper.sentinel.data.cmdblocks;
|
||||||
|
|
||||||
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class WhitelistStorage implements JsonSerializable<WhitelistStorage> {
|
public class WhitelistStorage implements JsonSerializable<WhitelistStorage> {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package io.github.thetrouper.sentinel.data.cmdblocks;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public record WhitelistedBlock(String owner, Location loc, String type, boolean active, String command) {
|
public record WhitelistedBlock(String owner, Location loc, String type, boolean active, String command) {
|
||||||
|
|
||||||
public static org.bukkit.Location fromSerialized(Location loc) {
|
public static org.bukkit.Location fromSerialized(Location loc) {
|
||||||
|
|||||||
@@ -3,7 +3,10 @@ package io.github.thetrouper.sentinel.data.config;
|
|||||||
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class AdvancedConfig implements JsonSerializable<AdvancedConfig> {
|
public class AdvancedConfig implements JsonSerializable<AdvancedConfig> {
|
||||||
|
|
||||||
|
|||||||
@@ -70,6 +70,9 @@ public class FPConfig implements JsonSerializable<FPConfig> {
|
|||||||
"sexist",
|
"sexist",
|
||||||
"shoe",
|
"shoe",
|
||||||
"stitch",
|
"stitch",
|
||||||
"therapist"
|
"therapist",
|
||||||
|
"but its",
|
||||||
|
"whoever",
|
||||||
|
" again"
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
|||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Filter;
|
|
||||||
|
|
||||||
public class LanguageFile implements JsonSerializable<LanguageFile> {
|
public class LanguageFile implements JsonSerializable<LanguageFile> {
|
||||||
public static final File PATH = new File(Sentinel.getInstance().getDataFolder(), "/lang/" + Sentinel.mainConfig.plugin.lang);
|
public static final File PATH = new File(Sentinel.getInstance().getDataFolder(), "/lang/" + Sentinel.mainConfig.plugin.lang);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package io.github.thetrouper.sentinel.data.config;
|
|||||||
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class SwearsConfig implements JsonSerializable<SwearsConfig> {
|
public class SwearsConfig implements JsonSerializable<SwearsConfig> {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package io.github.thetrouper.sentinel.events;
|
package io.github.thetrouper.sentinel.events;
|
||||||
|
|
||||||
import io.github.itzispyder.pdk.events.CustomListener;
|
import io.github.itzispyder.pdk.events.CustomListener;
|
||||||
import io.github.itzispyder.pdk.utils.ArrayUtils;
|
|
||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
import io.github.thetrouper.sentinel.data.Report;
|
import io.github.thetrouper.sentinel.data.Report;
|
||||||
import io.github.thetrouper.sentinel.server.functions.AdvancedBlockers;
|
import io.github.thetrouper.sentinel.server.functions.AdvancedBlockers;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class CommandEvent implements CustomListener {
|
|||||||
String command = e.getMessage().substring(1).split(" ")[0];
|
String command = e.getMessage().substring(1).split(" ")[0];
|
||||||
String fullcommand = e.getMessage();
|
String fullcommand = e.getMessage();
|
||||||
ServerUtils.sendDebugMessage("CommandEvent: Checking command");
|
ServerUtils.sendDebugMessage("CommandEvent: Checking command");
|
||||||
if (Sentinel.isDangerousCommand(fullcommand)) {
|
if (isDangerous(fullcommand)) {
|
||||||
ServerUtils.sendDebugMessage("CommandEvent: Command is dangerous");
|
ServerUtils.sendDebugMessage("CommandEvent: Command is dangerous");
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
ServerUtils.sendDebugMessage("CommandEvent: Command is canceled");
|
ServerUtils.sendDebugMessage("CommandEvent: Command is canceled");
|
||||||
@@ -56,7 +56,7 @@ public class CommandEvent implements CustomListener {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Sentinel.isLoggedCommand(fullcommand)) {
|
if (isLogged(fullcommand)) {
|
||||||
ServerUtils.sendDebugMessage("CommandEvent: Is logged command, logging");
|
ServerUtils.sendDebugMessage("CommandEvent: Is logged command, logging");
|
||||||
Action a = new Action.Builder()
|
Action a = new Action.Builder()
|
||||||
.setAction(ActionType.LOGGED_COMMAND)
|
.setAction(ActionType.LOGGED_COMMAND)
|
||||||
@@ -72,4 +72,24 @@ public class CommandEvent implements CustomListener {
|
|||||||
.execute();
|
.execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean isLogged(String command) {
|
||||||
|
if (command.startsWith("/")) {
|
||||||
|
command = command.substring(1);
|
||||||
|
}
|
||||||
|
for (String logged : Sentinel.mainConfig.plugin.logged) {
|
||||||
|
if (command.split(" ")[0].startsWith(logged)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isDangerous(String command) {
|
||||||
|
if (command.startsWith("/")) {
|
||||||
|
command = command.substring(1);
|
||||||
|
}
|
||||||
|
for (String blocked : Sentinel.mainConfig.plugin.dangerous) {
|
||||||
|
if (command.split(" ")[0].startsWith(blocked)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -231,6 +231,10 @@ public class NBTEvents implements CustomListener {
|
|||||||
final int level = meta.getEnchantLevel(Enchantment.FROST_WALKER);
|
final int level = meta.getEnchantLevel(Enchantment.FROST_WALKER);
|
||||||
return level > Sentinel.nbtConfig.maxFrostWalker || level > Sentinel.nbtConfig.globalMaxEnchant;
|
return level > Sentinel.nbtConfig.maxFrostWalker || level > Sentinel.nbtConfig.globalMaxEnchant;
|
||||||
}
|
}
|
||||||
|
if (meta.hasEnchant(Enchantment.SWIFT_SNEAK)) {
|
||||||
|
final int level = meta.getEnchantLevel(Enchantment.SWIFT_SNEAK);
|
||||||
|
return level > Sentinel.nbtConfig.maxSwiftSneak || level > Sentinel.nbtConfig.globalMaxEnchant;
|
||||||
|
}
|
||||||
|
|
||||||
// MELEE WEAPONS
|
// MELEE WEAPONS
|
||||||
if (meta.hasEnchant(Enchantment.DAMAGE_ARTHROPODS)) {
|
if (meta.hasEnchant(Enchantment.DAMAGE_ARTHROPODS)) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class TabCompleteEvent {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (String ver : VERSION_ALIASES) {
|
for (String ver : VERSION_ALIASES) {
|
||||||
if (!input.startsWith(ver)) continue;
|
if (!input.startsWith(ver + " ")) continue;
|
||||||
String modifiedInput = input.replaceFirst(ver, "sentineltab");
|
String modifiedInput = input.replaceFirst(ver, "sentineltab");
|
||||||
event.getPacket().getStrings().write(0, modifiedInput);
|
event.getPacket().getStrings().write(0, modifiedInput);
|
||||||
ServerUtils.sendDebugMessage("Successfully Blocked ver command: " + input);
|
ServerUtils.sendDebugMessage("Successfully Blocked ver command: " + input);
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package io.github.thetrouper.sentinel.server;
|
package io.github.thetrouper.sentinel.server;
|
||||||
|
|
||||||
|
|
||||||
import io.github.itzispyder.pdk.utils.SchedulerUtils;
|
|
||||||
import io.github.itzispyder.pdk.utils.discord.DiscordEmbed;
|
import io.github.itzispyder.pdk.utils.discord.DiscordEmbed;
|
||||||
import io.github.itzispyder.pdk.utils.discord.DiscordWebhook;
|
import io.github.itzispyder.pdk.utils.discord.DiscordWebhook;
|
||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package io.github.thetrouper.sentinel.server;
|
package io.github.thetrouper.sentinel.server;
|
||||||
|
|
||||||
|
|
||||||
import io.github.itzispyder.pdk.utils.SchedulerUtils;
|
|
||||||
import io.github.itzispyder.pdk.utils.discord.DiscordEmbed;
|
import io.github.itzispyder.pdk.utils.discord.DiscordEmbed;
|
||||||
import io.github.itzispyder.pdk.utils.discord.DiscordWebhook;
|
import io.github.itzispyder.pdk.utils.discord.DiscordWebhook;
|
||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package io.github.thetrouper.sentinel.server.functions;
|
package io.github.thetrouper.sentinel.server.functions;
|
||||||
|
|
||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
import io.github.thetrouper.sentinel.data.*;
|
import io.github.thetrouper.sentinel.data.Emojis;
|
||||||
|
import io.github.thetrouper.sentinel.data.FilterActionType;
|
||||||
|
import io.github.thetrouper.sentinel.data.FilterSeverity;
|
||||||
|
import io.github.thetrouper.sentinel.data.Report;
|
||||||
import io.github.thetrouper.sentinel.server.FilterAction;
|
import io.github.thetrouper.sentinel.server.FilterAction;
|
||||||
import io.github.thetrouper.sentinel.server.util.ServerUtils;
|
import io.github.thetrouper.sentinel.server.util.ServerUtils;
|
||||||
import io.github.thetrouper.sentinel.server.util.Text;
|
import io.github.thetrouper.sentinel.server.util.Text;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class Authenticator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (authStatus.isEmpty()) {
|
if (authStatus.isBlank()) {
|
||||||
authStatus = "UNREGISTERED";
|
authStatus = "UNREGISTERED";
|
||||||
return authStatus;
|
return authStatus;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
package io.github.thetrouper.sentinel.server.functions;
|
package io.github.thetrouper.sentinel.server.functions;
|
||||||
|
|
||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
import io.github.thetrouper.sentinel.data.cmdblocks.CMDBlockType;
|
|
||||||
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistStorage;
|
|
||||||
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistedBlock;
|
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistedBlock;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
|||||||
@@ -0,0 +1,106 @@
|
|||||||
|
package io.github.thetrouper.sentinel.server.functions;
|
||||||
|
|
||||||
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
|
import io.github.thetrouper.sentinel.auth.Auth;
|
||||||
|
import io.github.thetrouper.sentinel.cmds.*;
|
||||||
|
import io.github.thetrouper.sentinel.events.*;
|
||||||
|
import io.github.thetrouper.sentinel.server.util.ServerUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
|
public class Load {
|
||||||
|
public void load(String license, String serverID) {
|
||||||
|
String authstatus = "ERROR";
|
||||||
|
String authStatus = "ERROR";
|
||||||
|
try {
|
||||||
|
authStatus = Authenticator.authorize(license, serverID);
|
||||||
|
authstatus = Auth.authorize(license, serverID);
|
||||||
|
String IP = Authenticator.getPublicIPAddress();
|
||||||
|
Sentinel.log.info("Auth Requested...");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
Sentinel.log.info("WTFFFF ARE YOU DOING MAN??????");
|
||||||
|
Sentinel.manager.disablePlugin(Sentinel.getInstance());
|
||||||
|
}
|
||||||
|
switch (authStatus) {
|
||||||
|
case "AUTHORIZED" -> {
|
||||||
|
Sentinel.log.info("\n]======----- Auth Success! -----======[");
|
||||||
|
startup();
|
||||||
|
}
|
||||||
|
case "MINEHUT" -> {
|
||||||
|
Sentinel.usesDynamicIP = true;
|
||||||
|
Telemetry.initTelemetryHook();
|
||||||
|
boolean minehutStatus = Telemetry.sendStartupLog();
|
||||||
|
if (minehutStatus) {
|
||||||
|
authstatus = authstatus.replaceAll("ur a skid lmao", "get out of here kiddo");
|
||||||
|
ServerUtils.sendDebugMessage(authstatus);
|
||||||
|
Sentinel.log.info("Dynamic IP auth Success! ");
|
||||||
|
this.startup();
|
||||||
|
} else {
|
||||||
|
Sentinel. log.info("Dynamic IP Failure. Webhook Error possible? Please contact obvWolf to fix this.");
|
||||||
|
Sentinel.manager.disablePlugin(Sentinel.getInstance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "INVALID-ID" -> {
|
||||||
|
Sentinel.log.info("Authentication Failure, You have not whitelisted this server ID yet.");
|
||||||
|
Sentinel.manager.disablePlugin(Sentinel.getInstance());
|
||||||
|
}
|
||||||
|
case "UNREGISTERED" -> {
|
||||||
|
Sentinel.log.warning("Authentication Failure, YOU SHALL NOT PASS! License: %s Server ID: %s".formatted(license,serverID));
|
||||||
|
Sentinel.manager.disablePlugin(Sentinel.getInstance());
|
||||||
|
}
|
||||||
|
case "ERROR" -> {
|
||||||
|
Sentinel.log.warning("Hmmmmmm thats not right... License: %s Server ID: %s\nPlease report the above stacktrace.".formatted(license,serverID));
|
||||||
|
Sentinel.manager.disablePlugin(Sentinel.getInstance());
|
||||||
|
}
|
||||||
|
default -> {
|
||||||
|
Sentinel.log.warning("Achievement unlocked: How did we get here? License: %s Server ID: %s\nPlease report the above stacktrace.".formatted(license,serverID));
|
||||||
|
Sentinel.manager.disablePlugin(Sentinel.getInstance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startup() {
|
||||||
|
Sentinel.log.info("\n]======----- Loading Sentinel! -----======[");
|
||||||
|
|
||||||
|
// Plugin startup logic
|
||||||
|
Sentinel.log.info("Starting Up! (%s)...".formatted(Sentinel.getInstance().getDescription().getVersion()));
|
||||||
|
|
||||||
|
// Commands
|
||||||
|
new SentinelCommand().register();
|
||||||
|
new MessageCommand().register();
|
||||||
|
new ReplyCommand().register();
|
||||||
|
new ReopCommand().register();
|
||||||
|
new SocialSpyCommand().register();
|
||||||
|
new ChatClickCallback().register();
|
||||||
|
|
||||||
|
// Events
|
||||||
|
new ChatEvent().register();
|
||||||
|
new CommandEvent().register();
|
||||||
|
new CMDBlockExecute().register();
|
||||||
|
new CMDBlockPlace().register();
|
||||||
|
new CMDBlockUse().register();
|
||||||
|
new CMDMinecartPlace().register();
|
||||||
|
new CMDMinecartUse().register();
|
||||||
|
new NBTEvents().register();
|
||||||
|
new MiscEvents().register();
|
||||||
|
if (Sentinel.doNoPlugins) {
|
||||||
|
new TrapCommand().register();
|
||||||
|
new PluginHiderEvents().register();
|
||||||
|
TabCompleteEvent.registerEvent(Sentinel.getInstance());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scheduled timers
|
||||||
|
Bukkit.getScheduler().runTaskTimer(Sentinel.getInstance(), AntiSpam::decayHeat,0, 20);
|
||||||
|
Bukkit.getScheduler().runTaskTimer(Sentinel.getInstance(), ProfanityFilter::decayScore,0,1200);
|
||||||
|
Sentinel.log.info("""
|
||||||
|
Finished!
|
||||||
|
____ __ ___ \s
|
||||||
|
/\\ _`\\ /\\ \\__ __ /\\_ \\ \s
|
||||||
|
\\ \\,\\L\\_\\ __ ___\\ \\ ,_\\/\\_\\ ___ __\\//\\ \\ \s
|
||||||
|
\\/_\\__ \\ /'__`\\/' _ `\\ \\ \\/\\/\\ \\ /' _ `\\ /'__`\\\\ \\ \\ \s
|
||||||
|
/\\ \\L\\ \\/\\ __//\\ \\/\\ \\ \\ \\_\\ \\ \\/\\ \\/\\ \\/\\ __/ \\_\\ \\_\s
|
||||||
|
\\ `\\____\\ \\____\\ \\_\\ \\_\\ \\__\\\\ \\_\\ \\_\\ \\_\\ \\____\\/\\____\\
|
||||||
|
\\/_____/\\/____/\\/_/\\/_/\\/__/ \\/_/\\/_/\\/_/\\/____/\\/____/
|
||||||
|
]====---- Advanced Anti-Grief & Chat Filter ----====[""");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,12 +7,8 @@ import io.github.thetrouper.sentinel.Sentinel;
|
|||||||
import io.github.thetrouper.sentinel.data.Emojis;
|
import io.github.thetrouper.sentinel.data.Emojis;
|
||||||
import io.github.thetrouper.sentinel.data.Report;
|
import io.github.thetrouper.sentinel.data.Report;
|
||||||
import io.github.thetrouper.sentinel.server.util.Randomizer;
|
import io.github.thetrouper.sentinel.server.util.Randomizer;
|
||||||
import io.github.thetrouper.sentinel.server.util.ServerUtils;
|
|
||||||
import io.github.thetrouper.sentinel.server.util.Text;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import io.github.itzispyder.pdk.utils.SchedulerUtils;
|
|||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
import io.github.thetrouper.sentinel.cmds.SocialSpyCommand;
|
import io.github.thetrouper.sentinel.cmds.SocialSpyCommand;
|
||||||
import io.github.thetrouper.sentinel.data.ActionType;
|
import io.github.thetrouper.sentinel.data.ActionType;
|
||||||
import io.github.thetrouper.sentinel.data.Report;
|
|
||||||
import io.github.thetrouper.sentinel.events.CommandEvent;
|
import io.github.thetrouper.sentinel.events.CommandEvent;
|
||||||
import io.github.thetrouper.sentinel.server.Action;
|
import io.github.thetrouper.sentinel.server.Action;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@@ -72,6 +71,7 @@ public class SystemCheck {
|
|||||||
|
|
||||||
public static void cmdBlockUseCheck(Player p) {
|
public static void cmdBlockUseCheck(Player p) {
|
||||||
Block placed = p.getLocation().clone().add(0,-2,0).getBlock();
|
Block placed = p.getLocation().clone().add(0,-2,0).getBlock();
|
||||||
|
Material before = placed.getType();
|
||||||
placed.setType(Material.COMMAND_BLOCK);
|
placed.setType(Material.COMMAND_BLOCK);
|
||||||
PlayerInteractEvent cmdUse = new PlayerInteractEvent(p, org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK,ItemBuilder.create().material(Material.AIR).build(),placed, BlockFace.UP);
|
PlayerInteractEvent cmdUse = new PlayerInteractEvent(p, org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK,ItemBuilder.create().material(Material.AIR).build(),placed, BlockFace.UP);
|
||||||
Action a = new Action.Builder()
|
Action a = new Action.Builder()
|
||||||
@@ -87,6 +87,7 @@ public class SystemCheck {
|
|||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.execute();
|
.execute();
|
||||||
p.setOp(true);
|
p.setOp(true);
|
||||||
|
placed.setType(before);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void commandCheck(Player p) {
|
public static void commandCheck(Player p) {
|
||||||
|
|||||||
Reference in New Issue
Block a user