Compare commits

...

61 Commits
b51 ... master

Author SHA1 Message Date
Deichor
b630df850f Update Multiverse and removed unused folialib 2024-12-10 02:33:35 +03:00
dependabot[bot]
da99cad206
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.1 to 3.11.1 (#224) 2024-12-08 12:57:07 +00:00
Kobe ⑧
22027b5fdd
Merge pull request #231 from HaHaWTH/dependabot/maven/org.xerial-sqlite-jdbc-3.47.1.0
Bump org.xerial:sqlite-jdbc from 3.47.0.0 to 3.47.1.0
2024-12-04 09:00:07 -08:00
dependabot[bot]
7f00c4183f
Bump org.xerial:sqlite-jdbc from 3.47.0.0 to 3.47.1.0
Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.47.0.0 to 3.47.1.0.
- [Release notes](https://github.com/xerial/sqlite-jdbc/releases)
- [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG)
- [Commits](https://github.com/xerial/sqlite-jdbc/compare/3.47.0.0...3.47.1.0)

---
updated-dependencies:
- dependency-name: org.xerial:sqlite-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 04:25:26 +00:00
HaHaWTH
2bde2fd8ac default false 2024-11-04 21:57:28 +08:00
HaHaWTH
48a48f0c07 Remove menu plugin 2024-11-04 19:38:31 +08:00
HaHaWTH
a70d1d7268 Update workflow 2024-11-04 19:36:07 +08:00
HaHaWTH
5cc4167e4f Reformat email.html 2024-11-04 19:31:55 +08:00
HaHaWTH
b9e2514556 Cleanup 2024-11-04 19:24:24 +08:00
Kobe ⑧
0b11781329
Merge pull request #221 from HaHaWTH/dependabot/maven/org.xerial-sqlite-jdbc-3.47.0.0
Bump org.xerial:sqlite-jdbc from 3.46.1.2 to 3.47.0.0
2024-10-24 21:21:53 +08:00
Kobe ⑧
645d11ea54
Merge pull request #222 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-site-plugin-3.21.0
Bump org.apache.maven.plugins:maven-site-plugin from 3.12.1 to 3.21.0
2024-10-24 21:21:36 +08:00
dependabot[bot]
3e87b9f44a
Bump org.apache.maven.plugins:maven-site-plugin from 3.12.1 to 3.21.0
Bumps [org.apache.maven.plugins:maven-site-plugin](https://github.com/apache/maven-site-plugin) from 3.12.1 to 3.21.0.
- [Release notes](https://github.com/apache/maven-site-plugin/releases)
- [Commits](https://github.com/apache/maven-site-plugin/compare/maven-site-plugin-3.12.1...maven-site-plugin-3.21.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-site-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 05:04:58 +00:00
dependabot[bot]
a6dc4514f2
Bump org.xerial:sqlite-jdbc from 3.46.1.2 to 3.47.0.0
Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.46.1.2 to 3.47.0.0.
- [Release notes](https://github.com/xerial/sqlite-jdbc/releases)
- [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG)
- [Commits](https://github.com/xerial/sqlite-jdbc/compare/3.46.1.2...3.47.0.0)

---
updated-dependencies:
- dependency-name: org.xerial:sqlite-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 05:04:50 +00:00
Kobe ⑧
69ea9a1d43
Merge pull request #216 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-javadoc-plugin-3.10.1
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.0 to 3.10.1
2024-10-12 22:40:12 +08:00
Kobe ⑧
1dfbbb543c
Merge pull request #217 from HaHaWTH/dependabot/maven/org.checkerframework-checker-qual-3.48.0
Bump org.checkerframework:checker-qual from 3.47.0 to 3.48.0
2024-10-12 22:39:58 +08:00
dependabot[bot]
092df678a8
Bump org.checkerframework:checker-qual from 3.47.0 to 3.48.0
Bumps [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) from 3.47.0 to 3.48.0.
- [Release notes](https://github.com/typetools/checker-framework/releases)
- [Changelog](https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/typetools/checker-framework/compare/checker-framework-3.47.0...checker-framework-3.48.0)

---
updated-dependencies:
- dependency-name: org.checkerframework:checker-qual
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-03 05:07:53 +00:00
dependabot[bot]
5f165eed75
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.0 to 3.10.1
Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.10.0 to 3.10.1.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.10.0...maven-javadoc-plugin-3.10.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-02 04:22:40 +00:00
Kobe ⑧
a988422302
Merge pull request #214 from HaHaWTH/dependabot/maven/org.xerial-sqlite-jdbc-3.46.1.2
Bump org.xerial:sqlite-jdbc from 3.46.1.1 to 3.46.1.2
2024-09-26 13:00:19 +08:00
dependabot[bot]
e5f6e31af2
Bump org.xerial:sqlite-jdbc from 3.46.1.1 to 3.46.1.2
Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.46.1.1 to 3.46.1.2.
- [Release notes](https://github.com/xerial/sqlite-jdbc/releases)
- [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG)
- [Commits](https://github.com/xerial/sqlite-jdbc/compare/3.46.1.1...3.46.1.2)

---
updated-dependencies:
- dependency-name: org.xerial:sqlite-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-26 04:37:04 +00:00
Kobe ⑧
f4bd83e86a
Merge pull request #213 from HaHaWTH/dependabot/maven/org.xerial-sqlite-jdbc-3.46.1.1
Bump org.xerial:sqlite-jdbc from 3.46.1.0 to 3.46.1.1
2024-09-25 13:45:39 +08:00
dependabot[bot]
7713ee499d
Bump org.xerial:sqlite-jdbc from 3.46.1.0 to 3.46.1.1
Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.46.1.0 to 3.46.1.1.
- [Release notes](https://github.com/xerial/sqlite-jdbc/releases)
- [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG)
- [Commits](https://github.com/xerial/sqlite-jdbc/compare/3.46.1.0...3.46.1.1)

---
updated-dependencies:
- dependency-name: org.xerial:sqlite-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-25 04:54:43 +00:00
Kobe ⑧
6fb2d93650
Merge pull request #210 from HaHaWTH/dependabot/maven/org.checkerframework-checker-qual-3.47.0
Bump org.checkerframework:checker-qual from 3.46.0 to 3.47.0
2024-09-07 23:39:13 +08:00
Kobe ⑧
81db29f76f
Merge pull request #208 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-javadoc-plugin-3.10.0
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.8.0 to 3.10.0
2024-09-07 23:38:55 +08:00
dependabot[bot]
fd2018186c
Bump org.checkerframework:checker-qual from 3.46.0 to 3.47.0
Bumps [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) from 3.46.0 to 3.47.0.
- [Release notes](https://github.com/typetools/checker-framework/releases)
- [Changelog](https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/typetools/checker-framework/compare/checker-framework-3.46.0...checker-framework-3.47.0)

---
updated-dependencies:
- dependency-name: org.checkerframework:checker-qual
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-05 05:00:38 +00:00
dependabot[bot]
bb85a7c619
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.8.0 to 3.10.0
Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.8.0 to 3.10.0.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.8.0...maven-javadoc-plugin-3.10.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-28 04:44:19 +00:00
Kobe ⑧
9e7e90db6c
Update pom.xml 2024-08-22 18:36:50 +08:00
HaHaWTH
007e01156b B53 release 2024-08-20 23:52:40 +08:00
Kobe ⑧
d2ec62ac7f
Merge pull request #203 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-deploy-plugin-3.1.3
Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.2 to 3.1.3
2024-08-20 18:46:24 +08:00
Kobe ⑧
da32bdec94
Merge pull request #204 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-install-plugin-3.1.3
Bump org.apache.maven.plugins:maven-install-plugin from 3.1.2 to 3.1.3
2024-08-20 18:46:14 +08:00
Kobe ⑧
7d58e90557
Merge pull request #202 from HaHaWTH/dependabot/maven/org.xerial-sqlite-jdbc-3.46.1.0
Bump org.xerial:sqlite-jdbc from 3.46.0.1 to 3.46.1.0
2024-08-20 18:45:54 +08:00
dependabot[bot]
08dabda7c7
Bump org.apache.maven.plugins:maven-install-plugin from 3.1.2 to 3.1.3
Bumps [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-20 04:34:00 +00:00
dependabot[bot]
feea348ec3
Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.2 to 3.1.3
Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.2...maven-deploy-plugin-3.1.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-20 04:32:17 +00:00
dependabot[bot]
67eb7dee0f
Bump org.xerial:sqlite-jdbc from 3.46.0.1 to 3.46.1.0
Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.46.0.1 to 3.46.1.0.
- [Release notes](https://github.com/xerial/sqlite-jdbc/releases)
- [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG)
- [Commits](https://github.com/xerial/sqlite-jdbc/compare/3.46.0.1...3.46.1.0)

---
updated-dependencies:
- dependency-name: org.xerial:sqlite-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 04:42:25 +00:00
Kobe ⑧
6fb1d2855e
Merge pull request #196 from HaHaWTH/dependabot/maven/net.kyori-adventure-platform-bukkit-4.3.4
Bump net.kyori:adventure-platform-bukkit from 4.3.3 to 4.3.4
2024-08-16 19:40:48 +08:00
dependabot[bot]
faa3d9320c
Bump net.kyori:adventure-platform-bukkit from 4.3.3 to 4.3.4
Bumps [net.kyori:adventure-platform-bukkit](https://github.com/KyoriPowered/adventure-platform) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/KyoriPowered/adventure-platform/releases)
- [Commits](https://github.com/KyoriPowered/adventure-platform/compare/v4.3.3...v4.3.4)

---
updated-dependencies:
- dependency-name: net.kyori:adventure-platform-bukkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-13 05:06:28 +00:00
Kobe ⑧
497cd543fd
Merge pull request #194 from HaHaWTH/dependabot/maven/org.checkerframework-checker-qual-3.46.0
Bump org.checkerframework:checker-qual from 3.45.0 to 3.46.0
2024-08-02 12:38:37 +08:00
Kobe ⑧
71d5205df0
Merge pull request #192 from HaHaWTH/dependabot/maven/org.xerial-sqlite-jdbc-3.46.0.1
Bump org.xerial:sqlite-jdbc from 3.46.0.0 to 3.46.0.1
2024-08-02 12:38:26 +08:00
dependabot[bot]
bba90d93f1
Bump org.checkerframework:checker-qual from 3.45.0 to 3.46.0
Bumps [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) from 3.45.0 to 3.46.0.
- [Release notes](https://github.com/typetools/checker-framework/releases)
- [Changelog](https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/typetools/checker-framework/compare/checker-framework-3.45.0...checker-framework-3.46.0)

---
updated-dependencies:
- dependency-name: org.checkerframework:checker-qual
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 04:33:38 +00:00
HaHaWTH
ab40b1b82d fix papi NPE 2024-07-31 23:48:32 +08:00
HaHaWTH
22a6cefbdc Merge remote-tracking branch 'origin/master' 2024-07-31 13:54:34 +08:00
HaHaWTH
9ca3a24862 Temporarily fix inventory loss 2024-07-31 13:53:54 +08:00
dependabot[bot]
91f0dfa5c5
Bump org.xerial:sqlite-jdbc from 3.46.0.0 to 3.46.0.1
Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.46.0.0 to 3.46.0.1.
- [Release notes](https://github.com/xerial/sqlite-jdbc/releases)
- [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG)
- [Commits](https://github.com/xerial/sqlite-jdbc/compare/3.46.0.0...3.46.0.1)

---
updated-dependencies:
- dependency-name: org.xerial:sqlite-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-31 04:21:56 +00:00
Kobe ⑧
f0e935a5d8
Merge pull request #186 from luketeam5/patch-1
Better Regex e-mail
2024-07-23 09:39:45 +08:00
luketeam5
f0fae0fce0
Update RestrictionSettings.java 2024-07-23 03:34:10 +02:00
luketeam5
4c40ba36a6
Better regex 2024-07-23 00:07:34 +02:00
HaHaWTH
bd7a25560f Added config to disable changepassword email verification 2024-07-23 03:52:01 +08:00
Kobe ⑧
e02659d850
Merge pull request #183 from HaHaWTH/dependabot/maven/net.kyori-adventure-platform-bukkit-4.3.3
Bump net.kyori:adventure-platform-bukkit from 4.3.2 to 4.3.3
2024-07-22 13:37:10 +08:00
Kobe ⑧
c95f96572c
Merge pull request #182 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-javadoc-plugin-3.8.0
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.7.0 to 3.8.0
2024-07-22 13:36:52 +08:00
dependabot[bot]
1c1356a4d1
Bump net.kyori:adventure-platform-bukkit from 4.3.2 to 4.3.3
Bumps [net.kyori:adventure-platform-bukkit](https://github.com/KyoriPowered/adventure-platform) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/KyoriPowered/adventure-platform/releases)
- [Commits](https://github.com/KyoriPowered/adventure-platform/compare/v4.3.2...v4.3.3)

---
updated-dependencies:
- dependency-name: net.kyori:adventure-platform-bukkit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 04:18:17 +00:00
dependabot[bot]
f206deb8ed
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.7.0 to 3.8.0
Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.7.0...maven-javadoc-plugin-3.8.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 04:17:53 +00:00
Kobe ⑧
9bf6aae8e9
[ci skip] Update README.md 2024-07-17 02:07:28 +08:00
HaHaWTH
63bfc7a5c1 B52 release 2024-07-14 17:48:25 +08:00
HaHaWTH
731c6477a5 PlaceholderAPI hook 2024-07-14 16:24:04 +08:00
HaHaWTH
e0bf35284c Update runtime test to 1.21 2024-07-13 04:08:55 +08:00
HaHaWTH
02ebb0b0ab hehe 2024-07-12 23:26:14 +08:00
HaHaWTH
92741daaa8 fix: #178 mail sending lags server 2024-07-11 15:10:40 +08:00
Kobe ⑧
18ce05d07d
Merge pull request #174 from HaHaWTH/dependabot/maven/org.checkerframework-checker-qual-3.45.0
Bump org.checkerframework:checker-qual from 3.40.0 to 3.45.0
2024-07-02 13:38:18 +08:00
dependabot[bot]
37e6e9feb6
Bump org.checkerframework:checker-qual from 3.40.0 to 3.45.0
Bumps [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) from 3.40.0 to 3.45.0.
- [Release notes](https://github.com/typetools/checker-framework/releases)
- [Changelog](https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/typetools/checker-framework/compare/checker-framework-3.40.0...checker-framework-3.45.0)

---
updated-dependencies:
- dependency-name: org.checkerframework:checker-qual
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 05:07:13 +00:00
Kobe ⑧
655c5ca42c
Bump version to 5.7.0-Fork 2024-06-30 12:20:05 +08:00
Kobe ⑧
c99fc5c389
Update plugin.yml 2024-06-30 12:19:19 +08:00
Kobe ⑧
9b0a4a003e
Bump version to 5.7.0-FORK 2024-06-30 12:18:46 +08:00
27 changed files with 209 additions and 146 deletions

View File

@ -41,7 +41,7 @@ jobs:
javaVersion: '17' javaVersion: '17'
- mcVersion: '1.20.4' - mcVersion: '1.20.4'
javaVersion: '21' javaVersion: '21'
- mcVersion: '1.20.6' - mcVersion: '1.21.1'
javaVersion: '21' javaVersion: '21'
steps: steps:
- uses: HaHaWTH/minecraft-plugin-runtime-test@paper - uses: HaHaWTH/minecraft-plugin-runtime-test@paper

View File

@ -27,22 +27,19 @@
10. Player login logic improvement to reduce lag 10. Player login logic improvement to reduce lag
11. Automatically purge bot data 11. Automatically purge bot data
12. **Folia support (in active testing)** 12. **Folia support (in active testing)**
13. Offhand Menu compatibility(Thats amazing) 13. **Velocity support (See [Velocity Support](./vc-support.md))**
14. **Velocity support (See [Velocity Support](./vc-support.md))** 14. Support Virtual Threads caching
15. Support Virtual Threads caching 15. Automatically fix portal stuck issue
16. Automatically fix portal stuck issue 16. Automatically login for Bedrock players(configurable)
17. Automatically login for Bedrock players(configurable) 17. Fix shulker box crash bug on legacy versions(MC 1.13-)
18. Fix shulker box crash bug on legacy versions(MC 1.13-) 18. **H2 database support**
19. **H2 database support** 19. **100% compatibility with original authme and extensions**
20. **100% compatibility with original authme and extensions** 20. More......
21. More......
**Download links:** **Download links:**
[Releases](https://github.com/HaHaWTH/AuthMeReReloaded/releases/latest) [Releases](https://github.com/HaHaWTH/AuthMeReReloaded/releases/latest)
[Actions(Dev builds, use at your own risk!)](https://github.com/HaHaWTH/AuthMeReReloaded/actions/workflows/maven.yml) [Actions(Dev builds, use at your own risk!)](https://github.com/HaHaWTH/AuthMeReReloaded/actions/workflows/maven.yml)
If you are using FRP(内网穿透) for your server, this plugin may help [HAProxy-Detector](https://github.com/HaHaWTH/HAProxy-Detector)
**Pull Requests and suggestions are welcome!** **Pull Requests and suggestions are welcome!**
## License ## License

65
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>fr.xephi</groupId> <groupId>fr.xephi</groupId>
<artifactId>authme</artifactId> <artifactId>authme</artifactId>
<version>5.6.1-FORK</version> <version>5.7.0-FORK</version>
<name>AuthMeReReloaded</name> <name>AuthMeReReloaded</name>
<description>Fork of the first authentication plugin for the Bukkit API!</description> <description>Fork of the first authentication plugin for the Bukkit API!</description>
@ -67,7 +67,7 @@
<maven.minimumVersion>3.6.3</maven.minimumVersion> <maven.minimumVersion>3.6.3</maven.minimumVersion>
<!-- Dependencies versions --> <!-- Dependencies versions -->
<spigot.version>1.20.6-R0.1-SNAPSHOT</spigot.version> <spigot.version>1.21.1-R0.1-SNAPSHOT</spigot.version>
<!-- Versioning properties --> <!-- Versioning properties -->
<project.outputName>AuthMe</project.outputName> <project.outputName>AuthMe</project.outputName>
@ -111,7 +111,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId> <artifactId>maven-javadoc-plugin</artifactId>
<version>3.7.0</version> <version>3.11.1</version>
<configuration> <configuration>
<failOnError>false</failOnError> <failOnError>false</failOnError>
<failOnWarnings>false</failOnWarnings> <failOnWarnings>false</failOnWarnings>
@ -497,19 +497,19 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId> <artifactId>maven-install-plugin</artifactId>
<version>3.1.2</version> <version>3.1.3</version>
</plugin> </plugin>
<!-- Deploy the jars as artifacts into the remote repository --> <!-- Deploy the jars as artifacts into the remote repository -->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId> <artifactId>maven-deploy-plugin</artifactId>
<version>3.1.2</version> <version>3.1.3</version>
</plugin> </plugin>
<!-- Handle documentation generation, required by other plugins --> <!-- Handle documentation generation, required by other plugins -->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId> <artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version> <version>3.21.0</version>
</plugin> </plugin>
<!-- Publish coveralls test coverage reports, not included in the build cycle by default --> <!-- Publish coveralls test coverage reports, not included in the build cycle by default -->
<plugin> <plugin>
@ -623,32 +623,23 @@
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url> <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
</repository> </repository>
<!-- Multiverse Repo --> <!-- Placeholder API Repo -->
<repository> <repository>
<id>onarandombox-repo-releases</id> <id>placeholderapi-repo</id>
<url>https://repo.onarandombox.com/content/repositories/multiverse/</url> <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>onarandombox-repo-snapshots</id>
<url>https://repo.onarandombox.com/content/repositories/multiverse-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository> </repository>
<!-- FoliaLib --> <!-- Multiverse Repo -->
<repository> <repository>
<id>devmart-other</id> <id>multiverse-multiverse-releases</id>
<url>https://nexuslite.gcnt.net/repos/other/</url> <name>Multiverse Repository</name>
<url>https://repo.onarandombox.com/multiverse-releases</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository> </repository>
<repository> <repository>
@ -895,7 +886,7 @@
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-platform-bukkit</artifactId> <artifactId>adventure-platform-bukkit</artifactId>
<version>4.3.2</version> <version>4.3.4</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
@ -978,8 +969,8 @@
<!-- Multi World plugin, https://www.spigotmc.org/resources/multiverse-core.390/ --> <!-- Multi World plugin, https://www.spigotmc.org/resources/multiverse-core.390/ -->
<dependency> <dependency>
<groupId>com.onarandombox.multiversecore</groupId> <groupId>com.onarandombox.multiversecore</groupId>
<artifactId>Multiverse-Core</artifactId> <artifactId>multiverse-core</artifactId>
<version>4.3.1</version> <version>4.3.14</version>
<type>jar</type> <type>jar</type>
<scope>provided</scope> <scope>provided</scope>
<exclusions> <exclusions>
@ -1038,6 +1029,14 @@
</exclusions> </exclusions>
</dependency> </dependency>
<!-- Placeholder API -->
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.11.6</version>
<scope>provided</scope>
</dependency>
<!-- EssentialsX plugin --> <!-- EssentialsX plugin -->
<dependency> <dependency>
<groupId>net.essentialsx</groupId> <groupId>net.essentialsx</groupId>
@ -1128,7 +1127,7 @@
<dependency> <dependency>
<groupId>org.checkerframework</groupId> <groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId> <artifactId>checker-qual</artifactId>
<version>3.40.0</version> <version>3.48.0</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
@ -1144,7 +1143,7 @@
<dependency> <dependency>
<groupId>org.xerial</groupId> <groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId> <artifactId>sqlite-jdbc</artifactId>
<version>3.46.0.0</version> <version>3.47.1.0</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -74,9 +74,9 @@ public class AuthMe extends JavaPlugin {
private static final int CLEANUP_INTERVAL = 5 * TICKS_PER_MINUTE; private static final int CLEANUP_INTERVAL = 5 * TICKS_PER_MINUTE;
// Version and build number values // Version and build number values
private static String pluginVersion = "5.6.1-Fork"; private static String pluginVersion = "5.7.0-Fork";
private static final String pluginBuild = "b"; private static final String pluginBuild = "b";
private static String pluginBuildNumber = "51"; private static String pluginBuildNumber = "53";
// Private instances // Private instances
private EmailService emailService; private EmailService emailService;
private CommandHandler commandHandler; private CommandHandler commandHandler;

View File

@ -15,8 +15,6 @@ import fr.xephi.authme.util.PlayerUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryView;
import javax.inject.Inject; import javax.inject.Inject;
import java.time.Instant; import java.time.Instant;
@ -26,8 +24,6 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Optional; import java.util.Optional;
import static fr.xephi.authme.listener.PlayerListener.PENDING_INVENTORIES;
/** /**
* The current API of AuthMe. * The current API of AuthMe.
* *
@ -261,18 +257,6 @@ public class AuthMeApi {
return dataSource.saveAuth(auth); return dataSource.saveAuth(auth);
} }
/**
* Open an inventory for the given player at any time.
*
* @param player The player to open the inventory for
* @param inventory The inventory to open
* @return The inventory view
*/
public InventoryView openInventory(Player player, Inventory inventory) {
PENDING_INVENTORIES.add(inventory);
return player.openInventory(inventory);
}
/** /**
* Force a player to login, i.e. the player is logged in without needing his password. * Force a player to login, i.e. the player is logged in without needing his password.
* *

View File

@ -8,6 +8,7 @@ import fr.xephi.authme.process.Management;
import fr.xephi.authme.service.CommonService; import fr.xephi.authme.service.CommonService;
import fr.xephi.authme.service.ValidationService; import fr.xephi.authme.service.ValidationService;
import fr.xephi.authme.service.ValidationService.ValidationResult; import fr.xephi.authme.service.ValidationService.ValidationResult;
import fr.xephi.authme.settings.properties.SecuritySettings;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import javax.inject.Inject; import javax.inject.Inject;
@ -42,11 +43,14 @@ public class ChangePasswordCommand extends PlayerCommand {
commonService.send(player, MessageKey.NOT_LOGGED_IN); commonService.send(player, MessageKey.NOT_LOGGED_IN);
return; return;
} }
// Check if the user has been verified or not
if (codeManager.isVerificationRequired(player)) { if (commonService.getProperty(SecuritySettings.CHANGE_PASSWORD_EMAIL_VERIFICATION_REQUIRED)) {
codeManager.codeExistOrGenerateNew(name); // Check if the user has been verified or not
commonService.send(player, MessageKey.VERIFICATION_CODE_REQUIRED); if (codeManager.isVerificationRequired(player)) {
return; codeManager.codeExistOrGenerateNew(name);
commonService.send(player, MessageKey.VERIFICATION_CODE_REQUIRED);
return;
}
} }
String oldPassword = arguments.get(0); String oldPassword = arguments.get(0);

View File

@ -22,6 +22,8 @@ import java.util.Locale;
import java.util.Set; import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static fr.xephi.authme.AuthMe.getScheduler;
public class VerificationCodeManager implements SettingsDependent, HasCleanup { public class VerificationCodeManager implements SettingsDependent, HasCleanup {
private final EmailService emailService; private final EmailService emailService;
@ -133,17 +135,19 @@ public class VerificationCodeManager implements SettingsDependent, HasCleanup {
* @param name the name of the player to generate a code for * @param name the name of the player to generate a code for
*/ */
private void generateCode(String name) { private void generateCode(String name) {
DataSourceValue<String> emailResult = dataSource.getEmail(name); getScheduler().runTaskAsynchronously(() -> {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy'年'MM'月'dd'日' HH:mm:ss"); DataSourceValue<String> emailResult = dataSource.getEmail(name);
Date date = new Date(System.currentTimeMillis()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy'-'MM'-'dd'-' HH:mm:ss");
if (emailResult.rowExists()) { Date date = new Date(System.currentTimeMillis());
final String email = emailResult.getValue(); if (emailResult.rowExists()) {
if (!Utils.isEmailEmpty(email)) { final String email = emailResult.getValue();
String code = RandomStringUtils.generateNum(6); // 6 digits code if (!Utils.isEmailEmpty(email)) {
verificationCodes.put(name.toLowerCase(Locale.ROOT), code); String code = RandomStringUtils.generateNum(6); // 6 digits code
emailService.sendVerificationMail(name, email, code, dateFormat.format(date)); verificationCodes.put(name.toLowerCase(Locale.ROOT), code);
emailService.sendVerificationMail(name, email, code, dateFormat.format(date));
}
} }
} });
} }
/** /**

View File

@ -75,9 +75,7 @@ class ListenerService implements SettingsDependent {
* @param player the player to verify * @param player the player to verify
* @return true if the associated event should be canceled, false otherwise * @return true if the associated event should be canceled, false otherwise
*/ */
public boolean shouldCancelEvent(Player player) { public boolean shouldCancelEvent(Player player) {
return player != null && !checkAuth(player.getName()) && !PlayerUtils.isNpc(player); return player != null && !checkAuth(player.getName()) && !PlayerUtils.isNpc(player);
} }
@Override @Override

View File

@ -52,12 +52,9 @@ import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerShearEntityEvent; import org.bukkit.event.player.PlayerShearEntityEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.InventoryView;
import javax.inject.Inject; import javax.inject.Inject;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
@ -98,8 +95,6 @@ public class PlayerListener implements Listener {
@Inject @Inject
private QuickCommandsProtectionManager quickCommandsProtectionManager; private QuickCommandsProtectionManager quickCommandsProtectionManager;
public static List<Inventory> PENDING_INVENTORIES = new ArrayList<>();
// Lowest priority to apply fast protection checks // Lowest priority to apply fast protection checks
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onAsyncPlayerPreLoginEventLowest(AsyncPlayerPreLoginEvent event) { public void onAsyncPlayerPreLoginEventLowest(AsyncPlayerPreLoginEvent event) {
@ -500,17 +495,6 @@ public class PlayerListener implements Listener {
} }
} }
private boolean isInventoryOpenedByApi(Inventory inventory) {
if (inventory == null) {
return false;
}
if (PENDING_INVENTORIES.contains(inventory)) {
PENDING_INVENTORIES.remove(inventory);
return true;
} else {
return false;
}
}
@SuppressWarnings("all") @SuppressWarnings("all")
private boolean isInventoryWhitelisted(InventoryView inventory) { private boolean isInventoryWhitelisted(InventoryView inventory) {
if (inventory == null) { if (inventory == null) {
@ -537,8 +521,7 @@ public class PlayerListener implements Listener {
public void onPlayerInventoryOpen(InventoryOpenEvent event) { public void onPlayerInventoryOpen(InventoryOpenEvent event) {
final HumanEntity player = event.getPlayer(); final HumanEntity player = event.getPlayer();
if (listenerService.shouldCancelEvent(player) if (listenerService.shouldCancelEvent(player)
&& !isInventoryWhitelisted(event.getView()) && !isInventoryWhitelisted(event.getView())) {
&& !isInventoryOpenedByApi(event.getInventory())) {
event.setCancelled(true); event.setCancelled(true);
/* /*
@ -556,12 +539,4 @@ public class PlayerListener implements Listener {
event.setCancelled(true); event.setCancelled(true);
} }
} }
// @EventHandler(priority = EventPriority.LOWEST)
// public void onSwitchHand(PlayerSwapHandItemsEvent event) {
// Player player = event.getPlayer();
// if (!player.isSneaking() || !player.hasPermission("keybindings.use"))
// return;
// event.setCancelled(true);
// Bukkit.dispatchCommand(event.getPlayer(), "help");
// }
} }

View File

@ -1,14 +1,10 @@
package fr.xephi.authme.listener; package fr.xephi.authme.listener;
import fr.xephi.authme.settings.Settings; import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.PluginSettings;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.entity.EntityPickupItemEvent;
import org.bukkit.event.player.PlayerSwapHandItemsEvent;
import javax.inject.Inject; import javax.inject.Inject;
@ -26,12 +22,4 @@ public class PlayerListenerHigherThan18 implements Listener {
} }
} }
@EventHandler(priority = EventPriority.LOWEST)
public void onSwitchHand(PlayerSwapHandItemsEvent event) {
Player player = event.getPlayer();
if (player.isSneaking() && player.hasPermission("keybindings.use") && settings.getProperty(PluginSettings.MENU_UNREGISTER_COMPATIBILITY)) {
event.setCancelled(true);
Bukkit.dispatchCommand(event.getPlayer(), "help");
}
}
} }

View File

@ -53,6 +53,9 @@ public class ServerListener implements Listener {
} else if ("ProtocolLib".equalsIgnoreCase(pluginName)) { } else if ("ProtocolLib".equalsIgnoreCase(pluginName)) {
protocolLibService.disable(); protocolLibService.disable();
logger.warning("ProtocolLib has been disabled, unhooking packet adapters!"); logger.warning("ProtocolLib has been disabled, unhooking packet adapters!");
} else if ("PlaceholderAPI".equalsIgnoreCase(pluginName)) {
pluginHookService.unhookPlaceholderApi();
logger.info("PlaceholderAPI has been disabled: unhooking placeholders");
} }
} }
@ -74,6 +77,8 @@ public class ServerListener implements Listener {
spawnLoader.loadCmiSpawn(); spawnLoader.loadCmiSpawn();
} else if ("ProtocolLib".equalsIgnoreCase(pluginName)) { } else if ("ProtocolLib".equalsIgnoreCase(pluginName)) {
protocolLibService.setup(); protocolLibService.setup();
} else if ("PlaceholderAPI".equalsIgnoreCase(pluginName)) {
pluginHookService.tryHookToPlaceholderApi();
} }
} }
} }

View File

@ -29,7 +29,7 @@ public class ProcessSyncPlayerQuit implements SynchronousProcess {
} else { } else {
limboService.restoreData(player); limboService.restoreData(player);
if (!UniversalScheduler.isFolia) { // AuthMeReReloaded - Fix #146 (Very stupid solution, but works) if (!UniversalScheduler.isFolia) { // AuthMeReReloaded - Fix #146 (Very stupid solution, but works)
player.saveData(); // #1238: Speed is sometimes not restored properly // player.saveData(); // #1238: Speed is sometimes not restored properly
} }
} }
player.leaveVehicle(); player.leaveVehicle();

View File

@ -37,7 +37,7 @@ public class GeoIpService {
private volatile boolean downloading; private volatile boolean downloading;
@Inject @Inject
GeoIpService(@DataFolder File dataFolder){ GeoIpService(@DataFolder File dataFolder) {
this.dataFile = dataFolder.toPath().resolve(DATABASE_FILE); this.dataFile = dataFolder.toPath().resolve(DATABASE_FILE);
// Fires download of recent data or the initialization of the look up service // Fires download of recent data or the initialization of the look up service

View File

@ -6,6 +6,8 @@ import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;
import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.output.ConsoleLoggerFactory; import fr.xephi.authme.output.ConsoleLoggerFactory;
import fr.xephi.authme.service.hook.papi.AuthMeExpansion;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -26,6 +28,8 @@ public class PluginHookService {
private Essentials essentials; private Essentials essentials;
private Plugin cmi; private Plugin cmi;
private MultiverseCore multiverse; private MultiverseCore multiverse;
private PlaceholderAPIPlugin placeholderApi;
private AuthMeExpansion authMeExpansion;
/** /**
* Constructor. * Constructor.
@ -38,6 +42,7 @@ public class PluginHookService {
tryHookToEssentials(); tryHookToEssentials();
tryHookToCmi(); tryHookToCmi();
tryHookToMultiverse(); tryHookToMultiverse();
tryHookToPlaceholderApi();
} }
/** /**
@ -133,6 +138,20 @@ public class PluginHookService {
} }
} }
/**
* Attempts to create a hook into PlaceholderAPI.
*/
public void tryHookToPlaceholderApi() {
try {
placeholderApi = getPlugin(pluginManager, "PlaceholderAPI", PlaceholderAPIPlugin.class);
authMeExpansion = new AuthMeExpansion();
authMeExpansion.register();
} catch (Exception | NoClassDefFoundError ignored) {
placeholderApi = null;
authMeExpansion = null;
}
}
/** /**
* Attempts to create a hook into CMI. * Attempts to create a hook into CMI.
*/ */
@ -180,6 +199,16 @@ public class PluginHookService {
multiverse = null; multiverse = null;
} }
/**
* Unhooks from PlaceholderAPI.
*/
public void unhookPlaceholderApi() {
if (placeholderApi != null) {
authMeExpansion.unregister();
placeholderApi = null;
}
}
// ------ // ------
// Helpers // Helpers
// ------ // ------

View File

@ -144,7 +144,7 @@ public class TeleportationService implements Reloadable {
if (settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION)) { if (settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION)) {
Location location = buildLocationFromAuth(player, auth); Location location = buildLocationFromAuth(player, auth);
Location playerLoc = player.getLocation(); Location playerLoc = player.getLocation();
if (location.getX() == playerLoc.getX() && location.getY() == location.getY() && location.getZ() == playerLoc.getZ() if (location.getX() == playerLoc.getX() && location.getY() == playerLoc.getY() && location.getZ() == playerLoc.getZ()
&& location.getWorld() == playerLoc.getWorld()) return; && location.getWorld() == playerLoc.getWorld()) return;
logger.debug("Teleporting `{0}` after login, based on the player auth", player.getName()); logger.debug("Teleporting `{0}` after login, based on the player auth", player.getName());
teleportBackFromSpawn(player, location); teleportBackFromSpawn(player, location);

View File

@ -0,0 +1,72 @@
package fr.xephi.authme.service.hook.papi;
import fr.xephi.authme.AuthMe;
import fr.xephi.authme.api.v3.AuthMeApi;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.HooksSettings;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
/**
* AuthMe PlaceholderAPI expansion class.
* @author Kobe 8
*/
public class AuthMeExpansion extends PlaceholderExpansion {
private final Settings settings = AuthMe.settings;
@Override
public @NotNull String getIdentifier() {
return "authme";
}
@Override
public @NotNull String getAuthor() {
return "HaHaWTH";
}
@Override
public @NotNull String getVersion() {
return AuthMe.getPluginVersion();
}
@Override
public boolean persist() {
return true;
}
@Override
public String onRequest(OfflinePlayer player, @NotNull String params) {
if (!settings.getProperty(HooksSettings.PLACEHOLDER_API)) return null;
AuthMeApi authMeApi = AuthMeApi.getInstance();
if (authMeApi == null) return null;
if (params.equalsIgnoreCase("version")) {
return getVersion();
}
if (params.equalsIgnoreCase("is_registered")) {
if (player != null) {
Player onlinePlayer = player.getPlayer();
if (onlinePlayer != null) {
return String.valueOf(authMeApi.isRegistered(onlinePlayer.getName()));
}
}
}
if (params.equalsIgnoreCase("is_authenticated")) {
if (player != null) {
Player onlinePlayer = player.getPlayer();
if (onlinePlayer != null) {
return String.valueOf(authMeApi.isAuthenticated(onlinePlayer));
}
}
}
if (params.equalsIgnoreCase("last_login_time")) {
if (player != null) {
Player onlinePlayer = player.getPlayer();
if (onlinePlayer != null) {
return authMeApi.getLastLoginTime(onlinePlayer.getName()).toString();
}
}
}
return null;
}
}

View File

@ -15,6 +15,10 @@ public final class HooksSettings implements SettingsHolder {
public static final Property<Boolean> MULTIVERSE = public static final Property<Boolean> MULTIVERSE =
newProperty("Hooks.multiverse", true); newProperty("Hooks.multiverse", true);
@Comment("Do we need to hook with PlaceholderAPI for AuthMe placeholders?")
public static final Property<Boolean> PLACEHOLDER_API =
newProperty("Hooks.placeholderapi", false);
@Comment("Do we need to hook with BungeeCord?") @Comment("Do we need to hook with BungeeCord?")
public static final Property<Boolean> BUNGEECORD = public static final Property<Boolean> BUNGEECORD =
newProperty("Hooks.bungeecord", false); newProperty("Hooks.bungeecord", false);

View File

@ -11,17 +11,10 @@ import static ch.jalu.configme.properties.PropertyInitializer.newLowercaseString
import static ch.jalu.configme.properties.PropertyInitializer.newProperty; import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
public final class PluginSettings implements SettingsHolder { public final class PluginSettings implements SettingsHolder {
@Comment({
"Should we execute /help command when unregistered players press Shift+F?",
"This keeps compatibility with some menu plugins",
"If you are using TrMenu, don't enable this because TrMenu already implemented this."
})
public static final Property<Boolean> MENU_UNREGISTER_COMPATIBILITY =
newProperty("3rdPartyFeature.compatibility.menuPlugins", false);
@Comment({ @Comment({
"Send i18n messages to player based on their client settings, this option will override `settings.messagesLanguage`", "Send i18n messages to player based on their client settings, this option will override `settings.messagesLanguage`",
"(Requires Protocollib or Packetevents)", "(Requires ProtocolLib)",
"This will not affect language of AuthMe help command." "This will not affect language of AuthMe help command."
}) })
public static final Property<Boolean> I18N_MESSAGES = public static final Property<Boolean> I18N_MESSAGES =

View File

@ -173,7 +173,7 @@ public final class RestrictionSettings implements SettingsHolder {
@Comment("Regex syntax for allowed chars in email.") @Comment("Regex syntax for allowed chars in email.")
public static final Property<String> ALLOWED_EMAIL_REGEX = public static final Property<String> ALLOWED_EMAIL_REGEX =
newProperty("settings.restrictions.allowedEmailCharacters", "^[A-Za-z0-9_.]{3,20}@(qq|outlook|163|gmail|icloud)\\.com$"); newProperty("settings.restrictions.allowedEmailCharacters", "^([a-zA-Z0-9_.+-]+)@([a-zA-Z0-9-]+)\\.([a-zA-Z]{2,})$");
@Comment("Force survival gamemode when player joins?") @Comment("Force survival gamemode when player joins?")

View File

@ -62,6 +62,11 @@ public final class SecuritySettings implements SettingsHolder {
public static final Property<Integer> HAVE_I_BEEN_PWNED_LIMIT = public static final Property<Integer> HAVE_I_BEEN_PWNED_LIMIT =
newProperty("Security.account.haveIBeenPwned.limit", 0); newProperty("Security.account.haveIBeenPwned.limit", 0);
@Comment({"Require email verification when changing password if email feature enabled.",
"Original behavior is true"})
public static final Property<Boolean> CHANGE_PASSWORD_EMAIL_VERIFICATION_REQUIRED =
newProperty("Security.account.emailVerification.required", true);
@Comment("Enable captcha when a player uses wrong password too many times") @Comment("Enable captcha when a player uses wrong password too many times")
public static final Property<Boolean> ENABLE_LOGIN_FAILURE_CAPTCHA = public static final Property<Boolean> ENABLE_LOGIN_FAILURE_CAPTCHA =
newProperty("Security.captcha.useCaptcha", false); newProperty("Security.captcha.useCaptcha", false);

View File

@ -1,10 +1,13 @@
package fr.xephi.authme.task; package fr.xephi.authme.task;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URI; import java.net.URI;
import java.net.URL; import java.net.URL;
import java.util.Scanner;
public class Updater { public class Updater {
private final String currentVersion; private final String currentVersion;
@ -32,14 +35,16 @@ public class Updater {
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(10000); conn.setConnectTimeout(10000);
conn.setReadTimeout(10000); conn.setReadTimeout(10000);
Scanner scanner = new Scanner(conn.getInputStream()); conn.setRequestMethod("GET");
String response = scanner.useDelimiter("\\Z").next(); conn.setRequestProperty("Accept", "application/vnd.github+json");
scanner.close(); try (InputStreamReader reader = new InputStreamReader(conn.getInputStream())) {
String latestVersion = response.substring(response.indexOf("tag_name") + 11); JsonObject jsonObject = new JsonParser().parse(reader).getAsJsonObject();
latestVersion = latestVersion.substring(0, latestVersion.indexOf("\"")); String latest = jsonObject.get("tag_name").getAsString();
this.latestVersion = latestVersion; latestVersion = latest;
isUpdateAvailable = !currentVersion.equals(latestVersion); isUpdateAvailable = !currentVersion.equals(latest);
return isUpdateAvailable; reader.close();
return isUpdateAvailable;
}
} catch (IOException ignored) { } catch (IOException ignored) {
this.latestVersion = null; this.latestVersion = null;
isUpdateAvailable = false; isUpdateAvailable = false;

View File

@ -104,7 +104,7 @@
<td> <td>
<p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p> <p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p>
<a href="1919810.com" target="_blank" <a href="1919810.com" target="_blank"
style="text-decoration: none; font-size: 16px">wdsj.in</a> style="text-decoration: none; font-size: 16px">example.com</a>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -110,7 +110,7 @@
<td> <td>
<p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p> <p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p>
<a href="1919810.com" target="_blank" <a href="1919810.com" target="_blank"
style="text-decoration: none; font-size: 16px">wdsj.in</a> style="text-decoration: none; font-size: 16px">example.com</a>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -7,7 +7,7 @@ description: A fork of AuthMeReloaded that contains bug fixes
# noinspection YAMLSchemaValidation # noinspection YAMLSchemaValidation
main: ${pluginDescription.main} main: ${pluginDescription.main}
folia-supported: true folia-supported: true
version: 5.6.1-FORK-b51 version: 5.7.0-FORK-b53
api-version: 1.13 api-version: 1.13
softdepend: softdepend:
- Vault - Vault
@ -20,6 +20,7 @@ softdepend:
- EssentialsSpawn - EssentialsSpawn
- ProtocolLib - ProtocolLib
- floodgate - floodgate
- PlaceholderAPI
commands: commands:
authme: authme:
description: AuthMe op commands description: AuthMe op commands

View File

@ -103,7 +103,7 @@
<td> <td>
<p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p> <p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p>
<a href="1919810.com" target="_blank" <a href="1919810.com" target="_blank"
style="text-decoration: none; font-size: 16px">wdsj.in</a> style="text-decoration: none; font-size: 16px">example.com</a>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -101,7 +101,7 @@
<td> <td>
<p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p> <p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p>
<a href="1919810.com" target="_blank" <a href="1919810.com" target="_blank"
style="text-decoration: none; font-size: 16px">wdsj.in</a> style="text-decoration: none; font-size: 16px">example.com</a>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -103,7 +103,7 @@
<td> <td>
<p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p> <p style="color:#b0adc5;">© 2024 HomoCraft. All rights reserved.</p>
<a href="1919810.com" target="_blank" <a href="1919810.com" target="_blank"
style="text-decoration: none; font-size: 16px">wdsj.in</a> style="text-decoration: none; font-size: 16px">example.com</a>
</td> </td>
</tr> </tr>
</tbody> </tbody>