Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
dfb388f
Updated for 1.21+
JakePVG Oct 18, 2024
142ee87
minor
JakePVG Aug 30, 2025
070b20a
docs: add project description and guidelines
JakePVG Aug 30, 2025
dc36943
Merge pull request #1 from JakeHoolz/codex/update-readme.md-with-proj…
JakePVG Aug 30, 2025
b8de736
Log configuration update failures
JakePVG Aug 30, 2025
1048841
Merge pull request #2 from JakeHoolz/codex/log-ioexception-in-initial…
JakePVG Aug 30, 2025
b79c5f6
Fix database initialization query iteration
JakePVG Aug 30, 2025
d3d74bd
Merge pull request #3 from JakeHoolz/codex/fix-return-statement-in-in…
JakePVG Aug 30, 2025
4b60f5c
Close database on plugin shutdown
JakePVG Aug 30, 2025
d1a8326
Merge pull request #4 from JakeHoolz/codex/add-close-method-to-databa…
JakePVG Aug 30, 2025
e5d9b02
refactor: inject plugin into PlayerData
JakePVG Aug 30, 2025
886ea9e
Merge pull request #5 from JakeHoolz/codex/refactor-playerdata-to-acc…
JakePVG Aug 30, 2025
22f42c8
Add unit tests for Database and PlayerData
JakePVG Aug 30, 2025
5ba4075
Merge branch 'master' into codex/add-unit-tests-for-database-and-play…
JakePVG Aug 30, 2025
2db1f65
Merge pull request #6 from JakeHoolz/codex/add-unit-tests-for-databas…
JakePVG Aug 30, 2025
b98c57f
Update MySQLPlayerMapper.java
JakePVG Aug 30, 2025
570f657
Merge branch 'master' of https://github.com/JakeHoolz/AugmentedHardcore
JakePVG Aug 30, 2025
ab42e6e
Use ConcurrentHashMap for player cache
JakePVG Aug 30, 2025
cdd698a
Merge pull request #7 from JakeHoolz/codex/change-playercache-to-conc…
JakePVG Aug 30, 2025
53a30c4
Replace printStackTrace with structured logging
JakePVG Aug 30, 2025
573c030
Merge branch 'master' into codex/update-error-handling-and-logging
JakePVG Aug 30, 2025
26d4dfe
Merge pull request #8 from JakeHoolz/codex/update-error-handling-and-…
JakePVG Aug 30, 2025
025cf03
refactor: rename updatePlayerDateSync to updatePlayerDataSync
JakePVG Aug 30, 2025
0f53382
Merge pull request #10 from JakeHoolz/codex/rename-updateplayerdatesy…
JakePVG Aug 30, 2025
a240f1b
Inject plugin and centralize async execution
JakePVG Aug 30, 2025
c00f442
Merge pull request #12 from JakeHoolz/codex/suggest-improvements-for-…
JakePVG Aug 30, 2025
227c321
Replace printStackTrace with plugin logger
JakePVG Aug 30, 2025
30588f3
Merge pull request #14 from JakeHoolz/codex/replace-printstacktrace-w…
JakePVG Aug 30, 2025
4b93d4f
feat: introduce life and ban managers
JakePVG Aug 30, 2025
5d3418e
Merge pull request #15 from JakeHoolz/codex/split-playerdata-into-sma…
JakePVG Aug 30, 2025
728cc5a
feat: restore HikariCP connection pooling
JakePVG Aug 30, 2025
e439847
Merge pull request #16 from JakeHoolz/codex/run-diagnostics-on-mysqlp…
JakePVG Aug 30, 2025
826b1ad
Update pom.xml
JakePVG Aug 30, 2025
fd9f25c
minor
JakePVG Aug 30, 2025
602b14a
refactor: replace double brace maps
JakePVG Aug 30, 2025
8ded7c2
Merge pull request #17 from JakeHoolz/codex/refactor-map-creation-in-…
JakePVG Aug 30, 2025
aba8435
Use plugin executor for command async tasks
JakePVG Aug 30, 2025
f26ff35
Merge pull request #18 from JakeHoolz/codex/update-asynchronous-opera…
JakePVG Aug 30, 2025
ad229cd
Replace sentinel values with Optional
JakePVG Aug 30, 2025
45695ca
Merge pull request #19 from JakeHoolz/codex/refactor-return-type-to-o…
JakePVG Aug 30, 2025
5453e65
Use computeIfAbsent for player cache
JakePVG Aug 30, 2025
c164da8
Merge pull request #20 from JakeHoolz/codex/refactor-caching-logic-fo…
JakePVG Aug 30, 2025
382a23d
Use URLConnection with timeouts and UTF-8 scanner
JakePVG Aug 31, 2025
31ddf52
Merge pull request #21 from JakeHoolz/codex/update-url-connection-wit…
JakePVG Aug 31, 2025
1ac8349
Stop update checker on plugin disable
JakePVG Aug 31, 2025
75a6b0e
Merge pull request #22 from JakeHoolz/codex/add-update-checker-shutdo…
JakePVG Aug 31, 2025
28d9f3b
minor
JakePVG Aug 31, 2025
823daf0
Log warnings at WARNING level
JakePVG Aug 31, 2025
9c9a92b
Merge pull request #23 from JakeHoolz/codex/update-sendwarningmessage…
JakePVG Aug 31, 2025
a2905bf
refactor: remove singleton mappers
JakePVG Aug 31, 2025
24c20b3
Merge pull request #24 from JakeHoolz/codex/refactor-mysqlplayermappe…
JakePVG Aug 31, 2025
a212783
refactor: extract ban parameter binding
JakePVG Aug 31, 2025
05699c2
Merge pull request #25 from JakeHoolz/codex/refactor-mysqlbanmapper-p…
JakePVG Aug 31, 2025
3de0abc
Add default case to command switch for usage
JakePVG Aug 31, 2025
895b4f3
Merge pull request #26 from JakeHoolz/codex/add-default-case-to-comma…
JakePVG Aug 31, 2025
5d772e8
Provide custom ThreadFactory for async executor
JakePVG Aug 31, 2025
af1f40c
Merge pull request #27 from JakeHoolz/codex/add-custom-threadfactory-…
JakePVG Aug 31, 2025
cdcbda8
Check null values for item metadata
JakePVG Aug 31, 2025
4a234cc
Merge pull request #28 from JakeHoolz/codex/add-null-checks-in-invent…
JakePVG Aug 31, 2025
accf953
Implement hashCode in Killer
JakePVG Aug 31, 2025
0fe7e83
Merge pull request #29 from JakeHoolz/codex/implement-hashcode-in-kil…
JakePVG Aug 31, 2025
6bb5903
feat: protect ban map from external modification
JakePVG Aug 31, 2025
237a122
Merge pull request #30 from JakeHoolz/codex/update-getbans-to-return-…
JakePVG Aug 31, 2025
8729d73
Return OptionalInt from number parser
JakePVG Aug 31, 2025
4f38696
Merge pull request #31 from JakeHoolz/codex/change-getpositivenumberf…
JakePVG Aug 31, 2025
80b0bab
Specify executor for async tasks
JakePVG Aug 31, 2025
59dd111
Merge pull request #32 from JakeHoolz/codex/add-plugin-executor-to-as…
JakePVG Aug 31, 2025
cd494fd
Refactor GUI constructors to use plugin instance
JakePVG Aug 31, 2025
a847ec9
Merge pull request #33 from JakeHoolz/codex/modify-gui-constructor-fo…
JakePVG Aug 31, 2025
b86193e
Cancel playtime task when player offline
JakePVG Aug 31, 2025
9276642
Merge branch 'master' into codex/check-player-online-status-in-run
JakePVG Aug 31, 2025
8c2366d
Merge pull request #34 from JakeHoolz/codex/check-player-online-statu…
JakePVG Aug 31, 2025
7530aef
Ensure shutdown waits for async tasks
JakePVG Aug 31, 2025
c125c61
Merge pull request #35 from JakeHoolz/codex/update-server-data-on-dis…
JakePVG Aug 31, 2025
5b2244d
refactor: remove MySQLServerMapper singleton
JakePVG Aug 31, 2025
63d3303
Merge pull request #36 from JakeHoolz/codex/refactor-mysqlservermappe…
JakePVG Aug 31, 2025
c7a52c6
Replace javatuples Pair with BanEntry
JakePVG Aug 31, 2025
39fb383
Merge pull request #37 from JakeHoolz/codex/create-banentry-and-refac…
JakePVG Aug 31, 2025
5f32770
refactor: replace time literals with constants
JakePVG Aug 31, 2025
cffb5a4
Merge pull request #38 from JakeHoolz/codex/define-time-constants-and…
JakePVG Aug 31, 2025
b84c1b4
Refactor initialization workflow
JakePVG Aug 31, 2025
703ed81
Merge pull request #39 from JakeHoolz/codex/refactor-initialize-metho…
JakePVG Aug 31, 2025
c965f33
Update ListenerPlayerGameModeChange.java
JakePVG Sep 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 10 additions & 5 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

45 changes: 45 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
# AugmentedHardcore

AugmentedHardcore is a [Spigot](https://www.spigotmc.org/) plugin that enhances Minecraft's hardcore mode with lives, death bans, revives, and progression mechanics.

## Build

This project uses Maven and requires Java 8 or newer. To build the plugin run:

```bash
mvn package
```

The shaded jar will be created in `target/`. Copy the jar to your server's `plugins` directory and restart the server.

## Usage

On first run the plugin will generate its configuration files. Adjust `config.yml` and `messages.yml` to customize behaviour.

Handy commands include:

- `/augmentedhardcore` – show help and plugin information
- `/lives` – view your remaining lives
- `/revive <player>` – revive a death‑banned player

See the in‑game help for the complete command list and permissions.

## Contributing

Contributions are welcome! If you would like to help:

1. Fork the repository and create a feature branch.
2. Make your changes following the existing style.
3. Run `mvn test` to make sure the project builds.
4. Open a pull request with a clear description of your work.

Please open an issue to discuss major changes before starting.

This repository contains the AugmentedHardcore plugin. Unit tests are located in `src/test/java` and can be executed with Maven.

## Running Tests

```bash
mvn test
```

The tests cover core components such as the `Database` and `PlayerData` classes. They rely on Mockito to mock Bukkit APIs where necessary.
66 changes: 42 additions & 24 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.backtobedrock</groupId>
<artifactId>AugmentedHardcore</artifactId>
<version>3.4.0</version>
<version>3.4.2</version>
<packaging>jar</packaging>
<properties>
<java.version>8</java.version>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
Expand All @@ -25,9 +25,19 @@
</repository>
<repository>
<id>sirblobman-public</id>
<url>https://nexus.sirblobman.xyz/repository/public/</url>
<url>https://nexus.sirblobman.xyz/public/</url>
</repository>
<repository>
<id>maven-central</id>
<url>https://oss.sonatype.org/content/groups/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-central</id>
<url>https://repo1.maven.org/maven2/</url>
</pluginRepository>
</pluginRepositories>
<build>
<sourceDirectory>src</sourceDirectory>
<defaultGoal>clean package</defaultGoal>
Expand All @@ -51,8 +61,16 @@
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<excludes>
<exclude>test/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
Expand All @@ -71,46 +89,46 @@
</plugin>
</plugins>
</build>
<dependencies>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.1-R0.1-SNAPSHOT</version>
<version>1.21.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.11.1</version>
<version>2.11.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.wesjd</groupId>
<artifactId>anvilgui</artifactId>
<version>1.9.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.javatuples</groupId>
<artifactId>javatuples</artifactId>
<version>1.2</version>
<scope>provided</scope>
<version>1.10.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.SirBlobman.combatlogx</groupId>
<artifactId>CombatLogX-API</artifactId>
<version>10.0.0.0-SNAPSHOT</version>
<groupId>com.github.sirblobman.combatlogx</groupId>
<artifactId>api</artifactId>
<version>11.4-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.tchristofferson</groupId>
<artifactId>ConfigUpdater</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>7.0.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Loading