Compare commits

...

19 Commits

Author SHA1 Message Date
HaHaWTH 548be5042d Merge remote-tracking branch 'origin/master' 2024-04-07 12:37:57 +08:00
HaHaWTH e9fd7fd80f B47 release 2024-04-07 12:37:34 +08:00
DGun Otto e44cd3edc6 Merge pull request #124 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-source-plugin-3.3.1
Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1
2024-04-05 13:16:21 +08:00
dependabot[bot] 219a7a3493 Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1
Bumps [org.apache.maven.plugins:maven-source-plugin](https://github.com/apache/maven-source-plugin) from 3.3.0 to 3.3.1.
- [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.3.0...maven-source-plugin-3.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-05 04:57:38 +00:00
DGun Otto 6876a6dd9f Update workflows 2024-04-04 14:51:02 +08:00
DGun Otto d04a69f481 Update workflows 2024-04-04 13:26:41 +08:00
DGun Otto dfa8317706 Update workflows 2024-04-04 13:21:27 +08:00
HaHaWTH 555514f7dd Add warning for H2 database 2024-04-03 19:02:19 +08:00
HaHaWTH 74633937bc Revert stupid changes made by the original upstream 2024-04-03 16:40:37 +08:00
HaHaWTH 948736b5ea Merge upstream pull request #2777 2024-04-03 16:11:06 +08:00
HaHaWTH 5e54b8b105 Update build 2024-04-03 13:55:42 +08:00
DGun Otto 0d818dd00f Merge pull request #121 from HaHaWTH/dependabot/maven/org.jacoco-jacoco-maven-plugin-0.8.12
Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12
2024-04-03 13:07:47 +08:00
dependabot[bot] 22586e601f Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12
Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.11 to 0.8.12.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.11...v0.8.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:02:43 +00:00
DGun Otto 9938df3c28 [ci skip] Update feature_request.yml 2024-04-02 20:16:08 +08:00
DGun Otto ec2e8d3654 [ci skip] Update bug_report.yml 2024-04-02 20:14:50 +08:00
DGun Otto 71a9c0c98f [ci skip] Update README.md 2024-04-02 19:59:44 +08:00
HaHaWTH 54cef57ea5 Configurable send delay 2024-04-02 17:34:03 +08:00
HaHaWTH 73c1116047 Delayed more 2024-04-02 01:27:58 +08:00
HaHaWTH abb85f005d Delayed more 2024-04-02 01:23:53 +08:00
17 changed files with 106 additions and 84 deletions
+6 -1
View File
@@ -47,8 +47,10 @@ body:
description: Which server implementation are you using? description: Which server implementation are you using?
multiple: false multiple: false
options: options:
- Standalone server (no proxy) - Standalone(Spigot)
- Standalone(Folia)
- BungeeCord - BungeeCord
- Velocity
validations: validations:
required: true required: true
@@ -60,6 +62,9 @@ body:
options: options:
- SQLite - SQLite
- MySQL - MySQL
- H2
- MariaDB
- PostgreSQL
validations: validations:
required: true required: true
+1 -1
View File
@@ -1,6 +1,6 @@
name: Feature request name: Feature request
description: Suggest an idea for AuthMe description: Suggest an idea for AuthMe
labels: 'Type: enhancement' labels: 'enhancement'
body: body:
- type: markdown - type: markdown
+3 -3
View File
@@ -25,7 +25,7 @@ jobs:
uses: actions/upload-artifact@v3.1.2 uses: actions/upload-artifact@v3.1.2
with: with:
name: Download name: Download
path: ./target/AuthMe-5.6.0-FORK-Spigot-Universal.jar path: ./target/AuthMe-5.6.0-FORK-Universal.jar
runtime-test: runtime-test:
name: Plugin Runtime Test name: Plugin Runtime Test
needs: [Build] needs: [Build]
@@ -37,8 +37,8 @@ jobs:
javaVersion: '8' javaVersion: '8'
- mcVersion: '1.12.2' - mcVersion: '1.12.2'
javaVersion: '8' javaVersion: '8'
- mcVersion: '1.20.2' - mcVersion: '1.20.1'
javaVersion: '20' javaVersion: '17'
steps: steps:
- uses: HaHaWTH/minecraft-plugin-runtime-test@paper - uses: HaHaWTH/minecraft-plugin-runtime-test@paper
with: with:
+4 -1
View File
@@ -8,7 +8,10 @@
<img src="https://img.shields.io/github/languages/code-size/HaHaWTH/AuthMeReReloaded.svg" alt="Code size"/> <img src="https://img.shields.io/github/languages/code-size/HaHaWTH/AuthMeReReloaded.svg" alt="Code size"/>
<img src="https://img.shields.io/github/repo-size/HaHaWTH/AuthMeReReloaded.svg" alt="GitHub repo size"/> <img src="https://img.shields.io/github/repo-size/HaHaWTH/AuthMeReReloaded.svg" alt="GitHub repo size"/>
<img src="https://www.codefactor.io/repository/github/hahawth/authmerereloaded/badge" alt="CodeFactor" /> <img src="https://www.codefactor.io/repository/github/hahawth/authmerereloaded/badge" alt="CodeFactor" />
<img src="https://img.shields.io/github/downloads/HaHaWTH/AuthMeReReloaded/total" alt="Downloads" /> <img alt="GitHub Downloads (all assets, all releases)" src="https://img.shields.io/github/downloads/HaHaWTH/AuthMeReReloaded/total?logo=github&label=GitHub%20Downloads&color=black">
<img alt="Spiget Downloads" src="https://img.shields.io/spiget/downloads/114010?logo=spigotmc&label=SpigotMC%20Downloads&color=orange">
<img alt="Modrinth Downloads" src="https://img.shields.io/modrinth/dt/3IEZ9vol?logo=modrinth&label=Modrinth%20Downloads&color=light-green">
<img alt="Hangar Downloads" src="https://img.shields.io/hangar/dt/AuthMeReReloaded?logo=hangar&label=Hangar%20Downloads&color=white">
</p> </p>
**Detailed Changes:** **Detailed Changes:**
+15 -47
View File
@@ -82,54 +82,11 @@
<pluginDescription.authors>sgdc3, games647, Hex3l, krusic22</pluginDescription.authors> <pluginDescription.authors>sgdc3, games647, Hex3l, krusic22</pluginDescription.authors>
</properties> </properties>
<!-- Jenkins profile -->
<profiles>
<!-- Set the buildNumber using the jenkins env. variable -->
<profile>
<id>jenkins</id>
<activation>
<property>
<name>env.BUILD_NUMBER</name>
</property>
</activation>
<properties>
<project.buildNumber>${env.BUILD_NUMBER}</project.buildNumber>
</properties>
</profile>
<!-- Skip long hash tests, reduce the test time of 20-30 seconds -->
<profile>
<id>skipLongHashTests</id>
<activation>
<property>
<name>skipLongHashTests</name>
</property>
</activation>
<properties>
<project.skipExtendedHashTests>true</project.skipExtendedHashTests>
</properties>
</profile>
<!-- Skip javadoc generation for faster local build -->
<profile>
<id>skipJavadocGeneration</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build> <build>
<defaultGoal>clean package</defaultGoal> <defaultGoal>clean package</defaultGoal>
<!-- Little hack to make the shade plugin output a file with the right name --> <!-- Little hack to make the shade plugin output a file with the right name -->
<finalName>${project.finalNameBase}-noshade</finalName> <finalName>${project.finalNameBase}-noshade</finalName>
<resources> <resources>
<resource> <resource>
<directory>.</directory> <directory>.</directory>
@@ -222,7 +179,7 @@
<plugin> <plugin>
<groupId>org.jacoco</groupId> <groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId> <artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.11</version> <version>0.8.12</version>
<executions> <executions>
<execution> <execution>
<id>pre-unit-test</id> <id>pre-unit-test</id>
@@ -282,7 +239,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId> <artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version> <version>3.3.1</version>
<configuration> <configuration>
<finalName>${project.finalNameBase}</finalName> <finalName>${project.finalNameBase}</finalName>
</configuration> </configuration>
@@ -308,6 +265,7 @@
<goal>shade</goal> <goal>shade</goal>
</goals> </goals>
<configuration> <configuration>
<finalName>${project.finalNameBase}-Lite</finalName>
<artifactSet> <artifactSet>
<excludes> <excludes>
<!-- Guava --> <!-- Guava -->
@@ -318,7 +276,7 @@
<exclude>com.google.j2objc:j2objc-annotations</exclude> <exclude>com.google.j2objc:j2objc-annotations</exclude>
<!-- Gson --> <!-- Gson -->
<exclude>com.google.code.gson:gson</exclude> <exclude>com.google.code.gson:gson</exclude>
</excludes> </excludes>
</artifactSet> </artifactSet>
<relocations> <relocations>
<relocation> <relocation>
@@ -366,6 +324,16 @@
<shadedPattern>fr.xephi.authme.libs.com.github.benmanes.caffeine</shadedPattern> <shadedPattern>fr.xephi.authme.libs.com.github.benmanes.caffeine</shadedPattern>
</relocation> </relocation>
</relocations> </relocations>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration> </configuration>
</execution> </execution>
<execution> <execution>
@@ -375,7 +343,7 @@
<goal>shade</goal> <goal>shade</goal>
</goals> </goals>
<configuration> <configuration>
<finalName>${project.finalNameBase}-Spigot-Universal</finalName> <finalName>${project.finalNameBase}-Universal</finalName>
<relocations> <relocations>
<relocation> <relocation>
<pattern>com.google.common</pattern> <pattern>com.google.common</pattern>
+1 -1
View File
@@ -80,7 +80,7 @@ public class AuthMe extends JavaPlugin {
// Version and build number values // Version and build number values
private static String pluginVersion = "5.6.0-Fork"; private static String pluginVersion = "5.6.0-Fork";
private static final String pluginBuild = "b"; private static final String pluginBuild = "b";
private static String pluginBuildNumber = "46"; private static String pluginBuildNumber = "47";
// Private instances // Private instances
private EmailService emailService; private EmailService emailService;
private CommandHandler commandHandler; private CommandHandler commandHandler;
@@ -15,6 +15,7 @@ import fr.xephi.authme.process.register.executors.PasswordRegisterParams;
import fr.xephi.authme.process.register.executors.RegistrationMethod; import fr.xephi.authme.process.register.executors.RegistrationMethod;
import fr.xephi.authme.process.register.executors.TwoFactorRegisterParams; import fr.xephi.authme.process.register.executors.TwoFactorRegisterParams;
import fr.xephi.authme.security.HashAlgorithm; import fr.xephi.authme.security.HashAlgorithm;
import fr.xephi.authme.service.BukkitService;
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.settings.properties.EmailSettings; import fr.xephi.authme.settings.properties.EmailSettings;
@@ -24,8 +25,6 @@ import org.bukkit.entity.Player;
import javax.inject.Inject; import javax.inject.Inject;
import java.util.List; import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import static fr.xephi.authme.process.register.RegisterSecondaryArgument.CONFIRMATION; import static fr.xephi.authme.process.register.RegisterSecondaryArgument.CONFIRMATION;
import static fr.xephi.authme.process.register.RegisterSecondaryArgument.EMAIL_MANDATORY; import static fr.xephi.authme.process.register.RegisterSecondaryArgument.EMAIL_MANDATORY;
@@ -46,6 +45,9 @@ public class RegisterCommand extends PlayerCommand {
@Inject @Inject
private CommonService commonService; private CommonService commonService;
@Inject
private BukkitService bukkitService;
@Inject @Inject
private DataSource dataSource; private DataSource dataSource;
@@ -175,20 +177,15 @@ public class RegisterCommand extends PlayerCommand {
} else if (isSecondArgValidForEmailRegistration(player, arguments)) { } else if (isSecondArgValidForEmailRegistration(player, arguments)) {
management.performRegister(RegistrationMethod.EMAIL_REGISTRATION, management.performRegister(RegistrationMethod.EMAIL_REGISTRATION,
EmailRegisterParams.of(player, email)); EmailRegisterParams.of(player, email));
Timer timer = new Timer(); if (commonService.getProperty(RegistrationSettings.UNREGISTER_ON_EMAIL_VERIFICATION_FAILURE) && commonService.getProperty(RegistrationSettings.UNREGISTER_AFTER_MINUTES) > 0) {
timer.schedule(new TimerTask() { bukkitService.runTaskLater(player, () -> {
@Override
public void run() {
if (dataSource.getAuth(player.getName()) != null) { if (dataSource.getAuth(player.getName()) != null) {
if (dataSource.getAuth(player.getName()).getLastLogin() == null) { if (dataSource.getAuth(player.getName()).getLastLogin() == null) {
management.performUnregisterByAdmin(null, player.getName(), player); management.performUnregisterByAdmin(null, player.getName(), player);
timer.cancel();
} }
} else {
timer.cancel();
} }
} }, 60 * 20 * commonService.getProperty(RegistrationSettings.UNREGISTER_AFTER_MINUTES));
}, 600000); }
} }
} }
@@ -41,6 +41,7 @@ public class MySQL extends AbstractSqlDataSource {
private boolean useSsl; private boolean useSsl;
private boolean serverCertificateVerification; private boolean serverCertificateVerification;
private boolean allowPublicKeyRetrieval; private boolean allowPublicKeyRetrieval;
private String mariaDbSslMode;
private String host; private String host;
private String port; private String port;
private String username; private String username;
@@ -121,6 +122,7 @@ public class MySQL extends AbstractSqlDataSource {
this.useSsl = settings.getProperty(DatabaseSettings.MYSQL_USE_SSL); this.useSsl = settings.getProperty(DatabaseSettings.MYSQL_USE_SSL);
this.serverCertificateVerification = settings.getProperty(DatabaseSettings.MYSQL_CHECK_SERVER_CERTIFICATE); this.serverCertificateVerification = settings.getProperty(DatabaseSettings.MYSQL_CHECK_SERVER_CERTIFICATE);
this.allowPublicKeyRetrieval = settings.getProperty(DatabaseSettings.MYSQL_ALLOW_PUBLIC_KEY_RETRIEVAL); this.allowPublicKeyRetrieval = settings.getProperty(DatabaseSettings.MYSQL_ALLOW_PUBLIC_KEY_RETRIEVAL);
this.mariaDbSslMode = settings.getProperty(DatabaseSettings.MARIADB_SSL_MODE);
} }
/** /**
@@ -145,12 +147,19 @@ public class MySQL extends AbstractSqlDataSource {
ds.setDriverClassName(this.getDriverClassName()); ds.setDriverClassName(this.getDriverClassName());
// Request mysql over SSL // Request mysql over SSL
ds.addDataSourceProperty("useSSL", String.valueOf(useSsl)); if (this instanceof MariaDB) {
ds.addDataSourceProperty("sslMode", mariaDbSslMode);
} else {
ds.addDataSourceProperty("useSSL", String.valueOf(useSsl));
// Disabling server certificate verification on need
if (!serverCertificateVerification) {
ds.addDataSourceProperty("verifyServerCertificate", String.valueOf(false));
}
}
// Disabling server certificate verification on need // Disabling server certificate verification on need
if (!serverCertificateVerification) {
ds.addDataSourceProperty("verifyServerCertificate", String.valueOf(false));
} // Disabling server certificate verification on need
if (allowPublicKeyRetrieval) { if (allowPublicKeyRetrieval) {
ds.addDataSourceProperty("allowPublicKeyRetrieval", String.valueOf(true)); ds.addDataSourceProperty("allowPublicKeyRetrieval", String.valueOf(true));
} }
@@ -79,6 +79,7 @@ public class DataSourceProvider implements Provider<DataSource> {
break; break;
case H2: case H2:
dataSource = new H2(settings, dataFolder); dataSource = new H2(settings, dataFolder);
logger.warning("You are using H2 database, which is still in development!\nMake sure to backup and report any issues you encounter on GitHub!");
break; break;
default: default:
throw new UnsupportedOperationException("Unknown data source type '" + dataSourceType + "'"); throw new UnsupportedOperationException("Unknown data source type '" + dataSourceType + "'");
@@ -39,14 +39,16 @@ public class BedrockAutoLoginListener implements Listener {
return settings.getProperty(HooksSettings.HOOK_FLOODGATE_PLAYER) && settings.getProperty(SecuritySettings.FORCE_LOGIN_BEDROCK) && org.geysermc.floodgate.api.FloodgateApi.getInstance().isFloodgateId(uuid) && getServer().getPluginManager().getPlugin("floodgate") != null; return settings.getProperty(HooksSettings.HOOK_FLOODGATE_PLAYER) && settings.getProperty(SecuritySettings.FORCE_LOGIN_BEDROCK) && org.geysermc.floodgate.api.FloodgateApi.getInstance().isFloodgateId(uuid) && getServer().getPluginManager().getPlugin("floodgate") != null;
} }
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(PlayerJoinEvent event) { public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = event.getPlayer().getName(); String name = event.getPlayer().getName();
UUID uuid = event.getPlayer().getUniqueId(); UUID uuid = event.getPlayer().getUniqueId();
if (isBedrockPlayer(uuid) && !authmeApi.isAuthenticated(player) && authmeApi.isRegistered(name)) { bukkitService.runTaskLater(player, () -> {
authmeApi.forceLogin(player); if (isBedrockPlayer(uuid) && !authmeApi.isAuthenticated(player) && authmeApi.isRegistered(name)) {
messages.send(player, MessageKey.BEDROCK_AUTO_LOGGED_IN); authmeApi.forceLogin(player);
} messages.send(player, MessageKey.BEDROCK_AUTO_LOGGED_IN);
}
},20L);
} }
} }
@@ -19,6 +19,7 @@ import fr.xephi.authme.service.bungeecord.BungeeSender;
import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.service.bungeecord.MessageType;
import fr.xephi.authme.service.velocity.VMessageType; import fr.xephi.authme.service.velocity.VMessageType;
import fr.xephi.authme.service.velocity.VelocitySender; import fr.xephi.authme.service.velocity.VelocitySender;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.commandconfig.CommandManager; import fr.xephi.authme.settings.commandconfig.CommandManager;
import fr.xephi.authme.settings.properties.HooksSettings; import fr.xephi.authme.settings.properties.HooksSettings;
import fr.xephi.authme.settings.properties.RegistrationSettings; import fr.xephi.authme.settings.properties.RegistrationSettings;
@@ -47,6 +48,9 @@ public class AsynchronousJoin implements AsynchronousProcess {
@Inject @Inject
private Server server; private Server server;
@Inject
private Settings settings;
@Inject @Inject
private DataSource database; private DataSource database;
@@ -157,11 +161,11 @@ public class AsynchronousJoin implements AsynchronousProcess {
// As described at https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/ // As described at https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/
// "Keep in mind that you can't send plugin messages directly after a player joins." // "Keep in mind that you can't send plugin messages directly after a player joins."
bukkitService.scheduleSyncDelayedTask(() -> bukkitService.scheduleSyncDelayedTask(() ->
bungeeSender.sendAuthMeBungeecordMessage(player, MessageType.LOGIN), 5L); bungeeSender.sendAuthMeBungeecordMessage(player, MessageType.LOGIN), settings.getProperty(HooksSettings.PROXY_SEND_DELAY));
} }
if (velocitySender.isEnabled()) { if (velocitySender.isEnabled()) {
bukkitService.scheduleSyncDelayedTask(() -> bukkitService.scheduleSyncDelayedTask(() ->
velocitySender.sendAuthMeVelocityMessage(player, VMessageType.LOGIN), 5L); velocitySender.sendAuthMeVelocityMessage(player, VMessageType.LOGIN), settings.getProperty(HooksSettings.PROXY_SEND_DELAY));
} }
return; return;
} }
@@ -28,6 +28,7 @@ import fr.xephi.authme.service.bungeecord.BungeeSender;
import fr.xephi.authme.service.bungeecord.MessageType; import fr.xephi.authme.service.bungeecord.MessageType;
import fr.xephi.authme.service.velocity.VMessageType; import fr.xephi.authme.service.velocity.VMessageType;
import fr.xephi.authme.service.velocity.VelocitySender; import fr.xephi.authme.service.velocity.VelocitySender;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.DatabaseSettings; import fr.xephi.authme.settings.properties.DatabaseSettings;
import fr.xephi.authme.settings.properties.EmailSettings; import fr.xephi.authme.settings.properties.EmailSettings;
import fr.xephi.authme.settings.properties.HooksSettings; import fr.xephi.authme.settings.properties.HooksSettings;
@@ -83,7 +84,8 @@ public class AsynchronousLogin implements AsynchronousProcess {
@Inject @Inject
private SessionService sessionService; private SessionService sessionService;
@Inject
private Settings settings;
@Inject @Inject
private BungeeSender bungeeSender; private BungeeSender bungeeSender;
@Inject @Inject
@@ -310,11 +312,11 @@ public class AsynchronousLogin implements AsynchronousProcess {
// As described at https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/ // As described at https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/
// "Keep in mind that you can't send plugin messages directly after a player joins." // "Keep in mind that you can't send plugin messages directly after a player joins."
bukkitService.scheduleSyncDelayedTask(() -> bukkitService.scheduleSyncDelayedTask(() ->
bungeeSender.sendAuthMeBungeecordMessage(player, MessageType.LOGIN), 5L); bungeeSender.sendAuthMeBungeecordMessage(player, MessageType.LOGIN), settings.getProperty(HooksSettings.PROXY_SEND_DELAY));
} }
if (velocitySender.isEnabled()) { if (velocitySender.isEnabled()) {
bukkitService.scheduleSyncDelayedTask(() -> bukkitService.scheduleSyncDelayedTask(() ->
velocitySender.sendAuthMeVelocityMessage(player, VMessageType.LOGIN), 5L); velocitySender.sendAuthMeVelocityMessage(player, VMessageType.LOGIN), settings.getProperty(HooksSettings.PROXY_SEND_DELAY));
} }
// As the scheduling executes the Task most likely after the current // As the scheduling executes the Task most likely after the current
@@ -167,6 +167,10 @@ public class BukkitService implements SettingsDependent {
return getScheduler().runTaskLater(task, delay); return getScheduler().runTaskLater(task, delay);
} }
public MyScheduledTask runTaskLater(Entity entity, Runnable task, long delay) {
return getScheduler().runTaskLater(entity, task, delay);
}
/** /**
* Schedules this task to run asynchronously or immediately executes it based on * Schedules this task to run asynchronously or immediately executes it based on
* AuthMe's configuration. * AuthMe's configuration.
@@ -31,7 +31,17 @@ public final class DatabaseSettings implements SettingsHolder {
public static final Property<String> MYSQL_PORT = public static final Property<String> MYSQL_PORT =
newProperty("DataSource.mySQLPort", "3306"); newProperty("DataSource.mySQLPort", "3306");
@Comment("Connect to MySQL database over SSL") @Comment({"Replacement of Mysql's useSsl (for MariaDB only).",
"- disable: No SSL",
"- trust: Trust blindly (no validation)",
"- verify_ca: Encryption, certificates validation, BUT no hostname verification",
"- verify_full: Encryption, certificate validation and hostname validation",
"Read more: https://bit.ly/mariadb-sslmode"})
public static final Property<String> MARIADB_SSL_MODE =
newProperty("DataSource.MariaDbSslMode", "disabled");
@Comment({"Connect to MySQL database over SSL",
"If you're using MariaDB, use sslMode instead"})
public static final Property<Boolean> MYSQL_USE_SSL = public static final Property<Boolean> MYSQL_USE_SSL =
newProperty("DataSource.mySQLUseSSL", true); newProperty("DataSource.mySQLUseSSL", true);
@@ -39,12 +49,13 @@ public final class DatabaseSettings implements SettingsHolder {
"We would not recommend to set this option to false.", "We would not recommend to set this option to false.",
"Set this option to false at your own risk if and only if you know what you're doing"}) "Set this option to false at your own risk if and only if you know what you're doing"})
public static final Property<Boolean> MYSQL_CHECK_SERVER_CERTIFICATE = public static final Property<Boolean> MYSQL_CHECK_SERVER_CERTIFICATE =
newProperty( "DataSource.mySQLCheckServerCertificate", true ); newProperty( "DataSource.mySQLCheckServerCertificate", true);
@Comment({"Authorize client to retrieve RSA server public key.", @Comment({"Authorize client to retrieve RSA server public key.",
"Advanced option, ignore if you don't know what it means."}) "Advanced option, ignore if you don't know what it means.",
"If you are using MariaDB, use MariaDbSslMode instead."})
public static final Property<Boolean> MYSQL_ALLOW_PUBLIC_KEY_RETRIEVAL = public static final Property<Boolean> MYSQL_ALLOW_PUBLIC_KEY_RETRIEVAL =
newProperty( "DataSource.mySQLAllowPublicKeyRetrieval", true ); newProperty( "DataSource.mySQLAllowPublicKeyRetrieval", true);
@Comment("Username to connect to the MySQL database") @Comment("Username to connect to the MySQL database")
public static final Property<String> MYSQL_USERNAME = public static final Property<String> MYSQL_USERNAME =
@@ -22,6 +22,12 @@ public final class HooksSettings implements SettingsHolder {
public static final Property<Boolean> VELOCITY = public static final Property<Boolean> VELOCITY =
newProperty("Hooks.velocity", false); newProperty("Hooks.velocity", false);
@Comment({"How many ticks should we wait before sending login info to proxy?",
"Change this to higher if your player has high ping.",
"See: https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/"})
public static final Property<Long> PROXY_SEND_DELAY =
newProperty("Hooks.proxySendDelay", 10L);
@Comment({"Hook into floodgate.", @Comment({"Hook into floodgate.",
"This must be true if you want to use other bedrock features." "This must be true if you want to use other bedrock features."
}) })
@@ -46,6 +46,16 @@ public final class RegistrationSettings implements SettingsHolder {
newProperty(RegisterSecondaryArgument.class, "settings.registration.secondArg", newProperty(RegisterSecondaryArgument.class, "settings.registration.secondArg",
RegisterSecondaryArgument.CONFIRMATION); RegisterSecondaryArgument.CONFIRMATION);
@Comment({
"Should we unregister the player when he didn't verify the email?",
"This only works if you enabled email registration."})
public static final Property<Boolean> UNREGISTER_ON_EMAIL_VERIFICATION_FAILURE =
newProperty("settings.registration.email.unregisterOnEmailVerificationFailure", false);
@Comment({"How many minutes should we wait before unregister the player",
"when he didn't verify the email?"})
public static final Property<Long> UNREGISTER_AFTER_MINUTES =
newProperty("settings.registration.email.unregisterAfterMinutes", 10L);
@Comment({ @Comment({
"Do we force kick a player after a successful registration?", "Do we force kick a player after a successful registration?",
"Do not use with login feature below"}) "Do not use with login feature below"})
+1 -1
View File
@@ -4,7 +4,7 @@ website: http://github.com/HaHaWTH/AuthMeReReloaded/
description: A fork of AuthMeReloaded that contains bug fixes description: A fork of AuthMeReloaded that contains bug fixes
main: ${pluginDescription.main} main: ${pluginDescription.main}
folia-supported: true folia-supported: true
version: 5.6.0-FORK-b46 version: 5.6.0-FORK-b47
api-version: 1.13 api-version: 1.13
softdepend: softdepend:
- Vault - Vault