-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
If I remove the contents of chatgames.yml/Rewards in quotes, but leave the quotes in, it may raise an error
My TChat version is 4.3.1
Here’s an example from the chatgames.yml file
rewards:
- ""
It will cause an error to be reported
[13:27:52 WARN]: [TChat] Task #57862 for TChat v4.3.1 generated an exception
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:1014) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:1004) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at org.bukkit.Bukkit.dispatchCommand(Bukkit.java:1103) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
at TChat-4.3.1.jar/utils.ChatGamesSender.lambda$executeRewards$0(ChatGamesSender.java:307) ~[TChat-4.3.1.jar:?]
at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:86) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:475) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1726) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:473) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1598) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1304) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:330) ~[paper-1.21.jar:1.21-130-b1b5d4c]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
I believe the cause of this error is in the executeRewards method at line 302 in ChatGamesSender.java. The check currentGame.getRewards() != null verifies whether it is not null, but it does not ensure that it contains any content.
private void executeRewards(Player player) {
if (currentGame.getRewards() != null) {
for (String reward : currentGame.getRewards()) {
final String command = reward.replace("%winner%", player.getName());
Bukkit.getScheduler().runTask(plugin, () -> {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
});
}
}
}
Metadata
Metadata
Assignees
Labels
No labels