Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f93800c
refactor: AuthMe is now multi-platform
Xephi Apr 20, 2026
2a6c9f6
feat: Dialog implementation (Spigot/PaperMC 1.21.8+)
Xephi Apr 20, 2026
6ff78b7
test: Update to Junit/Mockito 5
Xephi Apr 20, 2026
0bdfaf9
refactor: Move loading safeguards to each platform implementations
Xephi Apr 20, 2026
e28ded7
feat: Register commands through Brigadier for Paper
Xephi Apr 20, 2026
7be399a
fix: Asynchronous mail verification
Xephi Apr 20, 2026
bb5f6f1
refactor: rethink spawn/respawn/join location logic
Xephi Apr 20, 2026
5977687
refactor: Abstract scheduling for cross-platform thread management
Xephi Apr 20, 2026
5dfb395
refactor: Extract shared Paper code into authme-paper-common
Xephi Apr 20, 2026
3ae4257
feat: Add Folia platform support
Xephi Apr 20, 2026
f994d9e
docs: Update documentation tooling/templates and re-generate
Xephi Apr 20, 2026
7c55478
chore: Build java 21 modules only when java 21 is available
Xephi Apr 20, 2026
3931107
fix(platform): migrate Paper/Folia login handling to split events
Xephi Apr 21, 2026
2c6c384
feat: Add Pbkdf2Base64 hash method and Auth+ converter
Xephi Apr 21, 2026
0e31c4c
docs: Update USE_ASYNC_TASKS comment to reflect real implications
Xephi Apr 21, 2026
8c8b025
feat(config): split timeout into loginTimeout and registerTimeout
Xephi Apr 21, 2026
dfc14ad
docs: Regenerate documentation
Xephi Apr 21, 2026
96a2ff8
feat(i18n): Add per-player locale and fallback on server global messa…
Xephi Apr 22, 2026
a1f9918
docs: Regenerate documentation
Xephi Apr 22, 2026
2055f97
fix(limbo): re-apply movement restrictions after unauthenticated play…
Xephi Apr 22, 2026
75ed08e
refactor: Merge old PlayerListener into the main one
Xephi Apr 22, 2026
b267664
docs: Remove old version reference
Xephi Apr 22, 2026
b3e794b
refactor: Move tools to their own module
Xephi Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ updates:
- dependency-name: "org.mockito:mockito-core"
versions: ">= 5"
- dependency-name: ch.jalu:configme
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ local.properties

### Maven ###
target/
.flattened-pom.xml
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
Expand Down
31 changes: 0 additions & 31 deletions .travis.yml

This file was deleted.

16 changes: 12 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,17 +115,25 @@ You can also create your own translation file and, if you want, you can share it
## Requirements

##### Compiling requirements:
>- JDK 17+
>- JDK 17+ for `authme-core` and `authme-spigot-legacy`
>- JDK 21+ for the full multi-module build (`authme-spigot-1.21`, `authme-paper-common`, `authme-paper`, `authme-folia`)
>- Maven (3.8.8+)
>- Git/GitHub (Optional)

##### How to compile the project:
>- Clone the project with Git/GitHub
>- Execute command "mvn clean package"
>- Execute command `mvn clean package`
>- With JDK 17, Maven builds only the Java 17-compatible modules
>- With JDK 21+, Maven builds the full reactor
>- Build and tooling command reference: [docs/build.md](docs/build.md)

##### Running requirements:
>- Java 17+
>- Paper or Spigot (1.16.5 and up)
>- Use the jar matching your server platform/version
>- Java 17+ for `AuthMe-*-Spigot-Legacy.jar` (Spigot 1.16.x – 1.19.x)
>- Java 21+ for:
> - `AuthMe-*-Spigot-1.21.jar` (Spigot 1.20.x – 1.21.x)
> - `AuthMe-*-Paper.jar` (Paper 1.21+)
> - `AuthMe-*-Folia.jar` (Folia 1.21+)
>- ProtocolLib (optional, required by some features)

## Credits
Expand Down
272 changes: 272 additions & 0 deletions authme-core/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>fr.xephi</groupId>
<artifactId>authme-parent</artifactId>
<version>${revision}</version>
</parent>

<artifactId>authme-core</artifactId>
<packaging>jar</packaging>
<name>AuthMe Core</name>
<description>AuthMe core business logic (not a standalone plugin)</description>

<dependencies>
<!-- Java Libraries -->
<dependency>
<groupId>ch.jalu</groupId>
<artifactId>injector</artifactId>
</dependency>
<dependency>
<groupId>net.ricecode</groupId>
<artifactId>string-similarity</artifactId>
</dependency>
<dependency>
<groupId>com.maxmind.geoip2</groupId>
<artifactId>geoip2</artifactId>
</dependency>
<dependency>
<groupId>javatar</groupId>
<artifactId>javatar</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
<dependency>
<groupId>ch.jalu</groupId>
<artifactId>datasourcecolumns</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>de.rtner</groupId>
<artifactId>PBKDF2</artifactId>
</dependency>
<dependency>
<groupId>de.mkammerer</groupId>
<artifactId>argon2-jvm-nolibs</artifactId>
</dependency>
<dependency>
<groupId>at.favre.lib</groupId>
<artifactId>bcrypt</artifactId>
</dependency>
<dependency>
<groupId>com.warrenstrange</groupId>
<artifactId>googleauth</artifactId>
</dependency>
<dependency>
<groupId>ch.jalu</groupId>
<artifactId>configme</artifactId>
</dependency>

<!-- Bukkit/Spigot API (compile against lowest baseline: 1.16) -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>${dependencies.spigot.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.joml</groupId>
<artifactId>joml</artifactId>
</exclusion>
<exclusion>
<groupId>net.md-5</groupId>
<artifactId>bungeecord-chat</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- Bukkit Libraries -->
<dependency>
<groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId>
</dependency>
<dependency>
<groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib</artifactId>
</dependency>
<dependency>
<groupId>net.luckperms</groupId>
<artifactId>api</artifactId>
</dependency>
<dependency>
<groupId>ru.tehkode</groupId>
<artifactId>PermissionsEx</artifactId>
</dependency>
<dependency>
<groupId>org.tyrannyofheaven.bukkit</groupId>
<artifactId>zPermissions</artifactId>
</dependency>
<dependency>
<groupId>net.milkbowl.vault</groupId>
<artifactId>VaultAPI</artifactId>
</dependency>
<dependency>
<groupId>com.onarandombox.multiversecore</groupId>
<artifactId>multiverse-core</artifactId>
</dependency>
<dependency>
<groupId>net.essentialsx</groupId>
<artifactId>EssentialsX</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>

<!-- Test Dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<resources>
<resource>
<directory>.</directory>
<filtering>false</filtering>
<includes>
<include>LICENSE</include>
</includes>
</resource>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<excludes>
<!-- plugin.yml is provided by each version module -->
<exclude>plugin.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/messages/</directory>
<targetPath>./messages/</targetPath>
<filtering>false</filtering>
</resource>
</resources>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<!-- Generate test coverage reports -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<includes>
<include>fr/xephi/authme/*</include>
<include>fr/xephi/authme/**/*</include>
</includes>
</configuration>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xshare:off -javaagent:${dependencies.mockito.javaagent} --add-opens=java.base/java.lang=ALL-UNNAMED -Dfile.encoding=${project.build.sourceEncoding} -Duser.language=en @{argLine}</argLine>
<systemPropertyVariables>
<project.skipExtendedHashTests>${project.skipExtendedHashTests}</project.skipExtendedHashTests>
</systemPropertyVariables>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<finalName>${project.finalNameBase}</finalName>
</configuration>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<finalName>${project.finalNameBase}</finalName>
<source>${module.java.version}</source>
</configuration>
<executions>
<execution>
<id>attach-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Loading
Loading