Admin team kick on multi-island players kicks from all islands at once
Type: Bug
Spun off from #2908 (item 2).
### Background
`disallow-team-member-islands: false` lets a player be a member of multiple islands. When an admin runs `/bbox team kick <player>`, the current behaviour in `AdminTeamKickCommand` (since the multi-island rework) iterates `getIslands().getIslands(world, target)` and removes the player from **every** island they are a member of.
See `src/main/java/world/bentobox/bentobox/api/commands/admin/team/AdminTeamKickCommand.java` lines 61–82.
### Problem
- The original report in #2908 was that admin kick refused to kick because it could not disambiguate which island. The current code side-steps that by kicking from all of them, which is a sharper tool than most admins expect.
- An admin who wants to kick a member from one specific island has no way to scope the action.
- The success message `commands.admin.team.kick.success-all` is shown for what looks to the admin like a single-target operation.
### Proposal
Default to the single island the admin is standing on (`getIslandAt(user.getLocation())`), and add either:
1. an explicit island-uuid argument: `/bbox team kick <player> [island-uuid]`, or
2. an `--all` flag to opt into the current sweep-all behaviour.
Either form should keep the per-island `success` message for single-island kicks and reserve `success-all` for the explicit broadcast case.
### Acceptance
- Admin standing on island A kicking a player who is also on island B only removes them from A.
- An explicit form exists for the legacy "kick from everywhere" behaviour, with a clear confirmation/message.
- Tab completion hints at the optional island selector when the target is on more than one island.
0 条评论