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,63 @@
|
||||
@startuml messages-class-diagram
|
||||
title CR-Core — Messages service (class diagram)
|
||||
|
||||
skinparam classAttributeIconSize 0
|
||||
hide empty members
|
||||
|
||||
package "fr.luc.crcore.util.message" {
|
||||
|
||||
interface MessagesService {
|
||||
+ get(key, placeholderPairs...): String
|
||||
+ raw(key): String
|
||||
+ has(key): boolean
|
||||
+ set(key, template): void
|
||||
+ reload(): void
|
||||
+ loadAdditional(resourceName): void
|
||||
+ setApplyColorCodes(enabled): void
|
||||
+ isApplyColorCodes(): boolean
|
||||
+ getUserFile(): File
|
||||
}
|
||||
|
||||
class YamlMessagesService {
|
||||
- plugin: JavaPlugin
|
||||
- defaults: Map<String, String> ' in-memory (jar resource)
|
||||
- messages: Map<String, String> ' effective (defaults + user file)
|
||||
- userFileName: String ' <plugin>-messages.yml
|
||||
- userFile: File
|
||||
- applyColorCodes: boolean
|
||||
--
|
||||
+ YamlMessagesService(plugin: JavaPlugin)
|
||||
--
|
||||
- loadDefaultsFromResource(): void ' charge crcore-messages.yml (jar)
|
||||
- ensureUserFile(): void ' copie template si absent
|
||||
- rebuildEffectiveMessages(): void ' defaults + user file
|
||||
- {static} flatten(section, prefix, out): void
|
||||
}
|
||||
|
||||
YamlMessagesService ..|> MessagesService
|
||||
}
|
||||
|
||||
package "fr.luc.crcore" {
|
||||
class CRCore {
|
||||
+ messages(): MessagesService
|
||||
# buildMessagesService(): MessagesService ' override point
|
||||
}
|
||||
CRCore "1" *-- "1" MessagesService : owns
|
||||
}
|
||||
|
||||
note bottom of YamlMessagesService
|
||||
Modèle "un seul fichier par plugin" :
|
||||
|
||||
Sources en mémoire (la 2e écrase la 1ère sur clés communes) :
|
||||
1. crcore-messages.yml ← jar (toujours présent, fallback)
|
||||
2. <plugin>-messages.yml ← dataFolder (édité par l'admin)
|
||||
|
||||
Création du fichier user au 1er boot :
|
||||
Priorité 1 : ressource du plugin de jeu sous le même nom
|
||||
Priorité 2 : copie des defaults CR-Core
|
||||
|
||||
Placeholders : {name} via varargs key/value
|
||||
Codes couleur : &a → §a (toggle)
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user