Commit 5b1747

2025-12-04 02:49:59 Bernardo Zukerman: sla
tutorial/português.md ..
@@ 3,6 3,135 @@
Este tutorial foi criado para guiar você por todas as mecânicas e sistemas exclusivos do nosso servidor. Aqui você aprenderá como proteger seus terrenos, criar grupos, colocar recompensas em seus inimigos e muito mais.
---
+
+ # Diagramas do Plugin BlockyClaim
+
+ ## Estrutura de Classes (Simplificada)
+
+ ```mermaid
+ classDiagram
+ class BlockyClaim {
+ +onEnable()
+ +onDisable()
+ +getClaimManager()
+ +getPlayerDataManager()
+ }
+ class ClaimManager {
+ -List~Claim~ claims
+ +getClaimAt(Location)
+ +addClaim(Claim)
+ +createClaim(Player, Location, Location)
+ }
+ class Claim {
+ -String owner
+ -String name
+ -Location minPoint
+ -Location maxPoint
+ -List~String~ trusted
+ +isLocationInside(Location)
+ +hasPermission(String player)
+ }
+ class PlayerDataManager {
+ -Map~String, Integer~ claimBlocks
+ +getClaimBlocks(String player)
+ +addClaimBlocks(String player, int amount)
+ }
+ class CommandManager {
+ +onCommand()
+ -handleClaimCommand()
+ -handleTrustCommand()
+ }
+ class Listeners {
+ +ClaimToolListener
+ +ProtectionListener
+ }
+
+ BlockyClaim --> ClaimManager
+ BlockyClaim --> PlayerDataManager
+ BlockyClaim --> CommandManager
+ BlockyClaim --> Listeners
+ ClaimManager --> Claim
+ CommandManager ..> ClaimManager
+ CommandManager ..> PlayerDataManager
+ Listeners ..> ClaimManager
+ ```
+
+ ## Fluxo de Criação de Claim
+
+ ```mermaid
+ sequenceDiagram
+ actor Player
+ participant ToolListener as ClaimToolListener
+ participant Command as CommandManager
+ participant Manager as ClaimManager
+ participant Data as PlayerDataManager
+ participant DB as Database
+
+ Player->>ToolListener: Right Click (Corner 1)
+ ToolListener-->>Player: "Primeiro canto definido"
+
+ Player->>ToolListener: Right Click (Corner 2)
+ ToolListener->>Manager: isAreaClaimed?
+ alt Area Occupied
+ Manager-->>ToolListener: True
+ ToolListener-->>Player: "Área sobreposta!"
+ else Area Free
+ ToolListener-->>Player: "Segundo canto definido. Use /claim confirm <nome>"
+ ToolListener->>ToolListener: Store Selection
+ end
+
+ Player->>Command: /claim confirm MinhaCasa
+ Command->>ToolListener: Get Pending Selection
+ Command->>Manager: Check Overlap Again
+ Command->>Manager: Calculate Cost (Blocks)
+ Command->>Data: Check Balance
+
+ alt Insufficient Blocks
+ Data-->>Command: Balance Low
+ Command-->>Player: "Blocos insuficientes!"
+ else Sufficient Blocks
+ Data->>Data: Deduct Blocks
+ Command->>Manager: addClaim(New Claim)
+ Manager->>DB: Save Claim
+ Command-->>Player: "Claim criada com sucesso!"
+ end
+ ```
+
+ ## Fluxo de Proteção (Quebrar/Colocar Bloco)
+
+ ```mermaid
+ flowchart TD
+ A[Evento: BlockBreak/Place] --> B(ProtectionListener)
+ B --> C{Existe Claim no Local?}
+ C -- Não --> D[Permitir Ação]
+ C -- Sim --> E{Player é Dono ou Trust?}
+ E -- Sim --> D
+ E -- Não --> F[Cancelar Evento]
+ F --> G[Enviar Mensagem "Sem Permissão"]
+ ```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
## Autenticação
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9