EngineHub / EngineHub/WorldGuard
NullPointerException when setting flag to "none" in RegionCommands.setFlag
- Dominant language
- Java
- Stars
- 938
- Forks
- 671
- PR merge metrics
- No merged PRs in 30d
Description
### WorldEdit Version
7.4.5+7590-b8dc4c1
### WorldGuard Version
7.0.18+2392-fa605e6
### Platform Version
Purpur 26.2-2627-HEAD@f284e3d
### Confirmations
- [x] I am using the most recent Minecraft release.
- [x] I am using a version of WorldEdit compatible with my Minecraft version.
- [x] I am using a version of WorldGuard compatible with my Minecraft version.
- [x] I am using the latest or recommended version of my platform software.
- [x] I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
- [x] I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)
### Bug Description
When setting a WorldGuard flag to `none` to remove it, the plugin successfully clears the flag and saves the data in the background, but throws a `NullPointerException` in the server console/chat. This happens because the command framework attempts to invoke `.toString()` on the `null` value returned by `RegionCommands.setFlag(...)` to build the console/chat feedback.
Copy from the log:
[20:25:40] [Server thread/INFO]: Cannot invoke "Object.toString()" because the return value of "com.sk89q.worldguard.commands.region.RegionCommands.setFlag(com.sk89q.worldguard.protection.regions.ProtectedRegion, com.sk89q.worldguard.protection.flags.Flag, com.sk89q.worldedit.extension.platform.Actor, String)" is null
--
| [20:25:44] [WorldGuard Region I/O/INFO]: [WorldGuard] Region data changes made in 'world' have been background saved
### Expected Behavior
The plugin should successfully clear the flag, gracefully handle the `null` return value from the cleared state, and send a standard confirmation message without throwing any errors in the console.
### Reproduction Steps
1. Create a region and assign a flag to a specific value (e.g., `/rg flag testregion exit deny`).
2. Attempt to remove the flag by setting it to none (e.g., `/rg flag testregion exit none`).
3. Check the server console to observe the `Cannot invoke "Object.toString()" ... is null` error, followed by the background save message.
### Optional WorldGuard-Report
_No response_
### Anything Else?
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.