Skip to content

feat: EnumValidator for sound, effect, and particle validation - #1

Open
MLG-SERBUR wants to merge 9 commits into
masterfrom
enum-validator
Open

MLG-SERBUR wants to merge 9 commits into
masterfrom
enum-validator

Conversation

@MLG-SERBUR

Copy link
Copy Markdown
Member

Adds load-time validation and auto-conversion of Sound/Effect/Particle config values via new EnumValidator class.

  • Converts legacy enum names (1.8-RECORD_/NOTE_, 1.13-PARTICLE_ flattening, 1.19.3-BLOCK_NOTE_, 1.21.x Effect renames like SMOKE→SMOKE_SHOOT) at load time
  • Handles Sound being an interface on 1.21.3+ (field lookup + valueOf fallback)
  • Writes converted values back to config; invalid values cleared with a warning
  • Fixes SignerListener particle chat handler (was calling setEffect instead of setParticle)

Built on upstream/master (0fa8d62).

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 85de025d68

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/main/java/net/awesomepowered/rotator/utils/EnumValidator.java
@MLG-SERBUR

Copy link
Copy Markdown
Member Author

@codex validate if these are all correct. pull spigot and paper javadocs as needed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 85de025d68

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/main/java/net/awesomepowered/rotator/utils/EnumValidator.java
@MLG-SERBUR

Copy link
Copy Markdown
Member Author

@codex
[16:31:36] [Server thread/WARN]: [RotatoR] Task #35 for RotatoR v1.0.7P generated an exception
java.lang.IllegalArgumentException: No enum constant org.bukkit.Effect.SMOKE
at java.base/java.lang.Enum.valueOf(Enum.java:293) ~[?:?]
at org.bukkit.Effect.valueOf(Effect.java:16) ~[purpur-api-26.2.build.2622-stable.jar:?]
at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.play(BlockSpinner.java:163) ~[?:?]
at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.lambda$spoolUp$0(BlockSpinner.java:133) ~[?:?]
at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:78) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:474) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1803) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1656) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.dedicated.DedicatedServer.tickServer(DedicatedServer.java:450) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1714) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1384) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:303) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at java.base/java.lang.Thread.run(Thread.java:1474) ~[?:?]
[16:31:36] [Server thread/INFO]: [MountainDewritoes] Logged exception from plugin RotatoR to: plugins/MountainDewritoes/RotatoR_exceptions.log
[16:31:36] [Server thread/WARN]: [RotatoR] Task #50 for RotatoR v1.0.7P generated an exception
java.lang.IllegalArgumentException: No enum constant org.bukkit.Effect.VILLAGER_PLANT_GROW
at java.base/java.lang.Enum.valueOf(Enum.java:293) ~[?:?]
at org.bukkit.Effect.valueOf(Effect.java:16) ~[purpur-api-26.2.build.2622-stable.jar:?]
at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.play(BlockSpinner.java:163) ~[?:?]
at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.lambda$spoolUp$0(BlockSpinner.java:133) ~[?:?]
at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:78) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:474) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1803) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1656) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.dedicated.DedicatedServer.tickServer(DedicatedServer.java:450) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1714) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1384) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:303) ~[purpur-26.2.jar:26.2-2622-48bcd91]
at java.base/java.lang.Thread.run(Thread.java:1474) ~[?:?]

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create an environment for this repo.

@MLG-SERBUR

Copy link
Copy Markdown
Member Author

@codex [16:31:36] [Server thread/WARN]: [RotatoR] Task #35 for RotatoR v1.0.7P generated an exception java.lang.IllegalArgumentException: No enum constant org.bukkit.Effect.SMOKE at java.base/java.lang.Enum.valueOf(Enum.java:293) ~[?:?] at org.bukkit.Effect.valueOf(Effect.java:16) ~[purpur-api-26.2.build.2622-stable.jar:?] at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.play(BlockSpinner.java:163) ~[?:?] at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.lambda$spoolUp$0(BlockSpinner.java:133) ~[?:?] at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:78) ~[purpur-26.2.jar:26.2-2622-48bcd91] at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:474) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1803) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1656) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.dedicated.DedicatedServer.tickServer(DedicatedServer.java:450) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1714) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1384) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:303) ~[purpur-26.2.jar:26.2-2622-48bcd91] at java.base/java.lang.Thread.run(Thread.java:1474) ~[?:?] [16:31:36] [Server thread/INFO]: [MountainDewritoes] Logged exception from plugin RotatoR to: plugins/MountainDewritoes/RotatoR_exceptions.log [16:31:36] [Server thread/WARN]: [RotatoR] Task #50 for RotatoR v1.0.7P generated an exception java.lang.IllegalArgumentException: No enum constant org.bukkit.Effect.VILLAGER_PLANT_GROW at java.base/java.lang.Enum.valueOf(Enum.java:293) ~[?:?] at org.bukkit.Effect.valueOf(Effect.java:16) ~[purpur-api-26.2.build.2622-stable.jar:?] at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.play(BlockSpinner.java:163) ~[?:?] at RotatoR.jar//net.awesomepowered.rotator.types.BlockSpinner.lambda$spoolUp$0(BlockSpinner.java:133) ~[?:?] at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:78) ~[purpur-26.2.jar:26.2-2622-48bcd91] at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:474) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1803) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1656) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.dedicated.DedicatedServer.tickServer(DedicatedServer.java:450) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1714) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1384) ~[purpur-26.2.jar:26.2-2622-48bcd91] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:303) ~[purpur-26.2.jar:26.2-2622-48bcd91] at java.base/java.lang.Thread.run(Thread.java:1474) ~[?:?]

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

Testing

  • ✅ mvn test -q
  • ✅ git diff --check
  • ⚠️ tool_search make_pr create pull request — the requested make_pr tool was not available in this environment, and gh is not authenticated/no git remote is configured, so I could not create the follow-up PR from here.

View task →

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants