docs: organize diagrams to mirror code layout (util/ + features/)
Move flat docs/diagrams/*.puml into a hierarchy matching the source
package structure:
docs/diagrams/
├── bootstrap-sequence.puml (cross-cutting)
├── events-diagram.puml (cross-feature)
├── util/
│ ├── command-class-diagram.puml
│ ├── database-diagram.puml
│ ├── messages-class-diagram.puml
│ ├── broadcasts-class-diagram.puml
│ └── gui-class-diagram.puml
└── features/
├── team/
│ ├── team-class-diagram.puml
│ ├── team-config-class-diagram.puml
│ ├── builtin-commands-diagram.puml
│ ├── team-create-sequence.puml
│ ├── team-create-activity.puml
│ └── team-join-sequence.puml
├── player/
│ └── player-class-diagram.puml
└── moderation/
└── moderation-class-diagram.puml
README.md diagram index split into 4 sections (overview, util,
features/team, features/player, features/moderation) for readability;
all links updated. features.md auto-updated by sed for the new paths.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
@startuml builtin-commands-diagram
|
||||
title CR-Core — Default /core team commands (admin / joueur)
|
||||
|
||||
skinparam classAttributeIconSize 0
|
||||
hide empty members
|
||||
|
||||
package "fr.luc.crcore.util.command" {
|
||||
abstract class BaseCommand
|
||||
abstract class SubCommand
|
||||
}
|
||||
|
||||
package "fr.luc.crcore.builtin" {
|
||||
|
||||
class CoreCommand
|
||||
CoreCommand --|> BaseCommand
|
||||
|
||||
package "fr.luc.crcore.features.team.command" {
|
||||
|
||||
class TeamGroupSubCommand {
|
||||
+ TeamGroupSubCommand(service)
|
||||
}
|
||||
TeamGroupSubCommand --|> SubCommand
|
||||
|
||||
class TeamArgumentTypes <<utility>> {
|
||||
+ {static} teamByName(service): ArgumentType<Team>
|
||||
}
|
||||
|
||||
' ─── ADMIN commands (permission seule, team par argument) ───
|
||||
package "admin" <<Rectangle>> {
|
||||
class TeamCreateSubCommand {
|
||||
perm: crcore.team.create
|
||||
args: name, tag, color, [leader]
|
||||
}
|
||||
class TeamDeleteSubCommand {
|
||||
perm: crcore.team.delete
|
||||
args: <team>
|
||||
}
|
||||
class TeamSetLeaderSubCommand {
|
||||
perm: crcore.team.setleader
|
||||
args: <team> <player>
|
||||
}
|
||||
class TeamScoreSubCommand {
|
||||
perm: crcore.team.score
|
||||
args: <team> <name> <add|set> <value>
|
||||
}
|
||||
class TeamAddSubCommand {
|
||||
perm: crcore.team.add
|
||||
args: <team> <player>
|
||||
}
|
||||
class TeamRemoveSubCommand {
|
||||
perm: crcore.team.remove
|
||||
args: <team> <player>
|
||||
}
|
||||
class TeamTransferSubCommand {
|
||||
perm: crcore.team.transfer
|
||||
args: <team> <player>
|
||||
}
|
||||
class TeamVisibilitySubCommand {
|
||||
perm: crcore.team.visibility
|
||||
args: <team> <vis>
|
||||
}
|
||||
class TeamSetSpawnSubCommand {
|
||||
perm: crcore.team.setspawn
|
||||
args: <team>
|
||||
playerOnly
|
||||
}
|
||||
}
|
||||
|
||||
' ─── PLAYER commands ───
|
||||
package "player" <<Rectangle>> {
|
||||
class TeamJoinSubCommand {
|
||||
perm: crcore.team.join
|
||||
args: <team>
|
||||
}
|
||||
class TeamLeaveSubCommand {
|
||||
perm: crcore.team.leave
|
||||
}
|
||||
class TeamInfoSubCommand {
|
||||
perm: crcore.team.info
|
||||
args: [team]
|
||||
}
|
||||
class TeamListSubCommand {
|
||||
perm: crcore.team.list
|
||||
}
|
||||
class TeamTopSubCommand {
|
||||
perm: crcore.team.top
|
||||
args: [score]
|
||||
}
|
||||
}
|
||||
|
||||
TeamCreateSubCommand --|> SubCommand
|
||||
TeamDeleteSubCommand --|> SubCommand
|
||||
TeamSetLeaderSubCommand --|> SubCommand
|
||||
TeamScoreSubCommand --|> SubCommand
|
||||
TeamAddSubCommand --|> SubCommand
|
||||
TeamRemoveSubCommand --|> SubCommand
|
||||
TeamTransferSubCommand --|> SubCommand
|
||||
TeamVisibilitySubCommand --|> SubCommand
|
||||
TeamSetSpawnSubCommand --|> SubCommand
|
||||
TeamJoinSubCommand --|> SubCommand
|
||||
TeamLeaveSubCommand --|> SubCommand
|
||||
TeamInfoSubCommand --|> SubCommand
|
||||
TeamListSubCommand --|> SubCommand
|
||||
TeamTopSubCommand --|> SubCommand
|
||||
|
||||
CoreCommand "1" *-- "1" TeamGroupSubCommand : contains
|
||||
TeamGroupSubCommand "1" *-- "14" SubCommand : contains
|
||||
}
|
||||
}
|
||||
|
||||
note bottom of TeamGroupSubCommand
|
||||
Le rôle LEADER reste dans le modèle Team
|
||||
(utilisable par les game plugins via l'API)
|
||||
mais n'accorde aucun privilège de commande
|
||||
dans le set par défaut.
|
||||
|
||||
Override d'une feuille :
|
||||
core.getCoreCommand()
|
||||
.findSubCommand("team")
|
||||
.replaceSubCommand("create",
|
||||
new MyCreate(svc));
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user