# itsdreamdkv2/dn-vagt-api architecture

> Architecture diagram of the GitHub repository itsdreamdkv2/dn-vagt-api, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/itsdreamdkv2/dn-vagt-api
- Repository: https://github.com/itsdreamdkv2/dn-vagt-api

## Overview

This is a small Java API for a Minecraft/Spigot prison-guard (“Vagt”) plugin, not a complete application: it defines a provider-facing lookup API and the profile contract exposed to callers. The profile groups identity, rank, activity/economy statistics, achievements, player conversion, and persistence operations; rank, achievement, and teleport-block enums supply its domain types. The excerpts establish the API shape and type references, but not provider implementations or runtime storage, so those are not represented.

Main entry points: [`src/main/java/dk/dream/vagt/api/VagtProfile.java`](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/VagtProfile.java) (Vagt Profile), [`src/main/java/dk/dream/vagt/api/VagtAPI.java`](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/VagtAPI.java) (Vagt API), [`src/main/java/dk/dream/vagt/api/achievement/AchievementType.java`](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/achievement/AchievementType.java) (Achievement Type), [`src/main/java/dk/dream/vagt/api/rank/VagtRank.java`](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/rank/VagtRank.java) (Vagt Rank)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Public API"]
  node_vagt_api["Vagt API<br/>[VagtAPI.java]"]
  node_profile["Vagt Profile<br/>[VagtProfile.java]"]
end

subgraph group_domain["Domain Types"]
  node_achievement["Achievement Type"]
  node_rank["Vagt Rank<br/>[VagtRank.java]"]
  node_teleport_block["Teleport Block<br/>[TeleportBlock.java]"]
end

node_plugin_user(("Plugin Caller"))

node_plugin_user -->|"queries profiles"| node_vagt_api
node_vagt_api -->|"returns profiles"| node_profile
node_profile -->|"checks achievements"| node_achievement
node_profile -->|"uses rank"| node_rank
node_profile -->|"records teleports"| node_teleport_block

click node_vagt_api "https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/VagtAPI.java"
click node_profile "https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/VagtProfile.java"
click node_achievement "https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/achievement/AchievementType.java"
click node_rank "https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/rank/VagtRank.java"
click node_teleport_block "https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/warp/TeleportBlock.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_vagt_api,node_profile toneBlue
class node_achievement,node_rank,node_teleport_block toneAmber
class node_plugin_user toneIndigo
```

## Components

### Public API

- [Vagt API](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/VagtAPI.java): `src/main/java/dk/dream/vagt/api/VagtAPI.java`
- [Vagt Profile](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/VagtProfile.java): `src/main/java/dk/dream/vagt/api/VagtProfile.java`

### Domain Types

- [Achievement Type](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/achievement/AchievementType.java): `src/main/java/dk/dream/vagt/api/achievement/AchievementType.java`
- [Vagt Rank](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/rank/VagtRank.java): `src/main/java/dk/dream/vagt/api/rank/VagtRank.java`
- [Teleport Block](https://github.com/itsdreamdkv2/dn-vagt-api/blob/master/src/main/java/dk/dream/vagt/api/warp/TeleportBlock.java): `src/main/java/dk/dream/vagt/api/warp/TeleportBlock.java`

### Other components

- **Plugin Caller**

## Connections

- Plugin Caller → Vagt API: queries profiles (evidence: `src/main/java/dk/dream/vagt/api/VagtAPI.java`)
- Vagt API → Vagt Profile: returns profiles (evidence: `src/main/java/dk/dream/vagt/api/VagtAPI.java`)
- Vagt Profile → Achievement Type: checks achievements (evidence: `src/main/java/dk/dream/vagt/api/VagtProfile.java`)
- Vagt Profile → Vagt Rank: uses rank (evidence: `src/main/java/dk/dream/vagt/api/VagtProfile.java`)
- Vagt Profile → Teleport Block: records teleports (evidence: `src/main/java/dk/dream/vagt/api/VagtProfile.java`)
