Skip to content

Commit 17fcc07

Browse files
authored
Update ChatBotManager.java
1 parent 5d5d139 commit 17fcc07

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

src/main/java/ru/allfire/coreprotectionassistant/managers/ChatBotManager.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -144,19 +144,15 @@ public void onChat(AsyncChatEvent event) {
144144
" triggered rule '" + rule.name + "'");
145145
}
146146

147-
final List<String> cmdsToExecute;
148-
if (!rule.answerCmdsRandom.isEmpty() && random.nextBoolean()) {
149-
cmdsToExecute = new ArrayList<>(rule.answerCmdsRandom);
150-
} else {
151-
cmdsToExecute = new ArrayList<>(rule.answerCmds);
147+
// Сначала выполняем основные команды (answer_cmds)
148+
for (String cmd : rule.answerCmds) {
149+
executeCommand(player, message, cmd, rule.delayTicks);
152150
}
153151

154-
if (rule.delayTicks > 0) {
155-
Bukkit.getScheduler().runTaskLater(plugin, () -> {
156-
executeCommands(player, message, cmdsToExecute);
157-
}, rule.delayTicks);
158-
} else {
159-
executeCommands(player, message, cmdsToExecute);
152+
// Затем, если есть случайные ответы, выбираем ОДИН случайный
153+
if (!rule.answerCmdsRandom.isEmpty()) {
154+
String randomCmd = rule.answerCmdsRandom.get(random.nextInt(rule.answerCmdsRandom.size()));
155+
executeCommand(player, message, randomCmd, rule.delayTicks);
160156
}
161157

162158
lastTriggerTime.put(player.getUniqueId(), now);
@@ -166,14 +162,18 @@ public void onChat(AsyncChatEvent event) {
166162
}
167163
}
168164

169-
private void executeCommands(Player player, String message, List<String> commands) {
170-
for (String cmd : commands) {
171-
String processed = cmd
172-
.replace("%player_name%", player.getName())
173-
.replace("%player_uuid%", player.getUniqueId().toString())
174-
.replace("%player_world%", player.getWorld().getName())
175-
.replace("%message%", message);
176-
165+
private void executeCommand(Player player, String message, String cmd, long delayTicks) {
166+
String processed = cmd
167+
.replace("%player_name%", player.getName())
168+
.replace("%player_uuid%", player.getUniqueId().toString())
169+
.replace("%player_world%", player.getWorld().getName())
170+
.replace("%message%", message);
171+
172+
if (delayTicks > 0) {
173+
Bukkit.getScheduler().runTaskLater(plugin, () -> {
174+
CommandExecutor.execute(plugin, player, null, processed);
175+
}, delayTicks);
176+
} else {
177177
CommandExecutor.execute(plugin, player, null, processed);
178178
}
179179
}

0 commit comments

Comments
 (0)