diff --git a/docs/decisions.md b/docs/decisions.md index e2b5e46..dcb9bc1 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -367,6 +367,70 @@ Format léger : une décision = un titre + contexte + choix + raison. bases existantes, ALTER TABLE manuel ou suppression du fichier (les bases d'event sont jetables). +## 2026-06-10 — Réorganisation : `util/` (toujours) vs `features/` (opt-in) + +- **Choix** : séparation nette en deux couches : + - `fr.luc.crcore.util.*` — couche **utilitaire**, toujours active : common, + command framework, database, message, broadcast, gui, placeholder. + - `fr.luc.crcore.features.*` — couche **features**, opt-in : team, player. + - `fr.luc.crcore.builtin.*` — les commandes top-level CoreCommand + + CoreReloadSubCommand (pas un util, pas une feature, mais le routing + global). +- **Renames de FQN** (importer côté plugin de jeu si on les utilise) : + - `fr.luc.crcore.common.*` → `fr.luc.crcore.util.common.*` + - `fr.luc.crcore.command.*` → `fr.luc.crcore.util.command.*` + (le framework — Command, BaseCommand, SubCommand, ArgumentType…) + - `fr.luc.crcore.command.builtin.team.*` + → `fr.luc.crcore.features.team.command.*` + (les 14+ Team*SubCommand) + - `fr.luc.crcore.command.builtin.CoreCommand` / `CoreReloadSubCommand` + → `fr.luc.crcore.builtin.*` + - `fr.luc.crcore.database.*` → `fr.luc.crcore.util.database.*` + - `fr.luc.crcore.message.*` → `fr.luc.crcore.util.message.*` + - `fr.luc.crcore.broadcast.*` → `fr.luc.crcore.util.broadcast.*` + - `fr.luc.crcore.gui.*` → `fr.luc.crcore.util.gui.*` + - `fr.luc.crcore.placeholder.*` → `fr.luc.crcore.util.placeholder.*` + - `fr.luc.crcore.team.*` → `fr.luc.crcore.features.team.*` + (et sous-packages event/exception/impl/config) + - `fr.luc.crcore.player.*` → `fr.luc.crcore.features.player.*` +- **Raison** : prépare la modularisation à long terme. Chaque feature est + isolée dans son sous-package `features//` et peut éventuellement + être extraite en module Maven séparé plus tard. Les utils sont + partagés. Le top-level reste minimal (CRCore, CRCoreConfig, builtin). + +## 2026-06-10 — Setup modulaire via `CRCoreConfig.setupX()` + +- **Choix** : les features sont désormais **opt-in**. Par défaut une + instance de `CRCoreConfig` n'active **aucune** feature ; le plugin de + jeu opt-in via : + - `setupTeams()` — active team service, repo, config + GUI, sous-cmds + - `setupPlayers()` — active player profile service + repo + - `setupPlaceholders()` — active la hook PAPI (no-op si PAPI absent) + - `setupAll()` — raccourci, active tout +- **Comportement quand off** : les getters de service (ex. + `core.getTeamService()`) lèvent `IllegalStateException` avec un + message explicite. Les commandes built-in correspondantes ne sont + simplement pas enregistrées (ex. `/core team` n'existe pas si teams + off). +- **Util toujours actif** : messages, broadcasts, GUI framework, command + framework, database sont systématiquement chargés. C'est la couche + infrastructure que les features et les game plugins consomment. +- **Listeners Bukkit toujours register** : `CRCoreBroadcastListener` et + `GuiListener` sont register unconditionnellement. Si aucune feature ne + tire d'event, ils sont idle — aucun coût. +- **Snippet d'usage** : + ```java + this.core = new CRCore(this, + new CRCoreConfig().setupAll()).enable(); + // ou granular : + this.core = new CRCore(this, + new CRCoreConfig().setupTeams()).enable(); + ``` +- **Raison** : un game plugin qui n'a pas besoin des teams ne charge + pas le service ; pas de fichier `-team-config.yml` créé, pas + de table `crcore_teams` créée, pas de sous-commande `/core team`. La + surface est minimale par défaut. + ## 2026-06-10 — Settings d'équipe : cascade per-team → global → default + GUI - **Choix** : nouveau module `fr.luc.crcore.team.config` avec : diff --git a/docs/diagrams/broadcasts-class-diagram.puml b/docs/diagrams/broadcasts-class-diagram.puml index 2528a33..859dd3e 100644 --- a/docs/diagrams/broadcasts-class-diagram.puml +++ b/docs/diagrams/broadcasts-class-diagram.puml @@ -4,7 +4,7 @@ title CR-Core — Broadcast service (class diagram) skinparam classAttributeIconSize 0 hide empty members -package "fr.luc.crcore.broadcast" { +package "fr.luc.crcore.util.broadcast" { enum BroadcastAudience { NONE @@ -54,7 +54,7 @@ package "fr.luc.crcore.broadcast" { } CRCoreBroadcastListener ..|> "org.bukkit.event.Listener" - package "fr.luc.crcore.broadcast.impl" { + package "fr.luc.crcore.util.broadcast.impl" { class YamlBroadcastService { - plugin: JavaPlugin - messages: MessagesService @@ -73,7 +73,7 @@ package "fr.luc.crcore.broadcast" { BroadcastService ..> BroadcastContext : consumes BroadcastContext --> BroadcastAudience - YamlBroadcastService --> "fr.luc.crcore.message.MessagesService" : reads templates + YamlBroadcastService --> "fr.luc.crcore.util.message.MessagesService" : reads templates CRCoreBroadcastListener --> BroadcastService : delegates CRCoreBroadcastListener ..> BroadcastContext : builds } diff --git a/docs/diagrams/builtin-commands-diagram.puml b/docs/diagrams/builtin-commands-diagram.puml index 4d83dec..7cc0c3c 100644 --- a/docs/diagrams/builtin-commands-diagram.puml +++ b/docs/diagrams/builtin-commands-diagram.puml @@ -4,17 +4,17 @@ title CR-Core — Default /core team commands (admin / joueur) skinparam classAttributeIconSize 0 hide empty members -package "fr.luc.crcore.command" { +package "fr.luc.crcore.util.command" { abstract class BaseCommand abstract class SubCommand } -package "fr.luc.crcore.command.builtin" { +package "fr.luc.crcore.builtin" { class CoreCommand CoreCommand --|> BaseCommand - package "fr.luc.crcore.command.builtin.team" { + package "fr.luc.crcore.features.team.command" { class TeamGroupSubCommand { + TeamGroupSubCommand(service) diff --git a/docs/diagrams/command-class-diagram.puml b/docs/diagrams/command-class-diagram.puml index 02602d9..cb6a8a7 100644 --- a/docs/diagrams/command-class-diagram.puml +++ b/docs/diagrams/command-class-diagram.puml @@ -4,7 +4,7 @@ title CR-Core — Command framework (class diagram, nested sub-commands) skinparam classAttributeIconSize 0 hide empty members -package "fr.luc.crcore.command" { +package "fr.luc.crcore.util.command" { interface Command { + getName(): String diff --git a/docs/diagrams/database-diagram.puml b/docs/diagrams/database-diagram.puml index a10bbff..419e429 100644 --- a/docs/diagrams/database-diagram.puml +++ b/docs/diagrams/database-diagram.puml @@ -4,7 +4,7 @@ title CR-Core — Database (SQLite wrapper) skinparam classAttributeIconSize 0 hide empty members -package "fr.luc.crcore.database" { +package "fr.luc.crcore.util.database" { class Database { - connection: Connection diff --git a/docs/diagrams/events-diagram.puml b/docs/diagrams/events-diagram.puml index 45ed307..ac2e437 100644 --- a/docs/diagrams/events-diagram.puml +++ b/docs/diagrams/events-diagram.puml @@ -8,7 +8,7 @@ package "org.bukkit.event" { abstract class Event } -package "fr.luc.crcore.team.event" { +package "fr.luc.crcore.features.team.event" { abstract class TeamEvent { - team: Team @@ -57,7 +57,7 @@ package "fr.luc.crcore.team.event" { TeamSpawnPointChangeEvent --|> TeamEvent } -package "fr.luc.crcore.player.event" { +package "fr.luc.crcore.features.player.event" { abstract class PlayerProfileEvent { - profile: PlayerProfile diff --git a/docs/diagrams/gui-class-diagram.puml b/docs/diagrams/gui-class-diagram.puml index becc0dd..f3c16c2 100644 --- a/docs/diagrams/gui-class-diagram.puml +++ b/docs/diagrams/gui-class-diagram.puml @@ -4,7 +4,7 @@ title CR-Core — GUI framework (class diagram, réutilisable) skinparam classAttributeIconSize 0 hide empty members -package "fr.luc.crcore.gui" { +package "fr.luc.crcore.util.gui" { abstract class AbstractInventoryGui { - inventory: Inventory diff --git a/docs/diagrams/messages-class-diagram.puml b/docs/diagrams/messages-class-diagram.puml index d26ce25..c448ea8 100644 --- a/docs/diagrams/messages-class-diagram.puml +++ b/docs/diagrams/messages-class-diagram.puml @@ -4,7 +4,7 @@ title CR-Core — Messages service (class diagram) skinparam classAttributeIconSize 0 hide empty members -package "fr.luc.crcore.message" { +package "fr.luc.crcore.util.message" { interface MessagesService { + get(key, placeholderPairs...): String diff --git a/docs/diagrams/player-class-diagram.puml b/docs/diagrams/player-class-diagram.puml index 1f6da4f..c6ea63f 100644 --- a/docs/diagrams/player-class-diagram.puml +++ b/docs/diagrams/player-class-diagram.puml @@ -6,7 +6,7 @@ hide empty members ' === Common abstractions === -package "fr.luc.crcore.common" { +package "fr.luc.crcore.util.common" { interface Identifiable { + getId(): UUID @@ -40,7 +40,7 @@ package "fr.luc.crcore.common" { ' === Player domain === -package "fr.luc.crcore.player" { +package "fr.luc.crcore.features.player" { class PlayerProfile { - scores: Map diff --git a/docs/diagrams/team-class-diagram.puml b/docs/diagrams/team-class-diagram.puml index bcbae73..3177b44 100644 --- a/docs/diagrams/team-class-diagram.puml +++ b/docs/diagrams/team-class-diagram.puml @@ -6,7 +6,7 @@ hide empty members ' === Common abstractions === -package "fr.luc.crcore.common" { +package "fr.luc.crcore.util.common" { interface Identifiable { + getId(): UUID @@ -47,7 +47,7 @@ package "fr.luc.crcore.common" { ' === Team domain === -package "fr.luc.crcore.team" { +package "fr.luc.crcore.features.team" { enum TeamRole { LEADER diff --git a/docs/diagrams/team-config-class-diagram.puml b/docs/diagrams/team-config-class-diagram.puml index b5dbc84..bf3fddf 100644 --- a/docs/diagrams/team-config-class-diagram.puml +++ b/docs/diagrams/team-config-class-diagram.puml @@ -4,7 +4,7 @@ title CR-Core — Team config (class diagram, cascade per-team → global → de skinparam classAttributeIconSize 0 hide empty members -package "fr.luc.crcore.team.config" { +package "fr.luc.crcore.features.team.config" { class "TeamSetting" as TeamSetting <> { - key: String @@ -60,7 +60,7 @@ package "fr.luc.crcore.team.config" { + getGlobalFileName(): Optional } - package "fr.luc.crcore.team.config.impl" { + package "fr.luc.crcore.features.team.config.impl" { class YamlTeamConfigService { - plugin: JavaPlugin - teamRepository: TeamRepository @@ -77,14 +77,14 @@ package "fr.luc.crcore.team.config" { TeamConfigService ..> TeamSetting : reads/writes } -package "fr.luc.crcore.team" { +package "fr.luc.crcore.features.team" { class Team { - settings: Map + getSettings(): Map } } -package "fr.luc.crcore.team.config.gui" { +package "fr.luc.crcore.features.team.config.gui" { abstract class AbstractSettingsGui { - rebuild() : peint la grille # {abstract} getCurrentValue(setting): T @@ -96,14 +96,14 @@ package "fr.luc.crcore.team.config.gui" { class TeamSettingsGui GlobalSettingsGui --|> AbstractSettingsGui TeamSettingsGui --|> AbstractSettingsGui - AbstractSettingsGui --|> "fr.luc.crcore.gui.AbstractInventoryGui" + AbstractSettingsGui --|> "fr.luc.crcore.util.gui.AbstractInventoryGui" GlobalSettingsGui --> TeamConfigService TeamSettingsGui --> TeamConfigService TeamSettingsGui --> Team } -YamlTeamConfigService --> "fr.luc.crcore.team.TeamRepository" : persists per-team via save() +YamlTeamConfigService --> "fr.luc.crcore.features.team.TeamRepository" : persists per-team via save() TeamConfigService ..> Team : reads/writes settings map note bottom of YamlTeamConfigService diff --git a/docs/setup.md b/docs/setup.md index 602bdd4..843798b 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -66,7 +66,12 @@ api-version: 1.16 > Dans ce cas, CR-Core détecte la commande déclarée et s'y branche > normalement via `setExecutor` (pas d'enregistrement dynamique). -### Code minimal +### Code minimal — setup modulaire + +> ⚠️ **Important** : depuis 2026-06-10, les features (teams, players, +> placeholders) sont **opt-in** via `CRCoreConfig.setupX()`. Une instance +> `new CRCoreConfig()` n'active rien par défaut — il faut appeler +> `setupAll()` ou les `setupX()` individuels. ```java public class MyGamePlugin extends JavaPlugin { @@ -75,13 +80,27 @@ public class MyGamePlugin extends JavaPlugin { @Override public void onEnable() { - // 1 ligne = SQLite + services + /core team ... opérationnels - this.core = new CRCore(this).enable(); + // OPTION A — tout activer en une ligne (teams + players + placeholders) + this.core = new CRCore(this, new CRCoreConfig().setupAll()).enable(); - // Listener custom sur les events team + // OPTION B — granularité, n'activer que ce qu'on veut + // this.core = new CRCore(this, new CRCoreConfig() + // .setupTeams() + // .setupPlaceholders()) // pas de players + // .enable(); + + // OPTION C — par défaut + options + // this.core = new CRCore(this, new CRCoreConfig() + // .withSqliteFile("mygame.db") + // .withCommandName("game") + // .setupTeams()) + // .enable(); + + // Listener custom sur les events team (nécessite setupTeams) getServer().getPluginManager().registerEvents(new MyTeamListener(), this); // Table custom pour stocker des données spécifiques au jeu + // (database util est toujours disponible) core.getDatabase().table("my_kills") .ifNotExists() .column("player_id", ColumnType.UUID).primaryKey() @@ -168,101 +187,80 @@ CitesPlugin/ # dossier IntelliJ (renommer plus t │ ├── decisions.md │ └── diagrams/*.puml └── src/main/java/fr/luc/crcore/ - ├── CRCore.java # bootstrap orchestrator - ├── CRCoreConfig.java # config (sqlite, command name, …) - ├── common/ - │ ├── Identifiable.java - │ ├── Named.java - │ ├── ScoreHolder.java # contrat partagé Team + PlayerProfile - │ ├── AbstractEntity.java - │ └── Repository.java - ├── database/ # wrapper SQLite - │ ├── Database.java - │ ├── TableBuilder.java - │ ├── ColumnType.java - │ ├── RowMapper.java - │ └── DatabaseException.java - ├── command/ # framework - │ ├── Command.java (interface) - │ ├── AbstractCommand.java # base partagée, nested sub-commands - │ ├── BaseCommand.java # top-level Bukkit-aware - │ ├── SubCommand.java - │ ├── CommandContext.java - │ ├── CommandResult.java - │ ├── CommandException.java - │ ├── ArgumentType.java - │ ├── ArgumentTypes.java - │ ├── ArgumentDef.java # package-private - │ └── builtin/ # commandes prêtes à l'emploi - │ ├── CoreCommand.java # /core - │ └── team/ - │ ├── TeamGroupSubCommand.java # /core team (container) - │ ├── TeamArgumentTypes.java # ArgumentType avec tab-complete - │ ├── TeamCreateSubCommand.java # /core team create - │ ├── TeamDeleteSubCommand.java # /core team delete - │ ├── TeamAddSubCommand.java # /core team add - │ ├── TeamRemoveSubCommand.java # /core team remove - │ ├── TeamJoinSubCommand.java # /core team join - │ ├── TeamLeaveSubCommand.java # /core team leave - │ ├── TeamInfoSubCommand.java # /core team info - │ ├── TeamListSubCommand.java # /core team list - │ ├── TeamTransferSubCommand.java # /core team transfer - │ ├── TeamVisibilitySubCommand.java # /core team visibility - │ ├── TeamScoreSubCommand.java # /core team score (admin) - │ ├── TeamTopSubCommand.java # /core team top - │ └── TeamSetSpawnSubCommand.java # /core team setspawn - ├── message/ # service de messages YAML - │ ├── MessagesService.java # interface (contrat public) - │ └── impl/ - │ └── YamlMessagesService.java # impl par défaut - ├── team/ # contrats + entités au top - │ ├── Team.java # entité - │ ├── TeamMember.java # entité - │ ├── TeamRole.java # enum - │ ├── TeamColor.java # enum - │ ├── TeamVisibility.java # enum - │ ├── TeamRanking.java # value - │ ├── TeamService.java # interface - │ ├── TeamRepository.java # interface - │ ├── event/ # Bukkit events team - │ │ ├── TeamEvent.java # base - │ │ ├── TeamCreateEvent.java - │ │ ├── TeamDissolveEvent.java - │ │ ├── TeamMemberAddEvent.java - │ │ ├── TeamMemberRemoveEvent.java - │ │ ├── PlayerJoinTeamEvent.java - │ │ ├── TeamLeadershipTransferEvent.java - │ │ ├── TeamVisibilityChangeEvent.java - │ │ ├── TeamScoreChangeEvent.java - │ │ └── TeamSpawnPointChangeEvent.java - │ ├── exception/ # hiérarchie d'exceptions team - │ │ ├── TeamException.java # base - │ │ ├── TeamAlreadyExistsException.java - │ │ ├── TeamNotFoundException.java - │ │ └── TeamAccessException.java - │ └── impl/ # implémentations swappables - │ ├── TeamServiceImpl.java # service de base - │ ├── BukkitEventFiringTeamServiceImpl.java # impl par défaut - │ ├── InMemoryTeamRepository.java # repo en mémoire - │ └── SqliteTeamRepository.java # repo SQLite write-through - └── player/ # contrats + entités au top - ├── PlayerProfile.java # entité - ├── PlayerRanking.java # value - ├── PlayerProfileService.java # interface - ├── PlayerProfileRepository.java # interface - ├── event/ # Bukkit events player - │ ├── PlayerProfileEvent.java - │ ├── PlayerProfileCreateEvent.java - │ ├── PlayerProfileDeleteEvent.java - │ └── PlayerScoreChangeEvent.java - ├── exception/ - │ ├── PlayerException.java - │ └── PlayerProfileNotFoundException.java - └── impl/ - ├── PlayerProfileServiceImpl.java - ├── BukkitEventFiringPlayerProfileServiceImpl.java - ├── InMemoryPlayerProfileRepository.java - └── SqlitePlayerProfileRepository.java + ├── CRCore.java # bootstrap (setupAll/setupTeams/...) + ├── CRCoreConfig.java # config builder + flags features + ├── builtin/ # commandes top-level (toutes features) + │ ├── CoreCommand.java # /core + │ └── CoreReloadSubCommand.java # /core reload + ├── util/ # ◆ couche util — toujours active ◆ + │ ├── common/ # abstractions partagées + │ │ ├── Identifiable.java + │ │ ├── Named.java + │ │ ├── ScoreHolder.java + │ │ ├── AbstractEntity.java + │ │ └── Repository.java + │ ├── database/ # wrapper SQLite générique + │ │ ├── Database.java + │ │ ├── TableBuilder.java + │ │ ├── ColumnType.java + │ │ ├── RowMapper.java + │ │ └── DatabaseException.java + │ ├── command/ # framework de commandes + │ │ ├── Command.java (interface) + │ │ ├── AbstractCommand.java + │ │ ├── BaseCommand.java + │ │ ├── SubCommand.java + │ │ ├── CommandContext.java + │ │ ├── CommandResult.java + │ │ ├── CommandException.java + │ │ ├── ArgumentType.java + │ │ ├── ArgumentTypes.java + │ │ └── ArgumentDef.java (package-private) + │ ├── message/ # service messages YAML + │ │ ├── MessagesService.java + │ │ └── impl/YamlMessagesService.java + │ ├── broadcast/ # service broadcasts YAML + listener + │ │ ├── BroadcastService.java + │ │ ├── BroadcastAudience.java + │ │ ├── BroadcastContext.java + │ │ ├── CRCoreBroadcastListener.java + │ │ └── impl/YamlBroadcastService.java + │ ├── gui/ # framework GUI (InventoryHolder) + │ │ ├── AbstractInventoryGui.java + │ │ ├── GuiClickHandler.java + │ │ ├── GuiListener.java + │ │ └── GuiItems.java + │ └── placeholder/ # PAPI expansion (opt-in) + │ └── CRCorePlaceholderExpansion.java + └── features/ # ◆ features opt-in via setupX() ◆ + ├── team/ (setupTeams()) + │ ├── Team.java, TeamMember, enums, TeamRanking + │ ├── TeamService.java (interface) + │ ├── TeamRepository.java (interface) + │ ├── event/ (9 events Bukkit) + │ ├── exception/ (4 exceptions) + │ ├── impl/ (TeamServiceImpl, BukkitEventFiring*, InMemory*, Sqlite*) + │ ├── config/ (settings typés) + │ │ ├── TeamSetting.java + │ │ ├── TeamSettings.java (registry) + │ │ ├── TeamConfigService.java + │ │ ├── impl/YamlTeamConfigService.java + │ │ └── gui/ (Global + TeamSettingsGui) + │ │ ├── AbstractSettingsGui.java + │ │ ├── GlobalSettingsGui.java + │ │ └── TeamSettingsGui.java + │ └── command/ (14 sous-commandes /core team) + │ ├── TeamGroupSubCommand.java + │ ├── TeamArgumentTypes.java + │ └── Team*SubCommand.java + └── player/ (setupPlayers()) + ├── PlayerProfile.java + ├── PlayerRanking.java + ├── PlayerProfileService.java (interface) + ├── PlayerProfileRepository.java (interface) + ├── event/ (3 events) + ├── exception/ (2 exceptions) + └── impl/ (services + repositories) ``` ## Fichiers de config générés au premier `enable()` diff --git a/src/main/java/fr/luc/crcore/CRCore.java b/src/main/java/fr/luc/crcore/CRCore.java index d55af67..61d6c3c 100644 --- a/src/main/java/fr/luc/crcore/CRCore.java +++ b/src/main/java/fr/luc/crcore/CRCore.java @@ -1,25 +1,25 @@ package fr.luc.crcore; -import fr.luc.crcore.broadcast.BroadcastService; -import fr.luc.crcore.broadcast.CRCoreBroadcastListener; -import fr.luc.crcore.broadcast.impl.YamlBroadcastService; -import fr.luc.crcore.command.builtin.CoreCommand; -import fr.luc.crcore.database.Database; -import fr.luc.crcore.gui.GuiListener; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.message.impl.YamlMessagesService; -import fr.luc.crcore.team.config.TeamConfigService; -import fr.luc.crcore.team.config.impl.YamlTeamConfigService; -import fr.luc.crcore.player.impl.BukkitEventFiringPlayerProfileServiceImpl; -import fr.luc.crcore.player.impl.InMemoryPlayerProfileRepository; -import fr.luc.crcore.player.PlayerProfileRepository; -import fr.luc.crcore.player.PlayerProfileService; -import fr.luc.crcore.player.impl.SqlitePlayerProfileRepository; -import fr.luc.crcore.team.impl.BukkitEventFiringTeamServiceImpl; -import fr.luc.crcore.team.impl.InMemoryTeamRepository; -import fr.luc.crcore.team.impl.SqliteTeamRepository; -import fr.luc.crcore.team.TeamRepository; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.builtin.CoreCommand; +import fr.luc.crcore.features.player.PlayerProfileRepository; +import fr.luc.crcore.features.player.PlayerProfileService; +import fr.luc.crcore.features.player.impl.BukkitEventFiringPlayerProfileServiceImpl; +import fr.luc.crcore.features.player.impl.InMemoryPlayerProfileRepository; +import fr.luc.crcore.features.player.impl.SqlitePlayerProfileRepository; +import fr.luc.crcore.features.team.TeamRepository; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.config.TeamConfigService; +import fr.luc.crcore.features.team.config.impl.YamlTeamConfigService; +import fr.luc.crcore.features.team.impl.BukkitEventFiringTeamServiceImpl; +import fr.luc.crcore.features.team.impl.InMemoryTeamRepository; +import fr.luc.crcore.features.team.impl.SqliteTeamRepository; +import fr.luc.crcore.util.broadcast.BroadcastService; +import fr.luc.crcore.util.broadcast.CRCoreBroadcastListener; +import fr.luc.crcore.util.broadcast.impl.YamlBroadcastService; +import fr.luc.crcore.util.database.Database; +import fr.luc.crcore.util.gui.GuiListener; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.util.message.impl.YamlMessagesService; import org.bukkit.Bukkit; import org.bukkit.command.CommandMap; import org.bukkit.command.CommandSender; @@ -35,15 +35,18 @@ import java.util.Objects; /** * Point d'entrée unique de CR-Core pour un plugin de jeu downstream. * - *

Instanciée une fois dans {@code onEnable()}, branche en cascade : + *

Instancié une fois dans {@code onEnable()}, branche en cascade : *

    - *
  1. la base SQLite (dans le dataFolder du plugin),
  2. - *
  3. les repositories (SQLite ou in-memory selon {@link CRCoreConfig}),
  4. - *
  5. les services team + player avec fire d'évènements Bukkit,
  6. - *
  7. la commande {@code /core} avec tous ses sous-commandes par défaut.
  8. + *
  9. la base SQLite (toujours, si activée),
  10. + *
  11. les services util (messages, broadcasts, GUI) — toujours,
  12. + *
  13. les features activées via {@link CRCoreConfig#setupTeams()}, + * {@link CRCoreConfig#setupPlayers()}, + * {@link CRCoreConfig#setupPlaceholders()} (rien par défaut),
  14. + *
  15. la commande {@code /core} avec ses sous-commandes (uniquement + * celles des features actives).
  16. *
* - *

Utilisation minimale côté plugin de jeu

+ *

Utilisation côté plugin de jeu

*
{@code
  * public class MyGamePlugin extends JavaPlugin {
  *
@@ -51,8 +54,9 @@ import java.util.Objects;
  *
  *     @Override
  *     public void onEnable() {
- *         this.core = new CRCore(this).enable();
- *         // /core team create/delete/add/remove/join/leave/... est prêt
+ *         this.core = new CRCore(this,
+ *                 new CRCoreConfig().setupAll())   // toutes les features
+ *                 .enable();
  *     }
  *
  *     @Override
@@ -62,18 +66,13 @@ import java.util.Objects;
  * }
  * }
* - *

Le plugin de jeu doit avoir déclaré la commande dans son {@code plugin.yml} : - *

{@code
- * commands:
- *   core:
- *     description: Commandes CR-Core
- * }
+ *

Voir {@link CRCoreConfig} pour activer les features granulairement. * *

Override

- * Tout est accessible via les getters : {@link #getTeamService()}, - * {@link #getCoreCommand()}, {@link #getDatabase()}, etc. Pour remplacer une - * sous-commande, voir {@link CoreCommand}. Pour remplacer un service complet, - * sous-classer {@code CRCore} et override {@link #buildTeamService}. + * Tout est accessible via les getters (qui lèvent + * {@link IllegalStateException} si la feature n'est pas activée). Pour + * remplacer un service, sous-classer {@code CRCore} et override + * {@link #buildTeamService}, {@link #buildPlayerProfileService}, etc. */ public class CRCore { @@ -81,17 +80,21 @@ public class CRCore { private final CRCoreConfig config; private Database database; - private TeamRepository teamRepository; - private TeamService teamService; - private PlayerProfileRepository playerProfileRepository; - private PlayerProfileService playerProfileService; + // Util — toujours initialisés private MessagesService messages; private BroadcastService broadcasts; + // Features team + private TeamRepository teamRepository; + private TeamService teamService; private TeamConfigService teamConfig; + // Features player + private PlayerProfileRepository playerProfileRepository; + private PlayerProfileService playerProfileService; + // Command routing private CoreCommand coreCommand; private boolean enabled = false; - /** Construit CR-Core avec la config par défaut (SQLite activée, commande "core"). */ + /** Construit CR-Core avec la config par défaut (rien d'activé — opt-in via setupX()). */ public CRCore(JavaPlugin plugin) { this(plugin, new CRCoreConfig()); } @@ -102,56 +105,68 @@ public class CRCore { } /** - * Branche tout : ouvre la DB, instancie les services, enregistre la - * commande. Idempotent : un second appel est no-op. + * Branche tout selon la config. Idempotent : un second appel est no-op. * * @return {@code this} pour chaîner. */ public CRCore enable() { if (enabled) return this; + + // ---- 1. Database (util, toujours si setupAll/X) ---- if (config.isSqliteEnabled()) { File dbFile = new File(plugin.getDataFolder(), config.getSqliteFilename()); if (!dbFile.getParentFile().exists() && !dbFile.getParentFile().mkdirs()) { plugin.getLogger().warning("Impossible de créer le dataFolder : " + dbFile.getParentFile()); } this.database = new Database(dbFile); - this.teamRepository = new SqliteTeamRepository(database); - this.playerProfileRepository = new SqlitePlayerProfileRepository(database); - } else { - this.teamRepository = new InMemoryTeamRepository(); - this.playerProfileRepository = new InMemoryPlayerProfileRepository(); } - this.teamService = buildTeamService(teamRepository); - this.playerProfileService = buildPlayerProfileService(playerProfileRepository); - + // ---- 2. Util services (toujours) ---- this.messages = buildMessagesService(); this.broadcasts = buildBroadcastService(messages); - this.teamConfig = buildTeamConfigService(teamRepository); - // Listeners Bukkit : broadcasts (events CR-Core) + GUI (inventory clicks/close). + // ---- 3. Features (opt-in) ---- + if (config.isTeamsEnabled()) { + this.teamRepository = (database != null) + ? new SqliteTeamRepository(database) + : new InMemoryTeamRepository(); + this.teamService = buildTeamService(teamRepository); + this.teamConfig = buildTeamConfigService(teamRepository); + } + if (config.isPlayersEnabled()) { + this.playerProfileRepository = (database != null) + ? new SqlitePlayerProfileRepository(database) + : new InMemoryPlayerProfileRepository(); + this.playerProfileService = buildPlayerProfileService(playerProfileRepository); + } + + // ---- 4. Listeners Bukkit ---- + // Broadcast listener : écoute les events team + player. S'il n'y a aucune + // feature qui les tire, il sera idle — pas de mal. new CRCoreBroadcastListener(broadcasts).registerOn(plugin); + // GUI listener : toujours, le framework GUI est util. new GuiListener().registerOn(plugin); - this.coreCommand = buildCoreCommand(teamService, playerProfileService, messages, broadcasts, teamConfig); + // ---- 5. Command routing ---- + this.coreCommand = buildCoreCommand(); registerCommand(); - registerPlaceholderHook(); + // ---- 6. PlaceholderAPI (opt-in + conditionnel PAPI installé) ---- + if (config.isPlaceholdersEnabled()) { + registerPlaceholderHook(); + } - plugin.getLogger().info("CR-Core activé."); + plugin.getLogger().info("CR-Core activé" + + " (teams=" + config.isTeamsEnabled() + + ", players=" + config.isPlayersEnabled() + + ", placeholders=" + config.isPlaceholdersEnabled() + ")."); enabled = true; return this; } /** - * Enregistre l'expansion PlaceholderAPI {@code %crcore_*%} si le plugin - * PAPI est installé sur le serveur. Si absent, no-op silencieux — la - * lib reste fonctionnelle sans. - * - *

Le chargement de la classe d'expansion est différé via une indirection - * (méthode {@code doRegisterPlaceholderHook}) pour que le bytecode - * référençant {@code me.clip.placeholderapi.*} ne soit pas vérifié si - * PAPI n'est pas présent. + * Enregistre l'expansion PlaceholderAPI {@code %crcore_*%} si PAPI est + * installé. No-op silencieux sinon. */ protected void registerPlaceholderHook() { if (plugin.getServer().getPluginManager().getPlugin("PlaceholderAPI") == null) { @@ -166,9 +181,9 @@ public class CRCore { } } - /** Indirection pour différer le chargement des classes PAPI (cf. {@link #registerPlaceholderHook}). */ + /** Indirection pour différer le chargement des classes PAPI. */ private void doRegisterPlaceholderHook() { - new fr.luc.crcore.placeholder.CRCorePlaceholderExpansion( + new fr.luc.crcore.util.placeholder.CRCorePlaceholderExpansion( teamService, playerProfileService, plugin.getDescription().getVersion() ).register(); } @@ -189,53 +204,38 @@ public class CRCore { // ---- Override points ---- - /** Construit le {@link TeamService}. Override pour utiliser une impl custom. */ protected TeamService buildTeamService(TeamRepository repository) { return new BukkitEventFiringTeamServiceImpl(plugin, repository); } - /** Construit le {@link PlayerProfileService}. Override pour une impl custom. */ protected PlayerProfileService buildPlayerProfileService(PlayerProfileRepository repository) { return new BukkitEventFiringPlayerProfileServiceImpl(plugin, repository); } - /** Construit le {@link CoreCommand}. Override pour ajouter des groupes top-level. */ - protected CoreCommand buildCoreCommand(TeamService teamService, - PlayerProfileService playerProfileService, - MessagesService messages, - BroadcastService broadcasts, - TeamConfigService teamConfig) { - return new CoreCommand(teamService, playerProfileService, messages, broadcasts, teamConfig); - } - - /** Construit le {@link TeamConfigService}. Override pour utiliser une impl custom. */ - protected TeamConfigService buildTeamConfigService(TeamRepository repository) { - return new YamlTeamConfigService(plugin, repository); - } - - /** Construit le {@link MessagesService}. Override pour utiliser une impl custom. */ protected MessagesService buildMessagesService() { return new YamlMessagesService(plugin); } - /** Construit le {@link BroadcastService}. Override pour utiliser une impl custom. */ protected BroadcastService buildBroadcastService(MessagesService messages) { return new YamlBroadcastService(plugin, messages); } - /** - * Enregistre {@link #coreCommand} sous le nom configuré, avec fallback - * dynamique. Stratégie : - *

    - *
  1. Si la commande est déclarée dans le {@code plugin.yml} du plugin - * hôte ({@code plugin.getCommand(name)} non null), on s'y branche - * classiquement via {@code setExecutor} / {@code setTabCompleter}.
  2. - *
  3. Sinon, on l'enregistre dynamiquement via le - * {@link CommandMap} interne du serveur (accédé par réflexion sur - * le champ {@code commandMap} de {@code CraftServer}). Le plugin - * hôte n'a alors rien à mettre dans son {@code plugin.yml}.
  4. - *
- */ + protected TeamConfigService buildTeamConfigService(TeamRepository repository) { + return new YamlTeamConfigService(plugin, repository); + } + + /** Construit le {@link CoreCommand} avec les services des features activées. */ + protected CoreCommand buildCoreCommand() { + return new CoreCommand( + config.isTeamsEnabled() ? teamService : null, + config.isPlayersEnabled() ? playerProfileService : null, + messages, + broadcasts, + config.isTeamsEnabled() ? teamConfig : null); + } + + // ---- Command registration (plugin.yml ou CommandMap dynamique) ---- + private void registerCommand() { String name = config.getCommandName(); PluginCommand cmd = plugin.getCommand(name); @@ -247,12 +247,6 @@ public class CRCore { registerDynamicCommand(name); } - /** - * Enregistre la commande sans entrée plugin.yml en passant par le - * {@link CommandMap} interne du serveur. Wrappe le {@link CoreCommand} - * dans une {@link org.bukkit.command.Command} anonyme qui délègue à - * {@code onCommand} / {@code onTabComplete}. - */ private void registerDynamicCommand(String name) { try { CommandMap commandMap = resolveCommandMap(); @@ -278,10 +272,6 @@ public class CRCore { } } - /** - * Récupère le {@link CommandMap} interne du serveur via réflexion sur - * {@code CraftServer.commandMap}. Stable sur Paper 1.16.5. - */ private CommandMap resolveCommandMap() throws ReflectiveOperationException { Field field = Bukkit.getServer().getClass().getDeclaredField("commandMap"); field.setAccessible(true); @@ -292,17 +282,64 @@ public class CRCore { public JavaPlugin getPlugin() { return plugin; } public CRCoreConfig getConfig() { return config; } - public Database getDatabase() { return database; } - public TeamRepository getTeamRepository() { return teamRepository; } - public TeamService getTeamService() { return teamService; } - public PlayerProfileRepository getPlayerProfileRepository() { return playerProfileRepository; } - public PlayerProfileService getPlayerProfileService() { return playerProfileService; } + + public Database getDatabase() { + if (database == null) { + throw new IllegalStateException("Database is disabled (config.withInMemoryStorage())."); + } + return database; + } + public MessagesService getMessages() { return messages; } public MessagesService messages() { return messages; } public BroadcastService getBroadcasts() { return broadcasts; } public BroadcastService broadcasts() { return broadcasts; } - public TeamConfigService getTeamConfig() { return teamConfig; } - public TeamConfigService teamConfig() { return teamConfig; } + + public TeamRepository getTeamRepository() { + requireTeamsEnabled(); + return teamRepository; + } + + public TeamService getTeamService() { + requireTeamsEnabled(); + return teamService; + } + + public TeamConfigService getTeamConfig() { + requireTeamsEnabled(); + return teamConfig; + } + + public TeamConfigService teamConfig() { + return getTeamConfig(); + } + + public PlayerProfileRepository getPlayerProfileRepository() { + requirePlayersEnabled(); + return playerProfileRepository; + } + + public PlayerProfileService getPlayerProfileService() { + requirePlayersEnabled(); + return playerProfileService; + } + public CoreCommand getCoreCommand() { return coreCommand; } public boolean isEnabled() { return enabled; } + + // ---- Guards ---- + + private void requireTeamsEnabled() { + if (!config.isTeamsEnabled()) { + throw new IllegalStateException( + "Teams feature is not enabled — appelez CRCoreConfig.setupTeams() avant enable()."); + } + } + + private void requirePlayersEnabled() { + if (!config.isPlayersEnabled()) { + throw new IllegalStateException( + "Players feature is not enabled — appelez CRCoreConfig.setupPlayers() avant enable()."); + } + } } diff --git a/src/main/java/fr/luc/crcore/CRCoreConfig.java b/src/main/java/fr/luc/crcore/CRCoreConfig.java index ca5c4f8..09cc978 100644 --- a/src/main/java/fr/luc/crcore/CRCoreConfig.java +++ b/src/main/java/fr/luc/crcore/CRCoreConfig.java @@ -1,20 +1,47 @@ package fr.luc.crcore; /** - * Configuration de {@link CRCore} fournie au constructeur. API builder : on - * chaîne les {@code with...} pour modifier les valeurs par défaut. + * Configuration de {@link CRCore} fournie au constructeur. API builder + * fluide. + * + *

Modèle modulaire

+ * + *

Les features CR-Core (teams, players, placeholders PAPI) sont + * opt-in : par défaut aucune n'est activée, seule la couche + * util (messages, broadcasts, GUI framework, command framework, database) + * est chargée. Tu actives explicitement ce dont tu as besoin : * *

{@code
+ * // Tout activer en une ligne :
+ * new CRCore(this, new CRCoreConfig().setupAll()).enable();
+ *
+ * // Ou granularité :
+ * new CRCore(this, new CRCoreConfig()
+ *     .setupTeams()
+ *     .setupPlaceholders()      // sans players
+ *     .withCommandName("game"))
+ *     .enable();
+ *
+ * // Tout par défaut + setups :
  * new CRCore(this, new CRCoreConfig()
  *     .withSqliteFile("mydata.db")
- *     .withCommandName("game"))
+ *     .setupAll())
  *     .enable();
  * }
* - *

Valeurs par défaut : + *

Comportement quand une feature n'est pas activée

+ * + *

Le getter correspondant sur {@link CRCore} (ex. {@code core.getTeamService()}) + * lève {@link IllegalStateException} avec un message explicite, et la + * commande built-in n'est pas enregistrée (ex. pas de {@code /core team} + * si {@code setupTeams()} n'a pas été appelé). + * + *

Valeurs par défaut

+ * *
    - *
  • SQLite activé, fichier {@code crcore.db} dans le dataFolder du plugin
  • + *
  • SQLite activé, fichier {@code crcore.db}
  • *
  • Commande Bukkit racine : {@code core}
  • + *
  • Aucune feature activée (opt-in via {@code setupX()})
  • *
*/ public class CRCoreConfig { @@ -23,6 +50,13 @@ public class CRCoreConfig { private String sqliteFilename = "crcore.db"; private String commandName = "core"; + // ---- Features (opt-in) ---- + private boolean teamsEnabled = false; + private boolean playersEnabled = false; + private boolean placeholdersEnabled = false; + + // ---- Util / infra setters ---- + /** Désactive SQLite — toutes les données vivent en mémoire (perdues au reload/stop). */ public CRCoreConfig withInMemoryStorage() { this.sqliteEnabled = false; @@ -38,14 +72,61 @@ public class CRCoreConfig { /** * Change le nom de la commande Bukkit racine. Doit matcher l'entrée du - * {@code commands:} dans le {@code plugin.yml} du plugin de jeu. + * {@code commands:} dans le {@code plugin.yml} du plugin de jeu (ou + * passe par l'enregistrement dynamique de CR-Core si la commande n'est + * pas déclarée). */ public CRCoreConfig withCommandName(String commandName) { this.commandName = commandName; return this; } + // ---- Feature setups (opt-in) ---- + + /** + * Active la feature team : repositories, service, config + GUI, + * sous-commandes {@code /core team ...}. Tire les events Bukkit + * correspondants. + */ + public CRCoreConfig setupTeams() { + this.teamsEnabled = true; + return this; + } + + /** + * Active la feature player : repository et service de profil + * joueur (scores nommés, classements individuels). Tire les events + * Bukkit player. + */ + public CRCoreConfig setupPlayers() { + this.playersEnabled = true; + return this; + } + + /** + * Active l'intégration PlaceholderAPI. La hook ne sera réellement + * enregistrée que si PAPI est installé sur le serveur. Nécessite + * {@link #setupTeams()} et/ou {@link #setupPlayers()} pour les + * placeholders correspondants — sinon les placeholders manquants + * renvoient simplement vide. + */ + public CRCoreConfig setupPlaceholders() { + this.placeholdersEnabled = true; + return this; + } + + /** Active toutes les features en une fois. */ + public CRCoreConfig setupAll() { + return setupTeams().setupPlayers().setupPlaceholders(); + } + + // ---- Getters ---- + public boolean isSqliteEnabled() { return sqliteEnabled; } public String getSqliteFilename() { return sqliteFilename; } public String getCommandName() { return commandName; } + + public boolean isTeamsEnabled() { return teamsEnabled; } + public boolean isPlayersEnabled() { return playersEnabled; } + public boolean isPlaceholdersEnabled() { return placeholdersEnabled; } } diff --git a/src/main/java/fr/luc/crcore/command/builtin/CoreCommand.java b/src/main/java/fr/luc/crcore/builtin/CoreCommand.java similarity index 59% rename from src/main/java/fr/luc/crcore/command/builtin/CoreCommand.java rename to src/main/java/fr/luc/crcore/builtin/CoreCommand.java index 1b12ccc..0755c90 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/CoreCommand.java +++ b/src/main/java/fr/luc/crcore/builtin/CoreCommand.java @@ -1,20 +1,27 @@ -package fr.luc.crcore.command.builtin; +package fr.luc.crcore.builtin; -import fr.luc.crcore.broadcast.BroadcastService; -import fr.luc.crcore.command.BaseCommand; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.builtin.team.TeamGroupSubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.player.PlayerProfileService; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.config.TeamConfigService; +import fr.luc.crcore.features.player.PlayerProfileService; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.command.TeamGroupSubCommand; +import fr.luc.crcore.features.team.config.TeamConfigService; +import fr.luc.crcore.util.broadcast.BroadcastService; +import fr.luc.crcore.util.command.BaseCommand; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.message.MessagesService; import org.bukkit.command.CommandSender; import java.util.Objects; /** - * Commande racine {@code /core}. Container des groupes par défaut + la - * sous-commande {@link CoreReloadSubCommand} ({@code /core reload}). + * Commande racine {@code /core}. Container des features actives. + * + *

Les services {@code teamService}, {@code playerProfileService} et + * {@code teamConfig} peuvent être {@code null} si la feature correspondante + * n'a pas été activée via {@link fr.luc.crcore.CRCoreConfig#setupTeams()} + * etc. — la sous-commande associée n'est alors simplement pas enregistrée. + * + *

{@code /core reload} et le rendu des messages communs (no-permission, + * etc.) restent toujours disponibles car ils ne dépendent que d'util. */ public class CoreCommand extends BaseCommand { @@ -30,25 +37,27 @@ public class CoreCommand extends BaseCommand { BroadcastService broadcasts, TeamConfigService teamConfig) { super("core"); - this.teamService = Objects.requireNonNull(teamService, "teamService"); - this.playerProfileService = Objects.requireNonNull(playerProfileService, "playerProfileService"); + // Les services de features peuvent être null (feature off). + this.teamService = teamService; + this.playerProfileService = playerProfileService; this.messages = Objects.requireNonNull(messages, "messages"); this.broadcasts = Objects.requireNonNull(broadcasts, "broadcasts"); - this.teamConfig = Objects.requireNonNull(teamConfig, "teamConfig"); + this.teamConfig = teamConfig; description("Commandes du noyau CR-Core"); registerDefaults(); } - /** Enregistre les groupes par défaut + la sous-commande reload. */ + /** Enregistre les sous-commandes des features activées + reload. */ protected void registerDefaults() { - addSubCommand(new TeamGroupSubCommand(teamService, messages, teamConfig)); + if (teamService != null && teamConfig != null) { + addSubCommand(new TeamGroupSubCommand(teamService, messages, teamConfig)); + } addSubCommand(new CoreReloadSubCommand(messages, broadcasts, teamConfig)); } /** * Override de {@link BaseCommand#handleResult} pour utiliser - * {@link MessagesService} sur les cas génériques (no-permission, - * player-only, etc.) au lieu des strings hardcodés du framework. + * {@link MessagesService} sur les cas génériques. */ @Override protected void handleResult(CommandSender sender, CommandResult result) { diff --git a/src/main/java/fr/luc/crcore/command/builtin/CoreReloadSubCommand.java b/src/main/java/fr/luc/crcore/builtin/CoreReloadSubCommand.java similarity index 69% rename from src/main/java/fr/luc/crcore/command/builtin/CoreReloadSubCommand.java rename to src/main/java/fr/luc/crcore/builtin/CoreReloadSubCommand.java index 870e8a1..4493e3b 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/CoreReloadSubCommand.java +++ b/src/main/java/fr/luc/crcore/builtin/CoreReloadSubCommand.java @@ -1,11 +1,11 @@ -package fr.luc.crcore.command.builtin; +package fr.luc.crcore.builtin; -import fr.luc.crcore.broadcast.BroadcastService; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.config.TeamConfigService; +import fr.luc.crcore.util.broadcast.BroadcastService; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.config.TeamConfigService; import java.util.Objects; @@ -28,7 +28,8 @@ public class CoreReloadSubCommand extends SubCommand { super("reload"); this.messages = Objects.requireNonNull(messages, "messages"); this.broadcasts = Objects.requireNonNull(broadcasts, "broadcasts"); - this.teamConfig = Objects.requireNonNull(teamConfig, "teamConfig"); + // teamConfig peut être null si la feature teams n'est pas activée. + this.teamConfig = teamConfig; description("Recharger les fichiers messages, broadcasts et team-config"); permission("crcore.reload"); } @@ -37,7 +38,7 @@ public class CoreReloadSubCommand extends SubCommand { public CommandResult execute(CommandContext ctx) { messages.reload(); broadcasts.reload(); - teamConfig.reload(); + if (teamConfig != null) teamConfig.reload(); return CommandResult.success(messages.get("common.reload.success")); } } diff --git a/src/main/java/fr/luc/crcore/player/PlayerProfile.java b/src/main/java/fr/luc/crcore/features/player/PlayerProfile.java similarity index 93% rename from src/main/java/fr/luc/crcore/player/PlayerProfile.java rename to src/main/java/fr/luc/crcore/features/player/PlayerProfile.java index 95b87e4..7768059 100644 --- a/src/main/java/fr/luc/crcore/player/PlayerProfile.java +++ b/src/main/java/fr/luc/crcore/features/player/PlayerProfile.java @@ -1,7 +1,7 @@ -package fr.luc.crcore.player; +package fr.luc.crcore.features.player; -import fr.luc.crcore.common.AbstractEntity; -import fr.luc.crcore.common.ScoreHolder; +import fr.luc.crcore.util.common.AbstractEntity; +import fr.luc.crcore.util.common.ScoreHolder; import java.util.Collections; import java.util.HashMap; diff --git a/src/main/java/fr/luc/crcore/features/player/PlayerProfileRepository.java b/src/main/java/fr/luc/crcore/features/player/PlayerProfileRepository.java new file mode 100644 index 0000000..a903e1d --- /dev/null +++ b/src/main/java/fr/luc/crcore/features/player/PlayerProfileRepository.java @@ -0,0 +1,6 @@ +package fr.luc.crcore.features.player; + +import fr.luc.crcore.util.common.Repository; + +public interface PlayerProfileRepository extends Repository { +} diff --git a/src/main/java/fr/luc/crcore/player/PlayerProfileService.java b/src/main/java/fr/luc/crcore/features/player/PlayerProfileService.java similarity index 97% rename from src/main/java/fr/luc/crcore/player/PlayerProfileService.java rename to src/main/java/fr/luc/crcore/features/player/PlayerProfileService.java index 3b2f6ef..9ecc715 100644 --- a/src/main/java/fr/luc/crcore/player/PlayerProfileService.java +++ b/src/main/java/fr/luc/crcore/features/player/PlayerProfileService.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.player; +package fr.luc.crcore.features.player; import java.util.Collection; import java.util.List; diff --git a/src/main/java/fr/luc/crcore/player/PlayerRanking.java b/src/main/java/fr/luc/crcore/features/player/PlayerRanking.java similarity index 97% rename from src/main/java/fr/luc/crcore/player/PlayerRanking.java rename to src/main/java/fr/luc/crcore/features/player/PlayerRanking.java index a89129f..8dd4195 100644 --- a/src/main/java/fr/luc/crcore/player/PlayerRanking.java +++ b/src/main/java/fr/luc/crcore/features/player/PlayerRanking.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.player; +package fr.luc.crcore.features.player; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/player/event/PlayerProfileCreateEvent.java b/src/main/java/fr/luc/crcore/features/player/event/PlayerProfileCreateEvent.java similarity index 84% rename from src/main/java/fr/luc/crcore/player/event/PlayerProfileCreateEvent.java rename to src/main/java/fr/luc/crcore/features/player/event/PlayerProfileCreateEvent.java index 845803c..cdfd4a2 100644 --- a/src/main/java/fr/luc/crcore/player/event/PlayerProfileCreateEvent.java +++ b/src/main/java/fr/luc/crcore/features/player/event/PlayerProfileCreateEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.player.event; +package fr.luc.crcore.features.player.event; -import fr.luc.crcore.player.PlayerProfile; +import fr.luc.crcore.features.player.PlayerProfile; import org.bukkit.event.HandlerList; /** Déclenché juste après la création d'un profil (lazy ou explicite). */ diff --git a/src/main/java/fr/luc/crcore/player/event/PlayerProfileDeleteEvent.java b/src/main/java/fr/luc/crcore/features/player/event/PlayerProfileDeleteEvent.java similarity index 83% rename from src/main/java/fr/luc/crcore/player/event/PlayerProfileDeleteEvent.java rename to src/main/java/fr/luc/crcore/features/player/event/PlayerProfileDeleteEvent.java index 460f377..7b5c3a5 100644 --- a/src/main/java/fr/luc/crcore/player/event/PlayerProfileDeleteEvent.java +++ b/src/main/java/fr/luc/crcore/features/player/event/PlayerProfileDeleteEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.player.event; +package fr.luc.crcore.features.player.event; -import fr.luc.crcore.player.PlayerProfile; +import fr.luc.crcore.features.player.PlayerProfile; import org.bukkit.event.HandlerList; /** Déclenché juste après la suppression d'un profil. */ diff --git a/src/main/java/fr/luc/crcore/player/event/PlayerProfileEvent.java b/src/main/java/fr/luc/crcore/features/player/event/PlayerProfileEvent.java similarity index 86% rename from src/main/java/fr/luc/crcore/player/event/PlayerProfileEvent.java rename to src/main/java/fr/luc/crcore/features/player/event/PlayerProfileEvent.java index bfceec2..8cf8bd8 100644 --- a/src/main/java/fr/luc/crcore/player/event/PlayerProfileEvent.java +++ b/src/main/java/fr/luc/crcore/features/player/event/PlayerProfileEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.player.event; +package fr.luc.crcore.features.player.event; -import fr.luc.crcore.player.PlayerProfile; +import fr.luc.crcore.features.player.PlayerProfile; import org.bukkit.event.Event; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/player/event/PlayerScoreChangeEvent.java b/src/main/java/fr/luc/crcore/features/player/event/PlayerScoreChangeEvent.java similarity index 91% rename from src/main/java/fr/luc/crcore/player/event/PlayerScoreChangeEvent.java rename to src/main/java/fr/luc/crcore/features/player/event/PlayerScoreChangeEvent.java index 7ba7e7b..fd95d6f 100644 --- a/src/main/java/fr/luc/crcore/player/event/PlayerScoreChangeEvent.java +++ b/src/main/java/fr/luc/crcore/features/player/event/PlayerScoreChangeEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.player.event; +package fr.luc.crcore.features.player.event; -import fr.luc.crcore.player.PlayerProfile; +import fr.luc.crcore.features.player.PlayerProfile; import org.bukkit.event.HandlerList; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/player/exception/PlayerException.java b/src/main/java/fr/luc/crcore/features/player/exception/PlayerException.java similarity index 82% rename from src/main/java/fr/luc/crcore/player/exception/PlayerException.java rename to src/main/java/fr/luc/crcore/features/player/exception/PlayerException.java index bd0e1c0..3f5e80e 100644 --- a/src/main/java/fr/luc/crcore/player/exception/PlayerException.java +++ b/src/main/java/fr/luc/crcore/features/player/exception/PlayerException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.player.exception; +package fr.luc.crcore.features.player.exception; public class PlayerException extends RuntimeException { diff --git a/src/main/java/fr/luc/crcore/player/exception/PlayerProfileNotFoundException.java b/src/main/java/fr/luc/crcore/features/player/exception/PlayerProfileNotFoundException.java similarity index 76% rename from src/main/java/fr/luc/crcore/player/exception/PlayerProfileNotFoundException.java rename to src/main/java/fr/luc/crcore/features/player/exception/PlayerProfileNotFoundException.java index 11833b4..26d5f50 100644 --- a/src/main/java/fr/luc/crcore/player/exception/PlayerProfileNotFoundException.java +++ b/src/main/java/fr/luc/crcore/features/player/exception/PlayerProfileNotFoundException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.player.exception; +package fr.luc.crcore.features.player.exception; public class PlayerProfileNotFoundException extends PlayerException { diff --git a/src/main/java/fr/luc/crcore/player/impl/BukkitEventFiringPlayerProfileServiceImpl.java b/src/main/java/fr/luc/crcore/features/player/impl/BukkitEventFiringPlayerProfileServiceImpl.java similarity index 67% rename from src/main/java/fr/luc/crcore/player/impl/BukkitEventFiringPlayerProfileServiceImpl.java rename to src/main/java/fr/luc/crcore/features/player/impl/BukkitEventFiringPlayerProfileServiceImpl.java index e40df51..cc1e38b 100644 --- a/src/main/java/fr/luc/crcore/player/impl/BukkitEventFiringPlayerProfileServiceImpl.java +++ b/src/main/java/fr/luc/crcore/features/player/impl/BukkitEventFiringPlayerProfileServiceImpl.java @@ -1,14 +1,14 @@ -package fr.luc.crcore.player.impl; -import fr.luc.crcore.player.exception.PlayerProfileNotFoundException; -import fr.luc.crcore.player.exception.PlayerException; -import fr.luc.crcore.player.PlayerProfileRepository; -import fr.luc.crcore.player.PlayerProfileService; -import fr.luc.crcore.player.PlayerRanking; -import fr.luc.crcore.player.PlayerProfile; +package fr.luc.crcore.features.player.impl; +import fr.luc.crcore.features.player.exception.PlayerProfileNotFoundException; +import fr.luc.crcore.features.player.exception.PlayerException; +import fr.luc.crcore.features.player.PlayerProfileRepository; +import fr.luc.crcore.features.player.PlayerProfileService; +import fr.luc.crcore.features.player.PlayerRanking; +import fr.luc.crcore.features.player.PlayerProfile; -import fr.luc.crcore.player.event.PlayerProfileCreateEvent; -import fr.luc.crcore.player.event.PlayerProfileDeleteEvent; -import fr.luc.crcore.player.event.PlayerScoreChangeEvent; +import fr.luc.crcore.features.player.event.PlayerProfileCreateEvent; +import fr.luc.crcore.features.player.event.PlayerProfileDeleteEvent; +import fr.luc.crcore.features.player.event.PlayerScoreChangeEvent; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; diff --git a/src/main/java/fr/luc/crcore/player/impl/InMemoryPlayerProfileRepository.java b/src/main/java/fr/luc/crcore/features/player/impl/InMemoryPlayerProfileRepository.java similarity index 71% rename from src/main/java/fr/luc/crcore/player/impl/InMemoryPlayerProfileRepository.java rename to src/main/java/fr/luc/crcore/features/player/impl/InMemoryPlayerProfileRepository.java index 5e2ee17..015aa0d 100644 --- a/src/main/java/fr/luc/crcore/player/impl/InMemoryPlayerProfileRepository.java +++ b/src/main/java/fr/luc/crcore/features/player/impl/InMemoryPlayerProfileRepository.java @@ -1,10 +1,10 @@ -package fr.luc.crcore.player.impl; -import fr.luc.crcore.player.exception.PlayerProfileNotFoundException; -import fr.luc.crcore.player.exception.PlayerException; -import fr.luc.crcore.player.PlayerProfileRepository; -import fr.luc.crcore.player.PlayerProfileService; -import fr.luc.crcore.player.PlayerRanking; -import fr.luc.crcore.player.PlayerProfile; +package fr.luc.crcore.features.player.impl; +import fr.luc.crcore.features.player.exception.PlayerProfileNotFoundException; +import fr.luc.crcore.features.player.exception.PlayerException; +import fr.luc.crcore.features.player.PlayerProfileRepository; +import fr.luc.crcore.features.player.PlayerProfileService; +import fr.luc.crcore.features.player.PlayerRanking; +import fr.luc.crcore.features.player.PlayerProfile; import java.util.Collection; import java.util.Collections; diff --git a/src/main/java/fr/luc/crcore/player/impl/PlayerProfileServiceImpl.java b/src/main/java/fr/luc/crcore/features/player/impl/PlayerProfileServiceImpl.java similarity index 93% rename from src/main/java/fr/luc/crcore/player/impl/PlayerProfileServiceImpl.java rename to src/main/java/fr/luc/crcore/features/player/impl/PlayerProfileServiceImpl.java index 8556074..95c8c7d 100644 --- a/src/main/java/fr/luc/crcore/player/impl/PlayerProfileServiceImpl.java +++ b/src/main/java/fr/luc/crcore/features/player/impl/PlayerProfileServiceImpl.java @@ -1,10 +1,10 @@ -package fr.luc.crcore.player.impl; -import fr.luc.crcore.player.exception.PlayerProfileNotFoundException; -import fr.luc.crcore.player.exception.PlayerException; -import fr.luc.crcore.player.PlayerProfileRepository; -import fr.luc.crcore.player.PlayerProfileService; -import fr.luc.crcore.player.PlayerRanking; -import fr.luc.crcore.player.PlayerProfile; +package fr.luc.crcore.features.player.impl; +import fr.luc.crcore.features.player.exception.PlayerProfileNotFoundException; +import fr.luc.crcore.features.player.exception.PlayerException; +import fr.luc.crcore.features.player.PlayerProfileRepository; +import fr.luc.crcore.features.player.PlayerProfileService; +import fr.luc.crcore.features.player.PlayerRanking; +import fr.luc.crcore.features.player.PlayerProfile; import java.util.ArrayList; import java.util.Collection; diff --git a/src/main/java/fr/luc/crcore/player/impl/SqlitePlayerProfileRepository.java b/src/main/java/fr/luc/crcore/features/player/impl/SqlitePlayerProfileRepository.java similarity index 83% rename from src/main/java/fr/luc/crcore/player/impl/SqlitePlayerProfileRepository.java rename to src/main/java/fr/luc/crcore/features/player/impl/SqlitePlayerProfileRepository.java index c8d4cb4..afbbb1f 100644 --- a/src/main/java/fr/luc/crcore/player/impl/SqlitePlayerProfileRepository.java +++ b/src/main/java/fr/luc/crcore/features/player/impl/SqlitePlayerProfileRepository.java @@ -1,13 +1,13 @@ -package fr.luc.crcore.player.impl; -import fr.luc.crcore.player.exception.PlayerProfileNotFoundException; -import fr.luc.crcore.player.exception.PlayerException; -import fr.luc.crcore.player.PlayerProfileRepository; -import fr.luc.crcore.player.PlayerProfileService; -import fr.luc.crcore.player.PlayerRanking; -import fr.luc.crcore.player.PlayerProfile; +package fr.luc.crcore.features.player.impl; +import fr.luc.crcore.features.player.exception.PlayerProfileNotFoundException; +import fr.luc.crcore.features.player.exception.PlayerException; +import fr.luc.crcore.features.player.PlayerProfileRepository; +import fr.luc.crcore.features.player.PlayerProfileService; +import fr.luc.crcore.features.player.PlayerRanking; +import fr.luc.crcore.features.player.PlayerProfile; -import fr.luc.crcore.database.ColumnType; -import fr.luc.crcore.database.Database; +import fr.luc.crcore.util.database.ColumnType; +import fr.luc.crcore.util.database.Database; import java.util.Objects; import java.util.UUID; @@ -15,7 +15,7 @@ import java.util.UUID; /** * Implémentation {@link PlayerProfileRepository} adossée à SQLite. * - *

Mêmes principes que {@link fr.luc.crcore.team.SqliteTeamRepository} : + *

Mêmes principes que {@link fr.luc.crcore.features.team.SqliteTeamRepository} : * cache mémoire en write-through, schéma créé à l'init, état rechargé depuis * la DB au constructeur. * diff --git a/src/main/java/fr/luc/crcore/team/Team.java b/src/main/java/fr/luc/crcore/features/team/Team.java similarity index 96% rename from src/main/java/fr/luc/crcore/team/Team.java rename to src/main/java/fr/luc/crcore/features/team/Team.java index 963e757..d255947 100644 --- a/src/main/java/fr/luc/crcore/team/Team.java +++ b/src/main/java/fr/luc/crcore/features/team/Team.java @@ -1,8 +1,8 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; -import fr.luc.crcore.common.AbstractEntity; -import fr.luc.crcore.common.Named; -import fr.luc.crcore.common.ScoreHolder; +import fr.luc.crcore.util.common.AbstractEntity; +import fr.luc.crcore.util.common.Named; +import fr.luc.crcore.util.common.ScoreHolder; import org.bukkit.Location; import java.util.Collections; @@ -79,11 +79,11 @@ public class Team extends AbstractEntity implements Named, ScoreHolder { /** * Map mutable des overrides per-team de settings. Clé = nom du - * {@link fr.luc.crcore.team.config.TeamSetting}, valeur = forme + * {@link fr.luc.crcore.features.team.config.TeamSetting}, valeur = forme * sérialisable (Boolean, Integer, String, …). * *

Lecture / modification typée recommandée via - * {@link fr.luc.crcore.team.config.TeamConfigService}, qui gère la + * {@link fr.luc.crcore.features.team.config.TeamConfigService}, qui gère la * cascade per-team → global → default et persiste les écritures. */ public Map getSettings() { diff --git a/src/main/java/fr/luc/crcore/team/TeamColor.java b/src/main/java/fr/luc/crcore/features/team/TeamColor.java similarity index 97% rename from src/main/java/fr/luc/crcore/team/TeamColor.java rename to src/main/java/fr/luc/crcore/features/team/TeamColor.java index 769536a..6c1d4e5 100644 --- a/src/main/java/fr/luc/crcore/team/TeamColor.java +++ b/src/main/java/fr/luc/crcore/features/team/TeamColor.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; import org.bukkit.ChatColor; import org.bukkit.DyeColor; diff --git a/src/main/java/fr/luc/crcore/team/TeamMember.java b/src/main/java/fr/luc/crcore/features/team/TeamMember.java similarity index 92% rename from src/main/java/fr/luc/crcore/team/TeamMember.java rename to src/main/java/fr/luc/crcore/features/team/TeamMember.java index e19c606..54b2b30 100644 --- a/src/main/java/fr/luc/crcore/team/TeamMember.java +++ b/src/main/java/fr/luc/crcore/features/team/TeamMember.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; -import fr.luc.crcore.common.AbstractEntity; +import fr.luc.crcore.util.common.AbstractEntity; import java.time.Instant; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/TeamRanking.java b/src/main/java/fr/luc/crcore/features/team/TeamRanking.java similarity index 97% rename from src/main/java/fr/luc/crcore/team/TeamRanking.java rename to src/main/java/fr/luc/crcore/features/team/TeamRanking.java index 5a250bf..7e996cd 100644 --- a/src/main/java/fr/luc/crcore/team/TeamRanking.java +++ b/src/main/java/fr/luc/crcore/features/team/TeamRanking.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/TeamRepository.java b/src/main/java/fr/luc/crcore/features/team/TeamRepository.java similarity index 75% rename from src/main/java/fr/luc/crcore/team/TeamRepository.java rename to src/main/java/fr/luc/crcore/features/team/TeamRepository.java index 9459d12..3ea3eef 100644 --- a/src/main/java/fr/luc/crcore/team/TeamRepository.java +++ b/src/main/java/fr/luc/crcore/features/team/TeamRepository.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; -import fr.luc.crcore.common.Repository; +import fr.luc.crcore.util.common.Repository; import java.util.Optional; import java.util.UUID; diff --git a/src/main/java/fr/luc/crcore/team/TeamRole.java b/src/main/java/fr/luc/crcore/features/team/TeamRole.java similarity index 76% rename from src/main/java/fr/luc/crcore/team/TeamRole.java rename to src/main/java/fr/luc/crcore/features/team/TeamRole.java index 4e5857f..9c111fc 100644 --- a/src/main/java/fr/luc/crcore/team/TeamRole.java +++ b/src/main/java/fr/luc/crcore/features/team/TeamRole.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; public enum TeamRole { diff --git a/src/main/java/fr/luc/crcore/team/TeamService.java b/src/main/java/fr/luc/crcore/features/team/TeamService.java similarity index 98% rename from src/main/java/fr/luc/crcore/team/TeamService.java rename to src/main/java/fr/luc/crcore/features/team/TeamService.java index fde3591..cf60e63 100644 --- a/src/main/java/fr/luc/crcore/team/TeamService.java +++ b/src/main/java/fr/luc/crcore/features/team/TeamService.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; import org.bukkit.Location; diff --git a/src/main/java/fr/luc/crcore/team/TeamVisibility.java b/src/main/java/fr/luc/crcore/features/team/TeamVisibility.java similarity index 84% rename from src/main/java/fr/luc/crcore/team/TeamVisibility.java rename to src/main/java/fr/luc/crcore/features/team/TeamVisibility.java index 607d572..de79523 100644 --- a/src/main/java/fr/luc/crcore/team/TeamVisibility.java +++ b/src/main/java/fr/luc/crcore/features/team/TeamVisibility.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team; +package fr.luc.crcore.features.team; public enum TeamVisibility { diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamAddSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamAddSubCommand.java similarity index 77% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamAddSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamAddSubCommand.java index 9e669a0..f275d9e 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamAddSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamAddSubCommand.java @@ -1,12 +1,12 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.entity.Player; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamArgumentTypes.java b/src/main/java/fr/luc/crcore/features/team/command/TeamArgumentTypes.java similarity index 84% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamArgumentTypes.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamArgumentTypes.java index 3d53753..6ec5589 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamArgumentTypes.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamArgumentTypes.java @@ -1,8 +1,8 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentType; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.ArgumentType; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.command.CommandSender; import java.util.List; @@ -30,7 +30,7 @@ public final class TeamArgumentTypes { @Override public Team parse(String input) { return service.getTeamByName(input).orElseThrow(() -> - new fr.luc.crcore.command.CommandException( + new fr.luc.crcore.util.command.CommandException( "Aucune équipe trouvée : " + input)); } diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamCreateSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamCreateSubCommand.java similarity index 80% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamCreateSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamCreateSubCommand.java index 13b6d37..fef7dd8 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamCreateSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamCreateSubCommand.java @@ -1,15 +1,15 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamColor; -import fr.luc.crcore.team.exception.TeamException; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.TeamVisibility; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamColor; +import fr.luc.crcore.features.team.exception.TeamException; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.TeamVisibility; import org.bukkit.entity.Player; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamDeleteSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamDeleteSubCommand.java similarity index 73% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamDeleteSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamDeleteSubCommand.java index 4350d88..4da10e0 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamDeleteSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamDeleteSubCommand.java @@ -1,11 +1,11 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamGroupSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamGroupSubCommand.java similarity index 89% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamGroupSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamGroupSubCommand.java index 2c3dc1c..a4e6e07 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamGroupSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamGroupSubCommand.java @@ -1,9 +1,9 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.config.TeamConfigService; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.config.TeamConfigService; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamInfoSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamInfoSubCommand.java similarity index 90% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamInfoSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamInfoSubCommand.java index 80b2629..01e732c 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamInfoSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamInfoSubCommand.java @@ -1,11 +1,11 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.Bukkit; import org.bukkit.entity.Player; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamJoinSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamJoinSubCommand.java similarity index 74% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamJoinSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamJoinSubCommand.java index 2aa8c44..0ad0fab 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamJoinSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamJoinSubCommand.java @@ -1,12 +1,12 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.exception.TeamException; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.exception.TeamException; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.entity.Player; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamLeaveSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamLeaveSubCommand.java similarity index 79% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamLeaveSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamLeaveSubCommand.java index eb7f2a7..1782bae 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamLeaveSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamLeaveSubCommand.java @@ -1,11 +1,11 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.entity.Player; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamListSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamListSubCommand.java similarity index 81% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamListSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamListSubCommand.java index 8200636..a48d238 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamListSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamListSubCommand.java @@ -1,11 +1,11 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import java.util.Collection; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamRemoveSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamRemoveSubCommand.java similarity index 80% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamRemoveSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamRemoveSubCommand.java index 41af6d9..3966668 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamRemoveSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamRemoveSubCommand.java @@ -1,12 +1,12 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamScoreSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamScoreSubCommand.java similarity index 80% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamScoreSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamScoreSubCommand.java index 565cf7b..8705fbd 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamScoreSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamScoreSubCommand.java @@ -1,12 +1,12 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamSetLeaderSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamSetLeaderSubCommand.java similarity index 78% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamSetLeaderSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamSetLeaderSubCommand.java index 6bc4ca8..6d450a0 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamSetLeaderSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamSetLeaderSubCommand.java @@ -1,12 +1,12 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.entity.Player; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamSetSpawnSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamSetSpawnSubCommand.java similarity index 76% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamSetSpawnSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamSetSpawnSubCommand.java index ba41fac..b0a35e5 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamSetSpawnSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamSetSpawnSubCommand.java @@ -1,11 +1,11 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.entity.Player; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamSettingsSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamSettingsSubCommand.java similarity index 77% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamSettingsSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamSettingsSubCommand.java index 9f3f81c..5eb2adf 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamSettingsSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamSettingsSubCommand.java @@ -1,13 +1,13 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.config.TeamConfigService; -import fr.luc.crcore.team.config.gui.GlobalSettingsGui; -import fr.luc.crcore.team.config.gui.TeamSettingsGui; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.config.TeamConfigService; +import fr.luc.crcore.features.team.config.gui.GlobalSettingsGui; +import fr.luc.crcore.features.team.config.gui.TeamSettingsGui; import org.bukkit.entity.Player; import java.util.Objects; @@ -31,7 +31,7 @@ public class TeamSettingsSubCommand extends SubCommand { public TeamSettingsSubCommand(TeamConfigService config, MessagesService messages, - fr.luc.crcore.team.TeamService teamService) { + fr.luc.crcore.features.team.TeamService teamService) { super("settings"); this.config = Objects.requireNonNull(config, "config"); this.messages = Objects.requireNonNull(messages, "messages"); diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamTopSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamTopSubCommand.java similarity index 84% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamTopSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamTopSubCommand.java index c453a14..ba8634b 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamTopSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamTopSubCommand.java @@ -1,12 +1,12 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.TeamRanking; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.TeamRanking; +import fr.luc.crcore.features.team.TeamService; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamTransferSubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamTransferSubCommand.java similarity index 81% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamTransferSubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamTransferSubCommand.java index 37e2222..054de14 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamTransferSubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamTransferSubCommand.java @@ -1,12 +1,12 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; diff --git a/src/main/java/fr/luc/crcore/command/builtin/team/TeamVisibilitySubCommand.java b/src/main/java/fr/luc/crcore/features/team/command/TeamVisibilitySubCommand.java similarity index 72% rename from src/main/java/fr/luc/crcore/command/builtin/team/TeamVisibilitySubCommand.java rename to src/main/java/fr/luc/crcore/features/team/command/TeamVisibilitySubCommand.java index 229e8d9..423bf55 100644 --- a/src/main/java/fr/luc/crcore/command/builtin/team/TeamVisibilitySubCommand.java +++ b/src/main/java/fr/luc/crcore/features/team/command/TeamVisibilitySubCommand.java @@ -1,13 +1,13 @@ -package fr.luc.crcore.command.builtin.team; +package fr.luc.crcore.features.team.command; -import fr.luc.crcore.command.ArgumentTypes; -import fr.luc.crcore.command.CommandContext; -import fr.luc.crcore.command.CommandResult; -import fr.luc.crcore.command.SubCommand; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.TeamVisibility; +import fr.luc.crcore.util.command.ArgumentTypes; +import fr.luc.crcore.util.command.CommandContext; +import fr.luc.crcore.util.command.CommandResult; +import fr.luc.crcore.util.command.SubCommand; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.TeamVisibility; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/config/TeamConfigService.java b/src/main/java/fr/luc/crcore/features/team/config/TeamConfigService.java similarity index 96% rename from src/main/java/fr/luc/crcore/team/config/TeamConfigService.java rename to src/main/java/fr/luc/crcore/features/team/config/TeamConfigService.java index 1b583c8..e44c218 100644 --- a/src/main/java/fr/luc/crcore/team/config/TeamConfigService.java +++ b/src/main/java/fr/luc/crcore/features/team/config/TeamConfigService.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.config; +package fr.luc.crcore.features.team.config; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import java.util.Map; import java.util.Optional; diff --git a/src/main/java/fr/luc/crcore/team/config/TeamSetting.java b/src/main/java/fr/luc/crcore/features/team/config/TeamSetting.java similarity index 99% rename from src/main/java/fr/luc/crcore/team/config/TeamSetting.java rename to src/main/java/fr/luc/crcore/features/team/config/TeamSetting.java index 7c03ee4..fd83c6b 100644 --- a/src/main/java/fr/luc/crcore/team/config/TeamSetting.java +++ b/src/main/java/fr/luc/crcore/features/team/config/TeamSetting.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team.config; +package fr.luc.crcore.features.team.config; import java.util.Objects; import java.util.function.Function; diff --git a/src/main/java/fr/luc/crcore/team/config/TeamSettings.java b/src/main/java/fr/luc/crcore/features/team/config/TeamSettings.java similarity index 98% rename from src/main/java/fr/luc/crcore/team/config/TeamSettings.java rename to src/main/java/fr/luc/crcore/features/team/config/TeamSettings.java index ee832e5..7b39201 100644 --- a/src/main/java/fr/luc/crcore/team/config/TeamSettings.java +++ b/src/main/java/fr/luc/crcore/features/team/config/TeamSettings.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team.config; +package fr.luc.crcore.features.team.config; import java.util.Collection; import java.util.Collections; diff --git a/src/main/java/fr/luc/crcore/team/config/gui/AbstractSettingsGui.java b/src/main/java/fr/luc/crcore/features/team/config/gui/AbstractSettingsGui.java similarity index 94% rename from src/main/java/fr/luc/crcore/team/config/gui/AbstractSettingsGui.java rename to src/main/java/fr/luc/crcore/features/team/config/gui/AbstractSettingsGui.java index d11b49e..5727cf9 100644 --- a/src/main/java/fr/luc/crcore/team/config/gui/AbstractSettingsGui.java +++ b/src/main/java/fr/luc/crcore/features/team/config/gui/AbstractSettingsGui.java @@ -1,9 +1,9 @@ -package fr.luc.crcore.team.config.gui; +package fr.luc.crcore.features.team.config.gui; -import fr.luc.crcore.gui.AbstractInventoryGui; -import fr.luc.crcore.gui.GuiItems; -import fr.luc.crcore.team.config.TeamSetting; -import fr.luc.crcore.team.config.TeamSettings; +import fr.luc.crcore.util.gui.AbstractInventoryGui; +import fr.luc.crcore.util.gui.GuiItems; +import fr.luc.crcore.features.team.config.TeamSetting; +import fr.luc.crcore.features.team.config.TeamSettings; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.inventory.InventoryClickEvent; @@ -120,7 +120,7 @@ public abstract class AbstractSettingsGui extends AbstractInventoryGui { } } - private fr.luc.crcore.gui.GuiClickHandler createIntHandler(TeamSetting setting, Integer baseValue) { + private fr.luc.crcore.util.gui.GuiClickHandler createIntHandler(TeamSetting setting, Integer baseValue) { return event -> { Integer current = (Integer) getCurrentValue((TeamSetting) setting); int amount = computeIntDelta(event); diff --git a/src/main/java/fr/luc/crcore/team/config/gui/GlobalSettingsGui.java b/src/main/java/fr/luc/crcore/features/team/config/gui/GlobalSettingsGui.java similarity index 85% rename from src/main/java/fr/luc/crcore/team/config/gui/GlobalSettingsGui.java rename to src/main/java/fr/luc/crcore/features/team/config/gui/GlobalSettingsGui.java index 68f8caf..8d1d06b 100644 --- a/src/main/java/fr/luc/crcore/team/config/gui/GlobalSettingsGui.java +++ b/src/main/java/fr/luc/crcore/features/team/config/gui/GlobalSettingsGui.java @@ -1,7 +1,7 @@ -package fr.luc.crcore.team.config.gui; +package fr.luc.crcore.features.team.config.gui; -import fr.luc.crcore.team.config.TeamConfigService; -import fr.luc.crcore.team.config.TeamSetting; +import fr.luc.crcore.features.team.config.TeamConfigService; +import fr.luc.crcore.features.team.config.TeamSetting; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/config/gui/TeamSettingsGui.java b/src/main/java/fr/luc/crcore/features/team/config/gui/TeamSettingsGui.java similarity index 86% rename from src/main/java/fr/luc/crcore/team/config/gui/TeamSettingsGui.java rename to src/main/java/fr/luc/crcore/features/team/config/gui/TeamSettingsGui.java index 9bfbe5b..ca8028e 100644 --- a/src/main/java/fr/luc/crcore/team/config/gui/TeamSettingsGui.java +++ b/src/main/java/fr/luc/crcore/features/team/config/gui/TeamSettingsGui.java @@ -1,10 +1,10 @@ -package fr.luc.crcore.team.config.gui; +package fr.luc.crcore.features.team.config.gui; -import fr.luc.crcore.gui.GuiItems; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.config.TeamConfigService; -import fr.luc.crcore.team.config.TeamSetting; -import fr.luc.crcore.team.config.TeamSettings; +import fr.luc.crcore.util.gui.GuiItems; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.config.TeamConfigService; +import fr.luc.crcore.features.team.config.TeamSetting; +import fr.luc.crcore.features.team.config.TeamSettings; import org.bukkit.Material; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/config/impl/YamlTeamConfigService.java b/src/main/java/fr/luc/crcore/features/team/config/impl/YamlTeamConfigService.java similarity index 96% rename from src/main/java/fr/luc/crcore/team/config/impl/YamlTeamConfigService.java rename to src/main/java/fr/luc/crcore/features/team/config/impl/YamlTeamConfigService.java index e96934a..8b69fd7 100644 --- a/src/main/java/fr/luc/crcore/team/config/impl/YamlTeamConfigService.java +++ b/src/main/java/fr/luc/crcore/features/team/config/impl/YamlTeamConfigService.java @@ -1,10 +1,10 @@ -package fr.luc.crcore.team.config.impl; +package fr.luc.crcore.features.team.config.impl; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamRepository; -import fr.luc.crcore.team.config.TeamConfigService; -import fr.luc.crcore.team.config.TeamSetting; -import fr.luc.crcore.team.config.TeamSettings; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamRepository; +import fr.luc.crcore.features.team.config.TeamConfigService; +import fr.luc.crcore.features.team.config.TeamSetting; +import fr.luc.crcore.features.team.config.TeamSettings; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; diff --git a/src/main/java/fr/luc/crcore/team/event/PlayerJoinTeamEvent.java b/src/main/java/fr/luc/crcore/features/team/event/PlayerJoinTeamEvent.java similarity index 87% rename from src/main/java/fr/luc/crcore/team/event/PlayerJoinTeamEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/PlayerJoinTeamEvent.java index 0c6698d..5ed1ef5 100644 --- a/src/main/java/fr/luc/crcore/team/event/PlayerJoinTeamEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/PlayerJoinTeamEvent.java @@ -1,7 +1,7 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamMember; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamMember; import org.bukkit.event.HandlerList; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/event/TeamCreateEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamCreateEvent.java similarity index 86% rename from src/main/java/fr/luc/crcore/team/event/TeamCreateEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamCreateEvent.java index 6b9306d..4d44bf4 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamCreateEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamCreateEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import org.bukkit.event.HandlerList; /** diff --git a/src/main/java/fr/luc/crcore/team/event/TeamDissolveEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamDissolveEvent.java similarity index 84% rename from src/main/java/fr/luc/crcore/team/event/TeamDissolveEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamDissolveEvent.java index 0bdd9e0..830078f 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamDissolveEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamDissolveEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import org.bukkit.event.HandlerList; /** Déclenché juste après la dissolution d'une équipe. */ diff --git a/src/main/java/fr/luc/crcore/team/event/TeamEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamEvent.java similarity index 88% rename from src/main/java/fr/luc/crcore/team/event/TeamEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamEvent.java index 2697a5d..755a6cb 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import org.bukkit.event.Event; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/event/TeamLeadershipTransferEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamLeadershipTransferEvent.java similarity index 93% rename from src/main/java/fr/luc/crcore/team/event/TeamLeadershipTransferEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamLeadershipTransferEvent.java index 16b10f0..feed623 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamLeadershipTransferEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamLeadershipTransferEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import org.bukkit.event.HandlerList; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/event/TeamMemberAddEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamMemberAddEvent.java similarity index 87% rename from src/main/java/fr/luc/crcore/team/event/TeamMemberAddEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamMemberAddEvent.java index 38a9b5c..0a760f9 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamMemberAddEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamMemberAddEvent.java @@ -1,7 +1,7 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamMember; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamMember; import org.bukkit.event.HandlerList; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/event/TeamMemberRemoveEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamMemberRemoveEvent.java similarity index 89% rename from src/main/java/fr/luc/crcore/team/event/TeamMemberRemoveEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamMemberRemoveEvent.java index 0265af6..b2d3822 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamMemberRemoveEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamMemberRemoveEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import org.bukkit.event.HandlerList; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/event/TeamScoreChangeEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamScoreChangeEvent.java similarity index 92% rename from src/main/java/fr/luc/crcore/team/event/TeamScoreChangeEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamScoreChangeEvent.java index a05aa43..d78662b 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamScoreChangeEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamScoreChangeEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import org.bukkit.event.HandlerList; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/event/TeamSpawnPointChangeEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamSpawnPointChangeEvent.java similarity index 92% rename from src/main/java/fr/luc/crcore/team/event/TeamSpawnPointChangeEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamSpawnPointChangeEvent.java index 77e7cae..2791c81 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamSpawnPointChangeEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamSpawnPointChangeEvent.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import org.bukkit.Location; import org.bukkit.event.HandlerList; diff --git a/src/main/java/fr/luc/crcore/team/event/TeamVisibilityChangeEvent.java b/src/main/java/fr/luc/crcore/features/team/event/TeamVisibilityChangeEvent.java similarity index 88% rename from src/main/java/fr/luc/crcore/team/event/TeamVisibilityChangeEvent.java rename to src/main/java/fr/luc/crcore/features/team/event/TeamVisibilityChangeEvent.java index ffa993a..a42a253 100644 --- a/src/main/java/fr/luc/crcore/team/event/TeamVisibilityChangeEvent.java +++ b/src/main/java/fr/luc/crcore/features/team/event/TeamVisibilityChangeEvent.java @@ -1,7 +1,7 @@ -package fr.luc.crcore.team.event; +package fr.luc.crcore.features.team.event; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamVisibility; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamVisibility; import org.bukkit.event.HandlerList; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/exception/TeamAccessException.java b/src/main/java/fr/luc/crcore/features/team/exception/TeamAccessException.java similarity index 74% rename from src/main/java/fr/luc/crcore/team/exception/TeamAccessException.java rename to src/main/java/fr/luc/crcore/features/team/exception/TeamAccessException.java index 2453b7c..18657df 100644 --- a/src/main/java/fr/luc/crcore/team/exception/TeamAccessException.java +++ b/src/main/java/fr/luc/crcore/features/team/exception/TeamAccessException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team.exception; +package fr.luc.crcore.features.team.exception; public class TeamAccessException extends TeamException { diff --git a/src/main/java/fr/luc/crcore/team/exception/TeamAlreadyExistsException.java b/src/main/java/fr/luc/crcore/features/team/exception/TeamAlreadyExistsException.java similarity index 76% rename from src/main/java/fr/luc/crcore/team/exception/TeamAlreadyExistsException.java rename to src/main/java/fr/luc/crcore/features/team/exception/TeamAlreadyExistsException.java index 3b2efe3..f6d23e8 100644 --- a/src/main/java/fr/luc/crcore/team/exception/TeamAlreadyExistsException.java +++ b/src/main/java/fr/luc/crcore/features/team/exception/TeamAlreadyExistsException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team.exception; +package fr.luc.crcore.features.team.exception; public class TeamAlreadyExistsException extends TeamException { diff --git a/src/main/java/fr/luc/crcore/team/exception/TeamException.java b/src/main/java/fr/luc/crcore/features/team/exception/TeamException.java similarity index 82% rename from src/main/java/fr/luc/crcore/team/exception/TeamException.java rename to src/main/java/fr/luc/crcore/features/team/exception/TeamException.java index 17a0867..a4b8af5 100644 --- a/src/main/java/fr/luc/crcore/team/exception/TeamException.java +++ b/src/main/java/fr/luc/crcore/features/team/exception/TeamException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team.exception; +package fr.luc.crcore.features.team.exception; public class TeamException extends RuntimeException { diff --git a/src/main/java/fr/luc/crcore/team/exception/TeamNotFoundException.java b/src/main/java/fr/luc/crcore/features/team/exception/TeamNotFoundException.java similarity index 75% rename from src/main/java/fr/luc/crcore/team/exception/TeamNotFoundException.java rename to src/main/java/fr/luc/crcore/features/team/exception/TeamNotFoundException.java index 47f1961..9e5eb97 100644 --- a/src/main/java/fr/luc/crcore/team/exception/TeamNotFoundException.java +++ b/src/main/java/fr/luc/crcore/features/team/exception/TeamNotFoundException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.team.exception; +package fr.luc.crcore.features.team.exception; public class TeamNotFoundException extends TeamException { diff --git a/src/main/java/fr/luc/crcore/team/impl/BukkitEventFiringTeamServiceImpl.java b/src/main/java/fr/luc/crcore/features/team/impl/BukkitEventFiringTeamServiceImpl.java similarity index 68% rename from src/main/java/fr/luc/crcore/team/impl/BukkitEventFiringTeamServiceImpl.java rename to src/main/java/fr/luc/crcore/features/team/impl/BukkitEventFiringTeamServiceImpl.java index d5b15e6..89a57ed 100644 --- a/src/main/java/fr/luc/crcore/team/impl/BukkitEventFiringTeamServiceImpl.java +++ b/src/main/java/fr/luc/crcore/features/team/impl/BukkitEventFiringTeamServiceImpl.java @@ -1,26 +1,26 @@ -package fr.luc.crcore.team.impl; -import fr.luc.crcore.team.exception.TeamAccessException; -import fr.luc.crcore.team.exception.TeamNotFoundException; -import fr.luc.crcore.team.exception.TeamAlreadyExistsException; -import fr.luc.crcore.team.exception.TeamException; -import fr.luc.crcore.team.TeamRepository; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.TeamRanking; -import fr.luc.crcore.team.TeamVisibility; -import fr.luc.crcore.team.TeamColor; -import fr.luc.crcore.team.TeamRole; -import fr.luc.crcore.team.TeamMember; -import fr.luc.crcore.team.Team; +package fr.luc.crcore.features.team.impl; +import fr.luc.crcore.features.team.exception.TeamAccessException; +import fr.luc.crcore.features.team.exception.TeamNotFoundException; +import fr.luc.crcore.features.team.exception.TeamAlreadyExistsException; +import fr.luc.crcore.features.team.exception.TeamException; +import fr.luc.crcore.features.team.TeamRepository; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.TeamRanking; +import fr.luc.crcore.features.team.TeamVisibility; +import fr.luc.crcore.features.team.TeamColor; +import fr.luc.crcore.features.team.TeamRole; +import fr.luc.crcore.features.team.TeamMember; +import fr.luc.crcore.features.team.Team; -import fr.luc.crcore.team.event.PlayerJoinTeamEvent; -import fr.luc.crcore.team.event.TeamCreateEvent; -import fr.luc.crcore.team.event.TeamDissolveEvent; -import fr.luc.crcore.team.event.TeamLeadershipTransferEvent; -import fr.luc.crcore.team.event.TeamMemberAddEvent; -import fr.luc.crcore.team.event.TeamMemberRemoveEvent; -import fr.luc.crcore.team.event.TeamScoreChangeEvent; -import fr.luc.crcore.team.event.TeamSpawnPointChangeEvent; -import fr.luc.crcore.team.event.TeamVisibilityChangeEvent; +import fr.luc.crcore.features.team.event.PlayerJoinTeamEvent; +import fr.luc.crcore.features.team.event.TeamCreateEvent; +import fr.luc.crcore.features.team.event.TeamDissolveEvent; +import fr.luc.crcore.features.team.event.TeamLeadershipTransferEvent; +import fr.luc.crcore.features.team.event.TeamMemberAddEvent; +import fr.luc.crcore.features.team.event.TeamMemberRemoveEvent; +import fr.luc.crcore.features.team.event.TeamScoreChangeEvent; +import fr.luc.crcore.features.team.event.TeamSpawnPointChangeEvent; +import fr.luc.crcore.features.team.event.TeamVisibilityChangeEvent; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.plugin.java.JavaPlugin; diff --git a/src/main/java/fr/luc/crcore/team/impl/InMemoryTeamRepository.java b/src/main/java/fr/luc/crcore/features/team/impl/InMemoryTeamRepository.java similarity index 71% rename from src/main/java/fr/luc/crcore/team/impl/InMemoryTeamRepository.java rename to src/main/java/fr/luc/crcore/features/team/impl/InMemoryTeamRepository.java index 4363327..c72c71d 100644 --- a/src/main/java/fr/luc/crcore/team/impl/InMemoryTeamRepository.java +++ b/src/main/java/fr/luc/crcore/features/team/impl/InMemoryTeamRepository.java @@ -1,16 +1,16 @@ -package fr.luc.crcore.team.impl; -import fr.luc.crcore.team.exception.TeamAccessException; -import fr.luc.crcore.team.exception.TeamNotFoundException; -import fr.luc.crcore.team.exception.TeamAlreadyExistsException; -import fr.luc.crcore.team.exception.TeamException; -import fr.luc.crcore.team.TeamRepository; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.TeamRanking; -import fr.luc.crcore.team.TeamVisibility; -import fr.luc.crcore.team.TeamColor; -import fr.luc.crcore.team.TeamRole; -import fr.luc.crcore.team.TeamMember; -import fr.luc.crcore.team.Team; +package fr.luc.crcore.features.team.impl; +import fr.luc.crcore.features.team.exception.TeamAccessException; +import fr.luc.crcore.features.team.exception.TeamNotFoundException; +import fr.luc.crcore.features.team.exception.TeamAlreadyExistsException; +import fr.luc.crcore.features.team.exception.TeamException; +import fr.luc.crcore.features.team.TeamRepository; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.TeamRanking; +import fr.luc.crcore.features.team.TeamVisibility; +import fr.luc.crcore.features.team.TeamColor; +import fr.luc.crcore.features.team.TeamRole; +import fr.luc.crcore.features.team.TeamMember; +import fr.luc.crcore.features.team.Team; import java.util.Collection; import java.util.Collections; diff --git a/src/main/java/fr/luc/crcore/team/impl/SqliteTeamRepository.java b/src/main/java/fr/luc/crcore/features/team/impl/SqliteTeamRepository.java similarity index 95% rename from src/main/java/fr/luc/crcore/team/impl/SqliteTeamRepository.java rename to src/main/java/fr/luc/crcore/features/team/impl/SqliteTeamRepository.java index ea22344..404b1e0 100644 --- a/src/main/java/fr/luc/crcore/team/impl/SqliteTeamRepository.java +++ b/src/main/java/fr/luc/crcore/features/team/impl/SqliteTeamRepository.java @@ -1,19 +1,19 @@ -package fr.luc.crcore.team.impl; -import fr.luc.crcore.team.exception.TeamAccessException; -import fr.luc.crcore.team.exception.TeamNotFoundException; -import fr.luc.crcore.team.exception.TeamAlreadyExistsException; -import fr.luc.crcore.team.exception.TeamException; -import fr.luc.crcore.team.TeamRepository; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.TeamRanking; -import fr.luc.crcore.team.TeamVisibility; -import fr.luc.crcore.team.TeamColor; -import fr.luc.crcore.team.TeamRole; -import fr.luc.crcore.team.TeamMember; -import fr.luc.crcore.team.Team; +package fr.luc.crcore.features.team.impl; +import fr.luc.crcore.features.team.exception.TeamAccessException; +import fr.luc.crcore.features.team.exception.TeamNotFoundException; +import fr.luc.crcore.features.team.exception.TeamAlreadyExistsException; +import fr.luc.crcore.features.team.exception.TeamException; +import fr.luc.crcore.features.team.TeamRepository; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.TeamRanking; +import fr.luc.crcore.features.team.TeamVisibility; +import fr.luc.crcore.features.team.TeamColor; +import fr.luc.crcore.features.team.TeamRole; +import fr.luc.crcore.features.team.TeamMember; +import fr.luc.crcore.features.team.Team; -import fr.luc.crcore.database.ColumnType; -import fr.luc.crcore.database.Database; +import fr.luc.crcore.util.database.ColumnType; +import fr.luc.crcore.util.database.Database; import java.time.Instant; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/team/impl/TeamServiceImpl.java b/src/main/java/fr/luc/crcore/features/team/impl/TeamServiceImpl.java similarity index 94% rename from src/main/java/fr/luc/crcore/team/impl/TeamServiceImpl.java rename to src/main/java/fr/luc/crcore/features/team/impl/TeamServiceImpl.java index 62700ca..6536c36 100644 --- a/src/main/java/fr/luc/crcore/team/impl/TeamServiceImpl.java +++ b/src/main/java/fr/luc/crcore/features/team/impl/TeamServiceImpl.java @@ -1,16 +1,16 @@ -package fr.luc.crcore.team.impl; -import fr.luc.crcore.team.exception.TeamAccessException; -import fr.luc.crcore.team.exception.TeamNotFoundException; -import fr.luc.crcore.team.exception.TeamAlreadyExistsException; -import fr.luc.crcore.team.exception.TeamException; -import fr.luc.crcore.team.TeamRepository; -import fr.luc.crcore.team.TeamService; -import fr.luc.crcore.team.TeamRanking; -import fr.luc.crcore.team.TeamVisibility; -import fr.luc.crcore.team.TeamColor; -import fr.luc.crcore.team.TeamRole; -import fr.luc.crcore.team.TeamMember; -import fr.luc.crcore.team.Team; +package fr.luc.crcore.features.team.impl; +import fr.luc.crcore.features.team.exception.TeamAccessException; +import fr.luc.crcore.features.team.exception.TeamNotFoundException; +import fr.luc.crcore.features.team.exception.TeamAlreadyExistsException; +import fr.luc.crcore.features.team.exception.TeamException; +import fr.luc.crcore.features.team.TeamRepository; +import fr.luc.crcore.features.team.TeamService; +import fr.luc.crcore.features.team.TeamRanking; +import fr.luc.crcore.features.team.TeamVisibility; +import fr.luc.crcore.features.team.TeamColor; +import fr.luc.crcore.features.team.TeamRole; +import fr.luc.crcore.features.team.TeamMember; +import fr.luc.crcore.features.team.Team; import org.bukkit.Location; diff --git a/src/main/java/fr/luc/crcore/player/PlayerProfileRepository.java b/src/main/java/fr/luc/crcore/player/PlayerProfileRepository.java deleted file mode 100644 index 8b708b9..0000000 --- a/src/main/java/fr/luc/crcore/player/PlayerProfileRepository.java +++ /dev/null @@ -1,6 +0,0 @@ -package fr.luc.crcore.player; - -import fr.luc.crcore.common.Repository; - -public interface PlayerProfileRepository extends Repository { -} diff --git a/src/main/java/fr/luc/crcore/broadcast/BroadcastAudience.java b/src/main/java/fr/luc/crcore/util/broadcast/BroadcastAudience.java similarity index 94% rename from src/main/java/fr/luc/crcore/broadcast/BroadcastAudience.java rename to src/main/java/fr/luc/crcore/util/broadcast/BroadcastAudience.java index 48e9485..4173b9a 100644 --- a/src/main/java/fr/luc/crcore/broadcast/BroadcastAudience.java +++ b/src/main/java/fr/luc/crcore/util/broadcast/BroadcastAudience.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.broadcast; +package fr.luc.crcore.util.broadcast; /** * Public destinataire d'un broadcast CR-Core. diff --git a/src/main/java/fr/luc/crcore/broadcast/BroadcastContext.java b/src/main/java/fr/luc/crcore/util/broadcast/BroadcastContext.java similarity index 97% rename from src/main/java/fr/luc/crcore/broadcast/BroadcastContext.java rename to src/main/java/fr/luc/crcore/util/broadcast/BroadcastContext.java index 2d14636..8702007 100644 --- a/src/main/java/fr/luc/crcore/broadcast/BroadcastContext.java +++ b/src/main/java/fr/luc/crcore/util/broadcast/BroadcastContext.java @@ -1,6 +1,6 @@ -package fr.luc.crcore.broadcast; +package fr.luc.crcore.util.broadcast; -import fr.luc.crcore.team.Team; +import fr.luc.crcore.features.team.Team; import java.util.Collections; import java.util.LinkedHashMap; diff --git a/src/main/java/fr/luc/crcore/broadcast/BroadcastService.java b/src/main/java/fr/luc/crcore/util/broadcast/BroadcastService.java similarity index 98% rename from src/main/java/fr/luc/crcore/broadcast/BroadcastService.java rename to src/main/java/fr/luc/crcore/util/broadcast/BroadcastService.java index 1b4e767..14ace23 100644 --- a/src/main/java/fr/luc/crcore/broadcast/BroadcastService.java +++ b/src/main/java/fr/luc/crcore/util/broadcast/BroadcastService.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.broadcast; +package fr.luc.crcore.util.broadcast; import java.util.List; diff --git a/src/main/java/fr/luc/crcore/broadcast/CRCoreBroadcastListener.java b/src/main/java/fr/luc/crcore/util/broadcast/CRCoreBroadcastListener.java similarity index 89% rename from src/main/java/fr/luc/crcore/broadcast/CRCoreBroadcastListener.java rename to src/main/java/fr/luc/crcore/util/broadcast/CRCoreBroadcastListener.java index 9bff5f8..f31eb84 100644 --- a/src/main/java/fr/luc/crcore/broadcast/CRCoreBroadcastListener.java +++ b/src/main/java/fr/luc/crcore/util/broadcast/CRCoreBroadcastListener.java @@ -1,18 +1,18 @@ -package fr.luc.crcore.broadcast; +package fr.luc.crcore.util.broadcast; -import fr.luc.crcore.player.event.PlayerProfileCreateEvent; -import fr.luc.crcore.player.event.PlayerProfileDeleteEvent; -import fr.luc.crcore.player.event.PlayerScoreChangeEvent; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.event.PlayerJoinTeamEvent; -import fr.luc.crcore.team.event.TeamCreateEvent; -import fr.luc.crcore.team.event.TeamDissolveEvent; -import fr.luc.crcore.team.event.TeamLeadershipTransferEvent; -import fr.luc.crcore.team.event.TeamMemberAddEvent; -import fr.luc.crcore.team.event.TeamMemberRemoveEvent; -import fr.luc.crcore.team.event.TeamScoreChangeEvent; -import fr.luc.crcore.team.event.TeamSpawnPointChangeEvent; -import fr.luc.crcore.team.event.TeamVisibilityChangeEvent; +import fr.luc.crcore.features.player.event.PlayerProfileCreateEvent; +import fr.luc.crcore.features.player.event.PlayerProfileDeleteEvent; +import fr.luc.crcore.features.player.event.PlayerScoreChangeEvent; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.event.PlayerJoinTeamEvent; +import fr.luc.crcore.features.team.event.TeamCreateEvent; +import fr.luc.crcore.features.team.event.TeamDissolveEvent; +import fr.luc.crcore.features.team.event.TeamLeadershipTransferEvent; +import fr.luc.crcore.features.team.event.TeamMemberAddEvent; +import fr.luc.crcore.features.team.event.TeamMemberRemoveEvent; +import fr.luc.crcore.features.team.event.TeamScoreChangeEvent; +import fr.luc.crcore.features.team.event.TeamSpawnPointChangeEvent; +import fr.luc.crcore.features.team.event.TeamVisibilityChangeEvent; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.event.EventHandler; diff --git a/src/main/java/fr/luc/crcore/broadcast/impl/YamlBroadcastService.java b/src/main/java/fr/luc/crcore/util/broadcast/impl/YamlBroadcastService.java similarity index 96% rename from src/main/java/fr/luc/crcore/broadcast/impl/YamlBroadcastService.java rename to src/main/java/fr/luc/crcore/util/broadcast/impl/YamlBroadcastService.java index ef774f8..7d18661 100644 --- a/src/main/java/fr/luc/crcore/broadcast/impl/YamlBroadcastService.java +++ b/src/main/java/fr/luc/crcore/util/broadcast/impl/YamlBroadcastService.java @@ -1,11 +1,11 @@ -package fr.luc.crcore.broadcast.impl; +package fr.luc.crcore.util.broadcast.impl; -import fr.luc.crcore.broadcast.BroadcastAudience; -import fr.luc.crcore.broadcast.BroadcastContext; -import fr.luc.crcore.broadcast.BroadcastService; -import fr.luc.crcore.message.MessagesService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamMember; +import fr.luc.crcore.util.broadcast.BroadcastAudience; +import fr.luc.crcore.util.broadcast.BroadcastContext; +import fr.luc.crcore.util.broadcast.BroadcastService; +import fr.luc.crcore.util.message.MessagesService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamMember; import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/src/main/java/fr/luc/crcore/command/AbstractCommand.java b/src/main/java/fr/luc/crcore/util/command/AbstractCommand.java similarity index 99% rename from src/main/java/fr/luc/crcore/command/AbstractCommand.java rename to src/main/java/fr/luc/crcore/util/command/AbstractCommand.java index 1391c68..ccb3905 100644 --- a/src/main/java/fr/luc/crcore/command/AbstractCommand.java +++ b/src/main/java/fr/luc/crcore/util/command/AbstractCommand.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; diff --git a/src/main/java/fr/luc/crcore/command/ArgumentDef.java b/src/main/java/fr/luc/crcore/util/command/ArgumentDef.java similarity index 93% rename from src/main/java/fr/luc/crcore/command/ArgumentDef.java rename to src/main/java/fr/luc/crcore/util/command/ArgumentDef.java index 1bf492a..d87f747 100644 --- a/src/main/java/fr/luc/crcore/command/ArgumentDef.java +++ b/src/main/java/fr/luc/crcore/util/command/ArgumentDef.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; import java.util.Objects; diff --git a/src/main/java/fr/luc/crcore/command/ArgumentType.java b/src/main/java/fr/luc/crcore/util/command/ArgumentType.java similarity index 89% rename from src/main/java/fr/luc/crcore/command/ArgumentType.java rename to src/main/java/fr/luc/crcore/util/command/ArgumentType.java index d2c9661..308a677 100644 --- a/src/main/java/fr/luc/crcore/command/ArgumentType.java +++ b/src/main/java/fr/luc/crcore/util/command/ArgumentType.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; import org.bukkit.command.CommandSender; diff --git a/src/main/java/fr/luc/crcore/command/ArgumentTypes.java b/src/main/java/fr/luc/crcore/util/command/ArgumentTypes.java similarity index 99% rename from src/main/java/fr/luc/crcore/command/ArgumentTypes.java rename to src/main/java/fr/luc/crcore/util/command/ArgumentTypes.java index 11a88be..f53bedb 100644 --- a/src/main/java/fr/luc/crcore/command/ArgumentTypes.java +++ b/src/main/java/fr/luc/crcore/util/command/ArgumentTypes.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; diff --git a/src/main/java/fr/luc/crcore/command/BaseCommand.java b/src/main/java/fr/luc/crcore/util/command/BaseCommand.java similarity index 98% rename from src/main/java/fr/luc/crcore/command/BaseCommand.java rename to src/main/java/fr/luc/crcore/util/command/BaseCommand.java index 4146460..8a1dbce 100644 --- a/src/main/java/fr/luc/crcore/command/BaseCommand.java +++ b/src/main/java/fr/luc/crcore/util/command/BaseCommand.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; import org.bukkit.ChatColor; import org.bukkit.command.CommandExecutor; diff --git a/src/main/java/fr/luc/crcore/command/Command.java b/src/main/java/fr/luc/crcore/util/command/Command.java similarity index 97% rename from src/main/java/fr/luc/crcore/command/Command.java rename to src/main/java/fr/luc/crcore/util/command/Command.java index d68bf71..6dab8c5 100644 --- a/src/main/java/fr/luc/crcore/command/Command.java +++ b/src/main/java/fr/luc/crcore/util/command/Command.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; import org.bukkit.command.CommandSender; diff --git a/src/main/java/fr/luc/crcore/command/CommandContext.java b/src/main/java/fr/luc/crcore/util/command/CommandContext.java similarity index 98% rename from src/main/java/fr/luc/crcore/command/CommandContext.java rename to src/main/java/fr/luc/crcore/util/command/CommandContext.java index 7fb65a7..d37c8d8 100644 --- a/src/main/java/fr/luc/crcore/command/CommandContext.java +++ b/src/main/java/fr/luc/crcore/util/command/CommandContext.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/fr/luc/crcore/command/CommandException.java b/src/main/java/fr/luc/crcore/util/command/CommandException.java similarity index 86% rename from src/main/java/fr/luc/crcore/command/CommandException.java rename to src/main/java/fr/luc/crcore/util/command/CommandException.java index e25e369..8e54db9 100644 --- a/src/main/java/fr/luc/crcore/command/CommandException.java +++ b/src/main/java/fr/luc/crcore/util/command/CommandException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; public class CommandException extends RuntimeException { diff --git a/src/main/java/fr/luc/crcore/command/CommandResult.java b/src/main/java/fr/luc/crcore/util/command/CommandResult.java similarity index 97% rename from src/main/java/fr/luc/crcore/command/CommandResult.java rename to src/main/java/fr/luc/crcore/util/command/CommandResult.java index 7455fc5..d94ede6 100644 --- a/src/main/java/fr/luc/crcore/command/CommandResult.java +++ b/src/main/java/fr/luc/crcore/util/command/CommandResult.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; public final class CommandResult { diff --git a/src/main/java/fr/luc/crcore/command/SubCommand.java b/src/main/java/fr/luc/crcore/util/command/SubCommand.java similarity index 94% rename from src/main/java/fr/luc/crcore/command/SubCommand.java rename to src/main/java/fr/luc/crcore/util/command/SubCommand.java index 723234d..3d96ad8 100644 --- a/src/main/java/fr/luc/crcore/command/SubCommand.java +++ b/src/main/java/fr/luc/crcore/util/command/SubCommand.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.command; +package fr.luc.crcore.util.command; /** * Sous-commande imbriquée. Peut être : diff --git a/src/main/java/fr/luc/crcore/common/AbstractEntity.java b/src/main/java/fr/luc/crcore/util/common/AbstractEntity.java similarity index 94% rename from src/main/java/fr/luc/crcore/common/AbstractEntity.java rename to src/main/java/fr/luc/crcore/util/common/AbstractEntity.java index 174848f..223dde4 100644 --- a/src/main/java/fr/luc/crcore/common/AbstractEntity.java +++ b/src/main/java/fr/luc/crcore/util/common/AbstractEntity.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.common; +package fr.luc.crcore.util.common; import java.util.Objects; import java.util.UUID; diff --git a/src/main/java/fr/luc/crcore/common/Identifiable.java b/src/main/java/fr/luc/crcore/util/common/Identifiable.java similarity index 69% rename from src/main/java/fr/luc/crcore/common/Identifiable.java rename to src/main/java/fr/luc/crcore/util/common/Identifiable.java index dffee31..28a0183 100644 --- a/src/main/java/fr/luc/crcore/common/Identifiable.java +++ b/src/main/java/fr/luc/crcore/util/common/Identifiable.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.common; +package fr.luc.crcore.util.common; import java.util.UUID; diff --git a/src/main/java/fr/luc/crcore/common/Named.java b/src/main/java/fr/luc/crcore/util/common/Named.java similarity index 59% rename from src/main/java/fr/luc/crcore/common/Named.java rename to src/main/java/fr/luc/crcore/util/common/Named.java index 40c1840..5aa8b57 100644 --- a/src/main/java/fr/luc/crcore/common/Named.java +++ b/src/main/java/fr/luc/crcore/util/common/Named.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.common; +package fr.luc.crcore.util.common; public interface Named { diff --git a/src/main/java/fr/luc/crcore/common/Repository.java b/src/main/java/fr/luc/crcore/util/common/Repository.java similarity index 95% rename from src/main/java/fr/luc/crcore/common/Repository.java rename to src/main/java/fr/luc/crcore/util/common/Repository.java index 7f745b0..78afd15 100644 --- a/src/main/java/fr/luc/crcore/common/Repository.java +++ b/src/main/java/fr/luc/crcore/util/common/Repository.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.common; +package fr.luc.crcore.util.common; import java.util.Collection; import java.util.Optional; diff --git a/src/main/java/fr/luc/crcore/common/ScoreHolder.java b/src/main/java/fr/luc/crcore/util/common/ScoreHolder.java similarity index 86% rename from src/main/java/fr/luc/crcore/common/ScoreHolder.java rename to src/main/java/fr/luc/crcore/util/common/ScoreHolder.java index 85ecc1a..b89e07f 100644 --- a/src/main/java/fr/luc/crcore/common/ScoreHolder.java +++ b/src/main/java/fr/luc/crcore/util/common/ScoreHolder.java @@ -1,10 +1,10 @@ -package fr.luc.crcore.common; +package fr.luc.crcore.util.common; import java.util.Map; /** * Contrat partagé par tout ce qui porte des scores nommés. Implémenté par - * {@link fr.luc.crcore.team.Team} et {@link fr.luc.crcore.player.PlayerProfile}. + * {@link fr.luc.crcore.features.team.Team} et {@link fr.luc.crcore.features.player.PlayerProfile}. * *

Les scores sont identifiés par un nom libre (ex. {@code "kills"}, * {@code "objectives"}, {@code "global"}) et stockés comme entiers. Un jeu diff --git a/src/main/java/fr/luc/crcore/database/ColumnType.java b/src/main/java/fr/luc/crcore/util/database/ColumnType.java similarity index 96% rename from src/main/java/fr/luc/crcore/database/ColumnType.java rename to src/main/java/fr/luc/crcore/util/database/ColumnType.java index 66ee48f..514fc0d 100644 --- a/src/main/java/fr/luc/crcore/database/ColumnType.java +++ b/src/main/java/fr/luc/crcore/util/database/ColumnType.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.database; +package fr.luc.crcore.util.database; /** * Types de colonnes supportés par {@link TableBuilder}, chacun mappé sur un diff --git a/src/main/java/fr/luc/crcore/database/Database.java b/src/main/java/fr/luc/crcore/util/database/Database.java similarity index 99% rename from src/main/java/fr/luc/crcore/database/Database.java rename to src/main/java/fr/luc/crcore/util/database/Database.java index f057d6a..121abd3 100644 --- a/src/main/java/fr/luc/crcore/database/Database.java +++ b/src/main/java/fr/luc/crcore/util/database/Database.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.database; +package fr.luc.crcore.util.database; import java.io.File; import java.sql.Connection; diff --git a/src/main/java/fr/luc/crcore/database/DatabaseException.java b/src/main/java/fr/luc/crcore/util/database/DatabaseException.java similarity index 93% rename from src/main/java/fr/luc/crcore/database/DatabaseException.java rename to src/main/java/fr/luc/crcore/util/database/DatabaseException.java index 7226b41..44ecf58 100644 --- a/src/main/java/fr/luc/crcore/database/DatabaseException.java +++ b/src/main/java/fr/luc/crcore/util/database/DatabaseException.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.database; +package fr.luc.crcore.util.database; /** * Exception levée pour toute erreur de persistance (ouverture de connexion, diff --git a/src/main/java/fr/luc/crcore/database/RowMapper.java b/src/main/java/fr/luc/crcore/util/database/RowMapper.java similarity index 93% rename from src/main/java/fr/luc/crcore/database/RowMapper.java rename to src/main/java/fr/luc/crcore/util/database/RowMapper.java index 56aec97..8f1b093 100644 --- a/src/main/java/fr/luc/crcore/database/RowMapper.java +++ b/src/main/java/fr/luc/crcore/util/database/RowMapper.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.database; +package fr.luc.crcore.util.database; import java.sql.ResultSet; import java.sql.SQLException; diff --git a/src/main/java/fr/luc/crcore/database/TableBuilder.java b/src/main/java/fr/luc/crcore/util/database/TableBuilder.java similarity index 99% rename from src/main/java/fr/luc/crcore/database/TableBuilder.java rename to src/main/java/fr/luc/crcore/util/database/TableBuilder.java index 6373cee..f470403 100644 --- a/src/main/java/fr/luc/crcore/database/TableBuilder.java +++ b/src/main/java/fr/luc/crcore/util/database/TableBuilder.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.database; +package fr.luc.crcore.util.database; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/fr/luc/crcore/gui/AbstractInventoryGui.java b/src/main/java/fr/luc/crcore/util/gui/AbstractInventoryGui.java similarity index 99% rename from src/main/java/fr/luc/crcore/gui/AbstractInventoryGui.java rename to src/main/java/fr/luc/crcore/util/gui/AbstractInventoryGui.java index cc471f9..cc27237 100644 --- a/src/main/java/fr/luc/crcore/gui/AbstractInventoryGui.java +++ b/src/main/java/fr/luc/crcore/util/gui/AbstractInventoryGui.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.gui; +package fr.luc.crcore.util.gui; import org.bukkit.Bukkit; import org.bukkit.entity.HumanEntity; diff --git a/src/main/java/fr/luc/crcore/gui/GuiClickHandler.java b/src/main/java/fr/luc/crcore/util/gui/GuiClickHandler.java similarity index 95% rename from src/main/java/fr/luc/crcore/gui/GuiClickHandler.java rename to src/main/java/fr/luc/crcore/util/gui/GuiClickHandler.java index 67937ff..3ab5a84 100644 --- a/src/main/java/fr/luc/crcore/gui/GuiClickHandler.java +++ b/src/main/java/fr/luc/crcore/util/gui/GuiClickHandler.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.gui; +package fr.luc.crcore.util.gui; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/fr/luc/crcore/gui/GuiItems.java b/src/main/java/fr/luc/crcore/util/gui/GuiItems.java similarity index 99% rename from src/main/java/fr/luc/crcore/gui/GuiItems.java rename to src/main/java/fr/luc/crcore/util/gui/GuiItems.java index 2d6b3a2..22eaa28 100644 --- a/src/main/java/fr/luc/crcore/gui/GuiItems.java +++ b/src/main/java/fr/luc/crcore/util/gui/GuiItems.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.gui; +package fr.luc.crcore.util.gui; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/src/main/java/fr/luc/crcore/gui/GuiListener.java b/src/main/java/fr/luc/crcore/util/gui/GuiListener.java similarity index 98% rename from src/main/java/fr/luc/crcore/gui/GuiListener.java rename to src/main/java/fr/luc/crcore/util/gui/GuiListener.java index daa03ca..8a9b1bf 100644 --- a/src/main/java/fr/luc/crcore/gui/GuiListener.java +++ b/src/main/java/fr/luc/crcore/util/gui/GuiListener.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.gui; +package fr.luc.crcore.util.gui; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/fr/luc/crcore/message/MessagesService.java b/src/main/java/fr/luc/crcore/util/message/MessagesService.java similarity index 98% rename from src/main/java/fr/luc/crcore/message/MessagesService.java rename to src/main/java/fr/luc/crcore/util/message/MessagesService.java index 900e2a4..649a8b5 100644 --- a/src/main/java/fr/luc/crcore/message/MessagesService.java +++ b/src/main/java/fr/luc/crcore/util/message/MessagesService.java @@ -1,4 +1,4 @@ -package fr.luc.crcore.message; +package fr.luc.crcore.util.message; import java.io.File; diff --git a/src/main/java/fr/luc/crcore/message/impl/YamlMessagesService.java b/src/main/java/fr/luc/crcore/util/message/impl/YamlMessagesService.java similarity index 99% rename from src/main/java/fr/luc/crcore/message/impl/YamlMessagesService.java rename to src/main/java/fr/luc/crcore/util/message/impl/YamlMessagesService.java index 99b2953..c0e8a11 100644 --- a/src/main/java/fr/luc/crcore/message/impl/YamlMessagesService.java +++ b/src/main/java/fr/luc/crcore/util/message/impl/YamlMessagesService.java @@ -1,5 +1,5 @@ -package fr.luc.crcore.message.impl; -import fr.luc.crcore.message.MessagesService; +package fr.luc.crcore.util.message.impl; +import fr.luc.crcore.util.message.MessagesService; import org.bukkit.ChatColor; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/fr/luc/crcore/placeholder/CRCorePlaceholderExpansion.java b/src/main/java/fr/luc/crcore/util/placeholder/CRCorePlaceholderExpansion.java similarity index 96% rename from src/main/java/fr/luc/crcore/placeholder/CRCorePlaceholderExpansion.java rename to src/main/java/fr/luc/crcore/util/placeholder/CRCorePlaceholderExpansion.java index 8bddc84..03b14bb 100644 --- a/src/main/java/fr/luc/crcore/placeholder/CRCorePlaceholderExpansion.java +++ b/src/main/java/fr/luc/crcore/util/placeholder/CRCorePlaceholderExpansion.java @@ -1,8 +1,8 @@ -package fr.luc.crcore.placeholder; +package fr.luc.crcore.util.placeholder; -import fr.luc.crcore.player.PlayerProfileService; -import fr.luc.crcore.team.Team; -import fr.luc.crcore.team.TeamService; +import fr.luc.crcore.features.player.PlayerProfileService; +import fr.luc.crcore.features.team.Team; +import fr.luc.crcore.features.team.TeamService; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer;