From 29f7bf4d5cc206e32b6313e3db7663826b5ff203 Mon Sep 17 00:00:00 2001 From: Derek Chen Date: Thu, 30 Oct 2025 23:17:16 -0500 Subject: [PATCH 1/6] feat: gitignore made and also exposed some events for usage with discordsrv --- .gitignore | 89 ++++++++++++++++++ .idea/PlayerStats.iml | 1 + .idea/copilot.data.migration.agent.xml | 6 ++ .idea/copilot.data.migration.ask.xml | 6 ++ .idea/copilot.data.migration.ask2agent.xml | 6 ++ .idea/copilot.data.migration.edit.xml | 6 ++ .idea/discord.xml | 14 +++ .idea/modules.xml | 8 ++ .../api/events/StatCalculatedEvent.java | 86 +++++++++++++++++ .../api/events/StatSharedEvent.java | 94 +++++++++++++++++++ .../core/commands/ShareCommand.java | 11 ++- .../core/multithreading/StatThread.java | 10 +- 12 files changed, 334 insertions(+), 3 deletions(-) create mode 100644 .gitignore create mode 100644 .idea/copilot.data.migration.agent.xml create mode 100644 .idea/copilot.data.migration.ask.xml create mode 100644 .idea/copilot.data.migration.ask2agent.xml create mode 100644 .idea/copilot.data.migration.edit.xml create mode 100644 .idea/discord.xml create mode 100644 .idea/modules.xml create mode 100644 src/main/java/com/artemis/the/gr8/playerstats/api/events/StatCalculatedEvent.java create mode 100644 src/main/java/com/artemis/the/gr8/playerstats/api/events/StatSharedEvent.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..1dd21dae --- /dev/null +++ b/.gitignore @@ -0,0 +1,89 @@ +# Compiled class files +*.class + +# Log files +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# Virtual machine crash logs +hs_err_pid* +replay_pid* + +# Maven +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar + +# IntelliJ IDEA +.idea/ +*.iws +*.iml +*.ipr +out/ +.idea_modules/ + +# Eclipse +.classpath +.project +.settings/ +bin/ + +# NetBeans +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +# VS Code +.vscode/ +*.code-workspace + +# macOS +.DS_Store +.AppleDouble +.LSOverride + +# Windows +Thumbs.db +ehthumbs.db +Desktop.ini +$RECYCLE.BIN/ + +# Linux +*~ +.directory +.Trash-* + +# Backup files +*.bak +*.swp +*.swo +*~ + +# Temporary files +*.tmp +*.temp + diff --git a/.idea/PlayerStats.iml b/.idea/PlayerStats.iml index a591bfe1..ad421000 100644 --- a/.idea/PlayerStats.iml +++ b/.idea/PlayerStats.iml @@ -7,6 +7,7 @@ SPIGOT ADVENTURE + 1 diff --git a/.idea/copilot.data.migration.agent.xml b/.idea/copilot.data.migration.agent.xml new file mode 100644 index 00000000..4ea72a91 --- /dev/null +++ b/.idea/copilot.data.migration.agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/copilot.data.migration.ask.xml b/.idea/copilot.data.migration.ask.xml new file mode 100644 index 00000000..7ef04e2e --- /dev/null +++ b/.idea/copilot.data.migration.ask.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/copilot.data.migration.ask2agent.xml b/.idea/copilot.data.migration.ask2agent.xml new file mode 100644 index 00000000..1f2ea11e --- /dev/null +++ b/.idea/copilot.data.migration.ask2agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/copilot.data.migration.edit.xml b/.idea/copilot.data.migration.edit.xml new file mode 100644 index 00000000..8648f940 --- /dev/null +++ b/.idea/copilot.data.migration.edit.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 00000000..912db825 --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..da505a36 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/artemis/the/gr8/playerstats/api/events/StatCalculatedEvent.java b/src/main/java/com/artemis/the/gr8/playerstats/api/events/StatCalculatedEvent.java new file mode 100644 index 00000000..438adb1f --- /dev/null +++ b/src/main/java/com/artemis/the/gr8/playerstats/api/events/StatCalculatedEvent.java @@ -0,0 +1,86 @@ +package com.artemis.the.gr8.playerstats.api.events; + +import com.artemis.the.gr8.playerstats.api.StatRequest; +import com.artemis.the.gr8.playerstats.api.StatResult; +import org.bukkit.command.CommandSender; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +/** + * This event is fired whenever PlayerStats calculates a statistic result. + * This includes player stats, server stats, and top stats. + *

+ * This event is called on the main thread after the statistic has been + * calculated but before it is sent to the requesting player. + *

+ * You can use this event to: + *

+ */ +public class StatCalculatedEvent extends Event { + + private static final HandlerList HANDLERS = new HandlerList(); + + private final CommandSender sender; + private final StatRequest request; + private final StatResult result; + + public StatCalculatedEvent(@NotNull CommandSender sender, @NotNull StatRequest request, @NotNull StatResult result) { + this.sender = sender; + this.request = request; + this.result = result; + } + + /** + * Gets the CommandSender who requested this statistic lookup. + * + * @return the CommandSender who initiated the stat request + */ + @NotNull + public CommandSender getSender() { + return sender; + } + + /** + * Gets the StatRequest that was used to calculate this statistic. + * + * @return the StatRequest containing the lookup parameters + */ + @NotNull + public StatRequest getRequest() { + return request; + } + + /** + * Gets the calculated StatResult containing the formatted output. + *

+ * You can use: + *

+ * + * @return the StatResult containing the calculated statistic + */ + @NotNull + public StatResult getResult() { + return result; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return HANDLERS; + } + + @NotNull + public static HandlerList getHandlerList() { + return HANDLERS; + } +} + diff --git a/src/main/java/com/artemis/the/gr8/playerstats/api/events/StatSharedEvent.java b/src/main/java/com/artemis/the/gr8/playerstats/api/events/StatSharedEvent.java new file mode 100644 index 00000000..21e8a71a --- /dev/null +++ b/src/main/java/com/artemis/the/gr8/playerstats/api/events/StatSharedEvent.java @@ -0,0 +1,94 @@ +package com.artemis.the.gr8.playerstats.api.events; + +import net.kyori.adventure.text.TextComponent; +import org.bukkit.command.CommandSender; +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +/** + * This event is fired when a player shares a statistic result to the server chat + * by clicking the share button or using the /statshare command. + *

+ * This event is cancellable. If cancelled, the stat result will not be broadcast + * to all players. + *

+ * You can use this event to: + *

+ */ +public class StatSharedEvent extends Event implements Cancellable { + + private static final HandlerList HANDLERS = new HandlerList(); + + private final CommandSender sender; + private final TextComponent statResult; + private final int shareCode; + private boolean cancelled = false; + + public StatSharedEvent(@NotNull CommandSender sender, @NotNull TextComponent statResult, int shareCode) { + this.sender = sender; + this.statResult = statResult; + this.shareCode = shareCode; + } + + /** + * Gets the CommandSender who is sharing the statistic. + * + * @return the CommandSender sharing the stat + */ + @NotNull + public CommandSender getSender() { + return sender; + } + + /** + * Gets the formatted statistic result that is being shared. + * This is an Adventure TextComponent with formatting, colors, and hover text. + *

+ * For a plain String representation, you can serialize this component or + * use Adventure's PlainTextComponentSerializer. + * + * @return the formatted stat result as a TextComponent + */ + @NotNull + public TextComponent getStatResult() { + return statResult; + } + + /** + * Gets the share code that was used to retrieve this statistic. + * This is the unique identifier for this particular stat share. + * + * @return the share code + */ + public int getShareCode() { + return shareCode; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancel) { + this.cancelled = cancel; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return HANDLERS; + } + + @NotNull + public static HandlerList getHandlerList() { + return HANDLERS; + } +} diff --git a/src/main/java/com/artemis/the/gr8/playerstats/core/commands/ShareCommand.java b/src/main/java/com/artemis/the/gr8/playerstats/core/commands/ShareCommand.java index 208bfd52..6f6b6184 100644 --- a/src/main/java/com/artemis/the/gr8/playerstats/core/commands/ShareCommand.java +++ b/src/main/java/com/artemis/the/gr8/playerstats/core/commands/ShareCommand.java @@ -1,5 +1,6 @@ package com.artemis.the.gr8.playerstats.core.commands; +import com.artemis.the.gr8.playerstats.api.events.StatSharedEvent; import com.artemis.the.gr8.playerstats.core.sharing.ShareManager; import com.artemis.the.gr8.playerstats.core.enums.StandardMessage; import com.artemis.the.gr8.playerstats.core.msg.OutputManager; @@ -45,7 +46,15 @@ else if (shareManager.isOnCoolDown(sender.getName())) { outputManager.sendFeedbackMsg(sender, StandardMessage.STAT_RESULTS_TOO_OLD); } else { commandCounter.upShareCommandCount(); - outputManager.sendToAllPlayers(result.formattedValue()); + + // Fire the share event to expose the data, for things like DiscordSRV - DerexXD + StatSharedEvent event = new StatSharedEvent(sender, result.formattedValue(), shareCode); + org.bukkit.Bukkit.getPluginManager().callEvent(event); + + // Only broadcast to all players if the event wasn't cancelled + if (!event.isCancelled()) { + outputManager.sendToAllPlayers(result.formattedValue()); + } } } } diff --git a/src/main/java/com/artemis/the/gr8/playerstats/core/multithreading/StatThread.java b/src/main/java/com/artemis/the/gr8/playerstats/core/multithreading/StatThread.java index f155a70e..49f50cfe 100644 --- a/src/main/java/com/artemis/the/gr8/playerstats/core/multithreading/StatThread.java +++ b/src/main/java/com/artemis/the/gr8/playerstats/core/multithreading/StatThread.java @@ -1,11 +1,13 @@ package com.artemis.the.gr8.playerstats.core.multithreading; +import com.artemis.the.gr8.playerstats.api.events.StatCalculatedEvent; import com.artemis.the.gr8.playerstats.core.msg.OutputManager; import com.artemis.the.gr8.playerstats.core.statistic.StatRequestManager; import com.artemis.the.gr8.playerstats.api.StatRequest; import com.artemis.the.gr8.playerstats.api.StatResult; import com.artemis.the.gr8.playerstats.core.utils.MyLogger; import com.artemis.the.gr8.playerstats.core.enums.StandardMessage; +import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.Nullable; @@ -56,9 +58,13 @@ public void run() throws IllegalStateException { try { StatResult result = StatRequestManager.execute(statRequest); + + // Fire the event to expose the data, for things like DiscordSRV - DerexXD + StatCalculatedEvent event = new StatCalculatedEvent(statRequester, statRequest, result); + Bukkit.getPluginManager().callEvent(event); + outputManager.sendToCommandSender(statRequester, result.formattedComponent()); - } - catch (ConcurrentModificationException e) { + } catch (ConcurrentModificationException e) { if (!statRequest.getSettings().isConsoleSender()) { outputManager.sendFeedbackMsg(statRequester, StandardMessage.UNKNOWN_ERROR); } From 6c246d5ef6805613d5ff8c9eed59b21ee2900ba5 Mon Sep 17 00:00:00 2001 From: Derek Date: Thu, 2 Jul 2026 23:54:45 -0500 Subject: [PATCH 2/6] remove idea --- .idea/.gitignore | 3 - .idea/PlayerStats.iml | 14 --- .idea/compiler.xml | 13 --- .idea/copilot.data.migration.agent.xml | 6 - .idea/copilot.data.migration.ask.xml | 6 - .idea/copilot.data.migration.ask2agent.xml | 6 - .idea/copilot.data.migration.edit.xml | 6 - .idea/discord.xml | 14 --- .idea/encodings.xml | 8 -- .idea/jarRepositories.xml | 40 ------- .idea/misc.xml | 23 ---- .idea/modules.xml | 8 -- .idea/uiDesigner.xml | 124 --------------------- .idea/vcs.xml | 6 - 14 files changed, 277 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/PlayerStats.iml delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/copilot.data.migration.agent.xml delete mode 100644 .idea/copilot.data.migration.ask.xml delete mode 100644 .idea/copilot.data.migration.ask2agent.xml delete mode 100644 .idea/copilot.data.migration.edit.xml delete mode 100644 .idea/discord.xml delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/jarRepositories.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/uiDesigner.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d33521..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/PlayerStats.iml b/.idea/PlayerStats.iml deleted file mode 100644 index ad421000..00000000 --- a/.idea/PlayerStats.iml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - SPIGOT - ADVENTURE - - 1 - - - - \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 4c71b046..00000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/copilot.data.migration.agent.xml b/.idea/copilot.data.migration.agent.xml deleted file mode 100644 index 4ea72a91..00000000 --- a/.idea/copilot.data.migration.agent.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/copilot.data.migration.ask.xml b/.idea/copilot.data.migration.ask.xml deleted file mode 100644 index 7ef04e2e..00000000 --- a/.idea/copilot.data.migration.ask.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/copilot.data.migration.ask2agent.xml b/.idea/copilot.data.migration.ask2agent.xml deleted file mode 100644 index 1f2ea11e..00000000 --- a/.idea/copilot.data.migration.ask2agent.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/copilot.data.migration.edit.xml b/.idea/copilot.data.migration.edit.xml deleted file mode 100644 index 8648f940..00000000 --- a/.idea/copilot.data.migration.edit.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml deleted file mode 100644 index 912db825..00000000 --- a/.idea/discord.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 78bf31cb..00000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index 77ee3697..00000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 5b721f90..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index da505a36..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml deleted file mode 100644 index e96534fb..00000000 --- a/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 5deec08bbbf4b77330520194423f5d60410aecb6 Mon Sep 17 00:00:00 2001 From: Derek Date: Mon, 10 Aug 2026 01:10:17 -0500 Subject: [PATCH 3/6] docs: ai generated an architecture --- ARCHITECTURE.md | 154 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 ARCHITECTURE.md diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md new file mode 100644 index 00000000..17415c33 --- /dev/null +++ b/ARCHITECTURE.md @@ -0,0 +1,154 @@ +This was ai generated i'm forking it at 1 am to take a look and see if i can update it + +# PlayerStats Architecture (Plain English) + +PlayerStats is a Minecraft server plugin. Players type a command, the plugin looks up stats from existing player data, and it prints a nice chat message. No database setup. + +--- + +## Big picture + +``` +Player types /stat + ↓ +Commands figure out what they want + ↓ +Background threads do the heavy lifting + ↓ +Statistic code reads player data + ↓ +Message code formats the answer + ↓ +Chat shows the result (optional share button) +``` + +--- + +## Where things live + +Everything useful sits under `src/main/java/.../playerstats/`. + +| Folder | What it's for | +|--------|----------------| +| `core/` | The actual plugin (startup, commands, logic) | +| `api/` | Public face for other plugins to use PlayerStats | +| `src/main/resources/` | Config files, language text, plugin.yml | + +--- + +## Startup (`core/Main.java`) + +When the server enables the plugin, `Main` does this in order: + +1. Load config and helpers (language, offline players, messages, sharing) +2. Set up stat requests and the thread manager +3. Register commands (`/statistic`, `/statshare`, `/statreload`, `/statexclude`) +4. Listen for players joining +5. Start optional metrics (bStats) + +On disable, anything marked “closable” gets cleaned up. Reload reloads config first, then everything that registered itself as reloadable. + +--- + +## Folders inside `core/` — what happens where + +### `commands/` +Entry point for players and console. + +- **`StatCommand`** — main `/stat` command. Parses args, builds a request, or shows help/examples. +- **`ShareCommand`** — shares the last lookup in public chat. +- **`ReloadCommand`** — reloads config without restarting the server. +- **`ExcludeCommand`** — hide specific players from top/server totals. +- **`TabCompleter`** — suggestions while typing. + +### `multithreading/` +Keeps the server responsive. + +Stat lookups (especially top-10 / whole-server) can touch a lot of players. That work runs on background threads so chat spam can’t freeze the server. One player is limited to one lookup at a time. Reloads and lookups are coordinated so they don’t step on each other. + +### `statistic/` +Turns “I want diamonds mined, top 10” into real numbers. + +- Builds different request types: **one player**, **server total**, or **top list** +- **`BukkitProcessor`** reads Bukkit/Spigot player stats (from existing player files) +- **`StatRequestManager`** is the hub that runs those requests + +### `msg/` +Everything that gets printed to chat. + +- **`OutputManager`** — the only place messages are actually sent +- **`MessageBuilder`** + `components/` — build the colored/hoverable text (including festive themes) +- **`msgutils/`** — number formatting, language keys, fonts, small helpers + +Players get fancy hover text; console gets a simpler version that still looks okay. + +### `config/` +Reads and updates `config.yml` (colors, units, who to include/exclude, share limits, etc.). + +### `sharing/` +Remembers a player’s last successful lookup so they can hit “share” and post it in chat (with cooldowns / permissions from config). + +### `listeners/` +Currently: when someone joins, related player-list handling can update so new players show up in stats correctly. + +### `utils/` +Shared helpers: offline player lists, YAML files, logging, enums, command usage counting, etc. + +### `enums/` +Internal labels (colors, debug level, standard message types). + +--- + +## The API (`api/`) + +Other plugins don’t dig through `core/`. They call: + +```java +PlayerStats api = PlayerStats.getAPI(); +``` + +From there they can: + +- Ask for stats (`StatManager`) +- Format text the same way PlayerStats does (`StatTextFormatter`) +- Format numbers (`StatNumberFormatter`) +- Listen for events when a stat is calculated or shared (`api/events/`) + +Think of `api/` as the front door and `core/` as the kitchen. + +--- + +## Config files (`src/main/resources/`) + +| File | Role | +|------|------| +| `plugin.yml` | Plugin name, commands, permissions | +| `config.yml` | Behavior and look-and-feel | +| `language.yml` | Custom names / wording for stats | +| `excluded_players.yml` | Players hidden from top/server results | + +These get copied into the server’s plugin folder when the plugin first runs. + +--- + +## Typical request path (one sentence each) + +1. Someone runs `/stat mined diamond top`. +2. **`StatCommand`** understands that as a top-list request. +3. **`ThreadManager`** starts a background job. +4. **`statistic/`** loads the relevant players and totals their diamond-mined stats. +5. **`msg/`** turns the numbers into a chat message (units, colors, hover text). +6. **`OutputManager`** sends it privately; if sharing is on, a share button can post it for everyone. + +--- + +## Mental model + +- **Commands** = “what did the player ask?” +- **Threads** = “don’t freeze the server while we figure it out” +- **Statistic** = “get the numbers from Minecraft’s own data” +- **Msg** = “make it pretty and send it” +- **Config / language** = “how should it behave and sound?” +- **API** = “other plugins can ask for the same stuff cleanly” + +That’s the whole architecture in one pass. From c9e443b7e39ff35404f78270d8661b3b4455fdbf Mon Sep 17 00:00:00 2001 From: Derek Date: Mon, 10 Aug 2026 01:17:40 -0500 Subject: [PATCH 4/6] build: version now uses the one in pom.xml --- pom.xml | 18 +++++++++++++++++- src/main/resources/plugin.yml | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ef3b5dc0..343d1be1 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.ithotl PlayerStats - 2.6 + 2.6.1 PlayerStats Statistics Plugin @@ -145,6 +145,22 @@ + + + src/main/resources + true + + plugin.yml + + + + src/main/resources + false + + plugin.yml + + + org.apache.maven.plugins diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c234311a..b44ee879 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ main: com.artemis.the.gr8.playerstats.core.Main name: PlayerStats -version: 2.6 +version: ${project.version} api-version: 1.13 folia-supported: true description: adds commands to view player statistics in chat From ba7ff4a66ba495edd219901f2b03ac541b9470a4 Mon Sep 17 00:00:00 2001 From: Derek Date: Mon, 10 Aug 2026 01:42:04 -0500 Subject: [PATCH 5/6] build: update configupdater version and also added happy ghast thing --- pom.xml | 2 +- .../core/msg/msgutils/LanguageKeyHandler.java | 12 +++++++++++- src/main/resources/language.yml | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 343d1be1..ca83fde5 100644 --- a/pom.xml +++ b/pom.xml @@ -126,7 +126,7 @@ com.tchristofferson ConfigUpdater - 2.0-SNAPSHOT + 2.2 compile