Compare commits
38 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6ef4f0f3e3 | |||
| bb9c46b147 | |||
| 131d2429f9 | |||
| d305fe6679 | |||
| 35c801ae63 | |||
| b5a46d94de | |||
| 5a5992b353 | |||
| f56a23f4b7 | |||
| a57382f269 | |||
| 9380efdd3d | |||
| ad64370bf1 | |||
| 54bae76d27 | |||
| 93f1385c7a | |||
| d5dbc7e5c7 | |||
| 72bbb4ebaa | |||
| caf0d3f8ed | |||
| 95726cc7f9 | |||
| ca7a070e4c | |||
| ab1d952070 | |||
| 1ce64bbcdf | |||
| 1c38384ac7 | |||
| 90ff68eacd | |||
| f7569f3eb1 | |||
| 77c289dc13 | |||
| cca78be983 | |||
| c15575cb54 | |||
| 81dd695999 | |||
| 3065b98456 | |||
| e3c460e614 | |||
| a1cb16dd3d | |||
| e9810c69f4 | |||
| 2b0bee198e | |||
| c31e009860 | |||
| 2b94776e71 | |||
| fe2b877052 | |||
| efad796eb0 | |||
| fe17b93bde | |||
| af9aa5c1cb |
@@ -12,3 +12,5 @@ updates:
|
|||||||
- dependency-name: com.zaxxer:HikariCP
|
- dependency-name: com.zaxxer:HikariCP
|
||||||
- dependency-name: "org.mockito:mockito-core" # Mockito 5 requires Java 11
|
- dependency-name: "org.mockito:mockito-core" # Mockito 5 requires Java 11
|
||||||
versions: ">= 5"
|
versions: ">= 5"
|
||||||
|
- dependency-name: "org.slf4j:slf4j-simple"
|
||||||
|
versions: ">= 1.7.36"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# AuthMeReReloaded
|
# AuthMeReReloaded
|
||||||
**"A fork of the best authentication plugin for the Bukkit modding API!⭐"**
|
**"A fork of the best authentication plugin for the Bukkit modding API!⭐"**
|
||||||
MCBBS Link: [Click Here](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1471495)
|
|
||||||

|

|
||||||
<p align="center">
|
<p align="center">
|
||||||
<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"/>
|
||||||
@@ -27,13 +27,14 @@ MCBBS Link: [Click Here](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1471
|
|||||||
15. Automatically login for Bedrock players(configurable)
|
15. Automatically login for Bedrock players(configurable)
|
||||||
16. Fix shulker box crash bug on legacy versions(MC 1.13-)
|
16. Fix shulker box crash bug on legacy versions(MC 1.13-)
|
||||||
17. **H2 database support**
|
17. **H2 database support**
|
||||||
18. More......
|
18. **100% compatibility with original authme and extensions**
|
||||||
|
19. 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)
|
||||||
|
|
||||||
TODO: Implement HAProxy ip forward(Useful for Frp)
|
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!**
|
||||||
|
|
||||||
|
|||||||
@@ -164,7 +164,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-enforcer-plugin</artifactId>
|
<artifactId>maven-enforcer-plugin</artifactId>
|
||||||
<version>3.1.0</version>
|
<version>3.2.1</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>enforce-environment</id>
|
<id>enforce-environment</id>
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<version>0.8.8</version>
|
<version>0.8.11</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>pre-unit-test</id>
|
<id>pre-unit-test</id>
|
||||||
@@ -294,7 +294,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-shade-plugin</artifactId>
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
<version>3.5.1</version>
|
<version>3.5.2</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>shaded-jar</id>
|
<id>shaded-jar</id>
|
||||||
@@ -484,7 +484,7 @@
|
|||||||
<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.0.1</version>
|
<version>3.1.0</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!-- Deploy the jars as artifacts into the remote repository -->
|
<!-- Deploy the jars as artifacts into the remote repository -->
|
||||||
<plugin>
|
<plugin>
|
||||||
@@ -519,10 +519,6 @@
|
|||||||
</build>
|
</build>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
|
||||||
<id>lss233-repo</id>
|
|
||||||
<url>https://crystal.app.lss233.com/repositories/minecraft/</url>
|
|
||||||
</repository>
|
|
||||||
<repository>
|
<repository>
|
||||||
<id>opencollab-snapshot-main</id>
|
<id>opencollab-snapshot-main</id>
|
||||||
<url>https://repo.opencollab.dev/main/</url>
|
<url>https://repo.opencollab.dev/main/</url>
|
||||||
@@ -660,6 +656,7 @@
|
|||||||
<version>2.2.2-SNAPSHOT</version>
|
<version>2.2.2-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Jalu Injector -->
|
<!-- Jalu Injector -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ch.jalu</groupId>
|
<groupId>ch.jalu</groupId>
|
||||||
@@ -754,7 +751,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mariadb.jdbc</groupId>
|
<groupId>org.mariadb.jdbc</groupId>
|
||||||
<artifactId>mariadb-java-client</artifactId>
|
<artifactId>mariadb-java-client</artifactId>
|
||||||
<version>3.1.4</version>
|
<version>3.3.3</version>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -1071,7 +1068,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
<artifactId>postgresql</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
<version>42.6.0</version>
|
<version>42.7.2</version>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
@@ -1122,7 +1119,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.xerial</groupId>
|
<groupId>org.xerial</groupId>
|
||||||
<artifactId>sqlite-jdbc</artifactId>
|
<artifactId>sqlite-jdbc</artifactId>
|
||||||
<version>3.45.0.0</version>
|
<version>3.45.1.0</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -75,7 +75,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 = "41";
|
private static String pluginBuildNumber = "43";
|
||||||
// Private instances
|
// Private instances
|
||||||
private EmailService emailService;
|
private EmailService emailService;
|
||||||
private CommandHandler commandHandler;
|
private CommandHandler commandHandler;
|
||||||
@@ -426,9 +426,7 @@ public class AuthMe extends JavaPlugin {
|
|||||||
} else {
|
} else {
|
||||||
getLogger().log(Level.INFO, "You are running the latest version.");
|
getLogger().log(Level.INFO, "You are running the latest version.");
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException ignored) {
|
||||||
String formattedException = ExceptionUtils.formatException(e);
|
|
||||||
getLogger().log(Level.WARNING, "Error occurred while checking updates from GitHub. Reason: " + formattedException);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,14 +84,14 @@ public final class CommandUtils {
|
|||||||
* @return formatted command syntax incl. arguments
|
* @return formatted command syntax incl. arguments
|
||||||
*/
|
*/
|
||||||
public static String buildSyntax(CommandDescription command, List<String> correctLabels) {
|
public static String buildSyntax(CommandDescription command, List<String> correctLabels) {
|
||||||
String commandSyntax = ChatColor.WHITE + "/" + correctLabels.get(0) + ChatColor.YELLOW;
|
StringBuilder commandSyntax = new StringBuilder(ChatColor.WHITE + "/" + correctLabels.get(0) + ChatColor.YELLOW);
|
||||||
for (int i = 1; i < correctLabels.size(); ++i) {
|
for (int i = 1; i < correctLabels.size(); ++i) {
|
||||||
commandSyntax += " " + correctLabels.get(i);
|
commandSyntax.append(" ").append(correctLabels.get(i));
|
||||||
}
|
}
|
||||||
for (CommandArgumentDescription argument : command.getArguments()) {
|
for (CommandArgumentDescription argument : command.getArguments()) {
|
||||||
commandSyntax += " " + formatArgument(argument);
|
commandSyntax.append(" ").append(formatArgument(argument));
|
||||||
}
|
}
|
||||||
return commandSyntax;
|
return commandSyntax.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class H2 extends AbstractSqlDataSource {
|
|||||||
this.tableName = settings.getProperty(DatabaseSettings.MYSQL_TABLE);
|
this.tableName = settings.getProperty(DatabaseSettings.MYSQL_TABLE);
|
||||||
this.col = new Columns(settings);
|
this.col = new Columns(settings);
|
||||||
this.con = connection;
|
this.con = connection;
|
||||||
this.columnsHandler = AuthMeColumnsHandler.createForSqlite(con, settings);
|
this.columnsHandler = AuthMeColumnsHandler.createForH2(con, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -167,7 +167,7 @@ public class H2 extends AbstractSqlDataSource {
|
|||||||
|
|
||||||
if (isColumnMissing(md, col.EMAIL)) {
|
if (isColumnMissing(md, col.EMAIL)) {
|
||||||
st.executeUpdate("ALTER TABLE " + tableName
|
st.executeUpdate("ALTER TABLE " + tableName
|
||||||
+ " ADD COLUMN IF NOT EXISTS " + col.EMAIL + " VARCHAR(255);");
|
+ " ADD COLUMN IF NOT EXISTS " + col.EMAIL + " VARCHAR_IGNORECASE(255);");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isColumnMissing(md, col.IS_LOGGED)) {
|
if (isColumnMissing(md, col.IS_LOGGED)) {
|
||||||
|
|||||||
@@ -51,6 +51,26 @@ public final class AuthMeColumnsHandler {
|
|||||||
return new AuthMeColumnsHandler(sqlColHandler);
|
return new AuthMeColumnsHandler(sqlColHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a column handler for H2.
|
||||||
|
*
|
||||||
|
* @param connection the connection to the database
|
||||||
|
* @param settings plugin settings
|
||||||
|
* @return created column handler
|
||||||
|
*/
|
||||||
|
public static AuthMeColumnsHandler createForH2(Connection connection, Settings settings) {
|
||||||
|
ColumnContext columnContext = new ColumnContext(settings, false);
|
||||||
|
String tableName = settings.getProperty(DatabaseSettings.MYSQL_TABLE);
|
||||||
|
String nameColumn = settings.getProperty(DatabaseSettings.MYSQL_COL_NAME);
|
||||||
|
|
||||||
|
SqlColumnsHandler<ColumnContext, String> sqlColHandler = new SqlColumnsHandler<>(
|
||||||
|
forSingleConnection(connection, tableName, nameColumn, columnContext)
|
||||||
|
.setPredicateSqlGenerator(new PredicateSqlGenerator<>(columnContext, false))
|
||||||
|
);
|
||||||
|
return new AuthMeColumnsHandler(sqlColHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a column handler for MySQL.
|
* Creates a column handler for MySQL.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ public class GuiCaptchaHandler implements Listener {
|
|||||||
String randomString = "";
|
String randomString = "";
|
||||||
Random randomItemSet = new Random();
|
Random randomItemSet = new Random();
|
||||||
Random howManyRandom = new Random();
|
Random howManyRandom = new Random();
|
||||||
|
private Material captchaMaterial = getRandomMaterial();
|
||||||
|
|
||||||
|
|
||||||
private boolean isPacketListenersActive = false;
|
private boolean isPacketListenersActive = false;
|
||||||
@@ -108,11 +109,11 @@ public class GuiCaptchaHandler implements Listener {
|
|||||||
if (event.getWhoClicked() instanceof Player) {
|
if (event.getWhoClicked() instanceof Player) {
|
||||||
Player player = (Player) event.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
ItemStack currentItem = event.getCurrentItem();
|
ItemStack currentItem = event.getCurrentItem();
|
||||||
if (!authmeApi.isRegistered(player.getName()) && !closeReasonMap.containsKey(player)) {
|
if (!authmeApi.isRegistered(player.getName())) {
|
||||||
if (isBedrockPlayer(player.getUniqueId())) {
|
if (isBedrockPlayer(player.getUniqueId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (currentItem != null && currentItem.getType().equals(Material.REDSTONE_BLOCK)) {
|
if (currentItem != null && currentItem.getType().equals(captchaMaterial)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
if (!closeReasonMap.containsKey(player)) {
|
if (!closeReasonMap.containsKey(player)) {
|
||||||
closeReasonMap.put(player, "verified");
|
closeReasonMap.put(player, "verified");
|
||||||
@@ -169,7 +170,7 @@ public class GuiCaptchaHandler implements Listener {
|
|||||||
Random random_blockpos = new Random();
|
Random random_blockpos = new Random();
|
||||||
AtomicInteger random_num = new AtomicInteger(random_blockpos.nextInt(26));
|
AtomicInteger random_num = new AtomicInteger(random_blockpos.nextInt(26));
|
||||||
Inventory menu = Bukkit.createInventory(playerunreg, 27, messages.retrieveSingle(playerunreg, MessageKey.GUI_CAPTCHA_WINDOW_NAME, randomString));
|
Inventory menu = Bukkit.createInventory(playerunreg, 27, messages.retrieveSingle(playerunreg, MessageKey.GUI_CAPTCHA_WINDOW_NAME, randomString));
|
||||||
ItemStack item = new ItemStack(Material.REDSTONE_BLOCK);
|
ItemStack item = new ItemStack(captchaMaterial);
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
try {
|
try {
|
||||||
if (meta != null) {
|
if (meta != null) {
|
||||||
@@ -314,6 +315,12 @@ public class GuiCaptchaHandler implements Listener {
|
|||||||
closeReasonMap.remove(player);
|
closeReasonMap.remove(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Material getRandomMaterial() {
|
||||||
|
Material[] allMaterials = Material.values();
|
||||||
|
Random random = new Random();
|
||||||
|
return allMaterials[random.nextInt(allMaterials.length)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ authors: [${pluginDescription.authors}]
|
|||||||
website: http://github.com/HaHaWTH/AuthMeReReloaded/
|
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}
|
||||||
version: 5.6.0-FORK-b41
|
version: 5.6.0-FORK-b43
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
softdepend:
|
softdepend:
|
||||||
- Vault
|
- Vault
|
||||||
|
|||||||
Reference in New Issue
Block a user