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

View File

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

View File

@ -30,6 +30,9 @@ public class CreateExampleResponse {
T2Cconfig.set("Response.Permission.Necessary", true, 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.CommandAsConsole", false, yamlConfiguration);
T2Cconfig.set("Response.Command.BungeeCommand", false, yamlConfiguration);

View File

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

View File

@ -23,23 +23,25 @@ public class ResponseListener implements Listener {
public static void ChatListener(AsyncPlayerChatEvent e) {
Player player = e.getPlayer();
boolean bool = false;
for (String s : Main.allResponse) {
for (
String s : Main.allResponse) {
if (e.getMessage().contains(s)) bool = true;
}
if (!bool) return;
for (ResponsesObject response : Main.allResponses) {
for (
ResponsesObject response : Main.allResponses) {
if (!response.permNecessary || player.hasPermission(response.permission)) {
if (response.contains) {
for (String responseKey : response.responseKeys) {
if (e.getMessage().toLowerCase().contains(responseKey.toLowerCase())) {
execute(e, player, response, responseKey);
execute1(e, player, response, responseKey);
return;
}
}
} else {
for (String responseKey : response.responseKeys) {
if (e.getMessage().toLowerCase().equals(responseKey.toLowerCase())) {
execute(e, player, response, responseKey);
if (e.getMessage().equalsIgnoreCase(responseKey)) {
execute1(e, player, response, responseKey);
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.protectionGameModeMode.equalsIgnoreCase("blacklist") && response.protectionGameModeList.contains(player.getGameMode().toString())) {
return;
@ -67,7 +68,24 @@ public class ResponseListener implements Listener {
}
}
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) {
for (String cmd : response.command) {
if (response.bungeeCommand) {
@ -113,8 +131,10 @@ public class ResponseListener implements Listener {
} else T2Csend.player(player, text);
}
}
}
private static void use(AsyncPlayerChatEvent e, Player player, String responseKey, ResponsesObject response) {
if (response.blockKeyMessage) e.setCancelled(true);
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 String permission;
public Integer delayInTicks;
public Boolean async;
public Boolean commandAsConsole;
public Boolean bungeeCommand;
public List<String> command;
@ -33,6 +36,8 @@ public class ResponsesObject {
Boolean blockKeyMessage,
Boolean permNecessary,
String permission,
Integer delayInTicks,
Boolean delayAsync,
Boolean commandEnable,
Boolean commandAsConsole,
Boolean bungeeCommand,
@ -62,6 +67,9 @@ public class ResponsesObject {
this.messageGlobalBungee = messageGlobalBungee;
this.messages = messages;
this.delayInTicks = delayInTicks;
this.async = delayAsync;
this.protectionGameModeEnable = protectionGameModeEnable;
this.protectionGameModeMode = protectionGameModeMode;
this.protectionGameModeList = protectionGameModeList;