- Added 2 new functions to run the response with delay and Async or Synron.
- The message is now displayed in the chat before the reply if the BlockKeyMessage option is set to false.
This commit is contained in:
JaTiTV 2023-04-23 19:20:19 +02:00
parent f2ab07e4c2
commit edddd93850
6 changed files with 53 additions and 16 deletions

View File

@ -6,7 +6,7 @@
<groupId>net.t2code</groupId> <groupId>net.t2code</groupId>
<artifactId>AutoResponse</artifactId> <artifactId>AutoResponse</artifactId>
<version>0.2.2</version> <version>1.1</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>T2C-AutoResponse</name> <name>T2C-AutoResponse</name>
@ -18,6 +18,7 @@
<url>git.t2code.net</url> <url>git.t2code.net</url>
<build> <build>
<finalName>${project.name}_${project.version}</finalName>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
@ -70,16 +71,19 @@
<groupId>net.t2code.minecraft.1_8.r1</groupId> <groupId>net.t2code.minecraft.1_8.r1</groupId>
<artifactId>spigot</artifactId> <artifactId>spigot</artifactId>
<version>1.8r1</version> <version>1.8r1</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.t2code</groupId> <groupId>net.t2code</groupId>
<artifactId>T2CodeLib</artifactId> <artifactId>T2CodeLib</artifactId>
<version>13.4</version> <version>14.4</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.t2code</groupId> <groupId>net.t2code</groupId>
<artifactId>bungee</artifactId> <artifactId>bungee</artifactId>
<version>1615</version> <version>1615</version>
<scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -17,10 +17,8 @@ public class CmdExecuter implements CommandExecutor, TabCompleter {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) { if (args.length != 0) {
// Command // Command
} else {
switch (args[0].toLowerCase()) { switch (args[0].toLowerCase()) {
case "reload": case "reload":
case "rl": case "rl":
@ -44,7 +42,7 @@ public class CmdExecuter implements CommandExecutor, TabCompleter {
} }
//TabCompleter //TabCompleter
private static HashMap<String, String> arg1 = new HashMap<String, String>() {{ private static final HashMap<String, String> arg1 = new HashMap<String, String>() {{
put("reload", Permissions.admin); put("reload", Permissions.admin);
put("rl", Permissions.admin); put("rl", Permissions.admin);
put("info", Permissions.info); put("info", Permissions.info);
@ -57,7 +55,7 @@ public class CmdExecuter implements CommandExecutor, TabCompleter {
Player p = (Player) sender; Player p = (Player) sender;
if (args.length == 1) { if (args.length == 1) {
for (String command : arg1.keySet()) { for (String command : arg1.keySet()) {
Boolean passend = true; boolean passend = true;
for (int i = 0; i < args[0].length(); i++) { for (int i = 0; i < args[0].length(); i++) {
if (args[0].length() >= command.length()) { if (args[0].length() >= command.length()) {
passend = false; passend = false;

View File

@ -30,6 +30,9 @@ public class CreateExampleResponse {
T2Cconfig.set("Response.Permission.Necessary", true, yamlConfiguration); T2Cconfig.set("Response.Permission.Necessary", true, yamlConfiguration);
T2Cconfig.set("Response.Permission.Permission", "t2c-autoresponse.response.example", yamlConfiguration); T2Cconfig.set("Response.Permission.Permission", "t2c-autoresponse.response.example", yamlConfiguration);
T2Cconfig.set("Response.Response.DelayInTicks", 0, yamlConfiguration);
T2Cconfig.set("Response.Response.Async", true, yamlConfiguration);
T2Cconfig.set("Response.Command.Enable", false, yamlConfiguration); T2Cconfig.set("Response.Command.Enable", false, yamlConfiguration);
T2Cconfig.set("Response.Command.CommandAsConsole", false, yamlConfiguration); T2Cconfig.set("Response.Command.CommandAsConsole", false, yamlConfiguration);
T2Cconfig.set("Response.Command.BungeeCommand", false, yamlConfiguration); T2Cconfig.set("Response.Command.BungeeCommand", false, yamlConfiguration);

View File

@ -22,10 +22,14 @@ public class SelectResponses {
yamlConfiguration.getBoolean("Response.Enable"), yamlConfiguration.getBoolean("Response.Enable"),
yamlConfiguration.getStringList("Response.ResponseKeys"), yamlConfiguration.getStringList("Response.ResponseKeys"),
yamlConfiguration.getBoolean("Response.Contains"), yamlConfiguration.getBoolean("Response.Contains"),
yamlConfiguration.getBoolean("Response.BlockKeyMessage"), yamlConfiguration.getBoolean("Response.BlockKeyMessage"),
yamlConfiguration.getBoolean("Response.Permission.Necessary"), yamlConfiguration.getBoolean("Response.Permission.Necessary"),
yamlConfiguration.getString("Response.Permission.Permission"), yamlConfiguration.getString("Response.Permission.Permission"),
yamlConfiguration.getInt("Response.Response.DelayInTicks"),
yamlConfiguration.getBoolean("Response.Response.Async"),
yamlConfiguration.getBoolean("Response.Command.Enable"), yamlConfiguration.getBoolean("Response.Command.Enable"),
yamlConfiguration.getBoolean("Response.Command.CommandAsConsole"), yamlConfiguration.getBoolean("Response.Command.CommandAsConsole"),
yamlConfiguration.getBoolean("Response.Command.BungeeCommand"), yamlConfiguration.getBoolean("Response.Command.BungeeCommand"),

View File

@ -23,23 +23,25 @@ public class ResponseListener implements Listener {
public static void ChatListener(AsyncPlayerChatEvent e) { public static void ChatListener(AsyncPlayerChatEvent e) {
Player player = e.getPlayer(); Player player = e.getPlayer();
boolean bool = false; boolean bool = false;
for (String s : Main.allResponse) { for (
String s : Main.allResponse) {
if (e.getMessage().contains(s)) bool = true; if (e.getMessage().contains(s)) bool = true;
} }
if (!bool) return; if (!bool) return;
for (ResponsesObject response : Main.allResponses) { for (
ResponsesObject response : Main.allResponses) {
if (!response.permNecessary || player.hasPermission(response.permission)) { if (!response.permNecessary || player.hasPermission(response.permission)) {
if (response.contains) { if (response.contains) {
for (String responseKey : response.responseKeys) { for (String responseKey : response.responseKeys) {
if (e.getMessage().toLowerCase().contains(responseKey.toLowerCase())) { if (e.getMessage().toLowerCase().contains(responseKey.toLowerCase())) {
execute(e, player, response, responseKey); execute1(e, player, response, responseKey);
return; return;
} }
} }
} else { } else {
for (String responseKey : response.responseKeys) { for (String responseKey : response.responseKeys) {
if (e.getMessage().toLowerCase().equals(responseKey.toLowerCase())) { if (e.getMessage().equalsIgnoreCase(responseKey)) {
execute(e, player, response, responseKey); execute1(e, player, response, responseKey);
return; return;
} }
} }
@ -48,8 +50,7 @@ public class ResponseListener implements Listener {
} }
} }
private static void execute(AsyncPlayerChatEvent e, Player player, ResponsesObject response, String responseKey) { private static void execute1(AsyncPlayerChatEvent e, Player player, ResponsesObject response, String responseKey) {
if (response.protectionGameModeEnable) { if (response.protectionGameModeEnable) {
if (response.protectionGameModeMode.equalsIgnoreCase("blacklist") && response.protectionGameModeList.contains(player.getGameMode().toString())) { if (response.protectionGameModeMode.equalsIgnoreCase("blacklist") && response.protectionGameModeList.contains(player.getGameMode().toString())) {
return; return;
@ -67,7 +68,24 @@ public class ResponseListener implements Listener {
} }
} }
use(e, player, responseKey, response); use(e, player, responseKey, response);
Bukkit.getScheduler().runTaskLaterAsynchronously(Main.getPlugin(), () -> {
if (response.async){
executeAsync(player, response);
} else executeSync(player, response);
}, 2L);
}
private static void executeSync(Player player, ResponsesObject response) {
Bukkit.getScheduler().runTaskLater(Main.getPlugin(), () -> executeFinal(player, response), (long) response.delayInTicks);
}
private static void executeAsync(Player player, ResponsesObject response) {
Bukkit.getScheduler().runTaskLaterAsynchronously(Main.getPlugin(), () -> executeFinal(player, response), (long) response.delayInTicks);
}
private static void executeFinal(Player player, ResponsesObject response) {
if (response.commandEnable) { if (response.commandEnable) {
for (String cmd : response.command) { for (String cmd : response.command) {
if (response.bungeeCommand) { if (response.bungeeCommand) {
@ -113,8 +131,10 @@ public class ResponseListener implements Listener {
} else T2Csend.player(player, text); } else T2Csend.player(player, text);
} }
} }
} }
private static void use(AsyncPlayerChatEvent e, Player player, String responseKey, ResponsesObject response) { private static void use(AsyncPlayerChatEvent e, Player player, String responseKey, ResponsesObject response) {
if (response.blockKeyMessage) e.setCancelled(true); if (response.blockKeyMessage) e.setCancelled(true);
if (SelectConfig.logConsole) T2Csend.console(Util.getPrefix() + " §6Player: §e" + player.getName() + " §6use AutoResponse: §e" + responseKey); if (SelectConfig.logConsole) T2Csend.console(Util.getPrefix() + " §6Player: §e" + player.getName() + " §6use AutoResponse: §e" + responseKey);

View File

@ -11,6 +11,9 @@ public class ResponsesObject {
public Boolean permNecessary; public Boolean permNecessary;
public String permission; public String permission;
public Integer delayInTicks;
public Boolean async;
public Boolean commandAsConsole; public Boolean commandAsConsole;
public Boolean bungeeCommand; public Boolean bungeeCommand;
public List<String> command; public List<String> command;
@ -33,6 +36,8 @@ public class ResponsesObject {
Boolean blockKeyMessage, Boolean blockKeyMessage,
Boolean permNecessary, Boolean permNecessary,
String permission, String permission,
Integer delayInTicks,
Boolean delayAsync,
Boolean commandEnable, Boolean commandEnable,
Boolean commandAsConsole, Boolean commandAsConsole,
Boolean bungeeCommand, Boolean bungeeCommand,
@ -49,8 +54,8 @@ public class ResponsesObject {
List<String> protectionWorldList) { List<String> protectionWorldList) {
this.enable = enable; this.enable = enable;
this.responseKeys = responseKeys; this.responseKeys = responseKeys;
this.contains=contains; this.contains = contains;
this.blockKeyMessage=blockKeyMessage; this.blockKeyMessage = blockKeyMessage;
this.permNecessary = permNecessary; this.permNecessary = permNecessary;
this.permission = permission; this.permission = permission;
this.commandEnable = commandEnable; this.commandEnable = commandEnable;
@ -62,6 +67,9 @@ public class ResponsesObject {
this.messageGlobalBungee = messageGlobalBungee; this.messageGlobalBungee = messageGlobalBungee;
this.messages = messages; this.messages = messages;
this.delayInTicks = delayInTicks;
this.async = delayAsync;
this.protectionGameModeEnable = protectionGameModeEnable; this.protectionGameModeEnable = protectionGameModeEnable;
this.protectionGameModeMode = protectionGameModeMode; this.protectionGameModeMode = protectionGameModeMode;
this.protectionGameModeList = protectionGameModeList; this.protectionGameModeList = protectionGameModeList;