Compare commits

..

28 Commits

Author SHA1 Message Date
HaHaWTH 68ab92dd7a Merge remote-tracking branch 'origin/master' 2024-01-10 23:28:32 +08:00
HaHaWTH d9495ff839 B40 release 2024-01-10 23:28:08 +08:00
DGun Otto 0e01d8145f [ci skip] Update README.md 2024-01-08 21:55:31 +08:00
HaHaWTH ed9e379500 Merge remote-tracking branch 'origin/master' 2024-01-07 22:07:36 +08:00
HaHaWTH a9cb2d2490 Fix 2024-01-07 22:06:47 +08:00
DGun Otto 900937c033 Update updateChecker 2024-01-03 23:37:54 +08:00
DGun Otto 9585fc1bdb [ci skip] Update README.md 2024-01-02 21:17:55 +08:00
HaHaWTH d8d3e8544c Remove useless bannerColor 2023-12-31 21:25:42 +08:00
HaHaWTH a50e5fa802 Remove useless bannerColor 2023-12-31 17:40:43 +08:00
HaHaWTH c9363ca6e8 false 2023-12-31 17:34:57 +08:00
HaHaWTH 222bd879d1 Add warn 2023-12-31 17:34:42 +08:00
HaHaWTH 01f4a8f205 Revert config value to false 2023-12-31 17:20:43 +08:00
HaHaWTH be976b6738 Add AdvancedShulkerFix and optimize LoginLocationFix 2023-12-31 17:19:30 +08:00
HaHaWTH c89a818696 improve getMinHeight() 2023-12-31 14:10:28 +08:00
HaHaWTH 1c63eca0f7 improve getMinHeight() 2023-12-31 14:07:44 +08:00
HaHaWTH 69989fb99e B39 release 2023-12-30 14:06:36 +08:00
HaHaWTH 8cf794e303 Remove debug 2023-12-30 13:51:47 +08:00
HaHaWTH de9e74d616 Fix compatibility with Minecraft 1.16.x and lower 2023-12-30 13:13:58 +08:00
HaHaWTH e147a25076 Fix compatibility with Minecraft 1.16.x and lower 2023-12-30 11:08:27 +08:00
HaHaWTH b25d874122 Thread-safety 2023-12-30 09:20:16 +08:00
DGun Otto b322032757 Merge pull request #86 from HaHaWTH/dependabot/maven/org.apache.commons-commons-email-1.6.0
Bump org.apache.commons:commons-email from 1.6-SNAPSHOT to 1.6.0
2023-12-26 23:25:13 +08:00
DGun Otto d505601d33 Merge pull request #87 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-compiler-plugin-3.12.1
Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.0 to 3.12.1
2023-12-26 00:20:23 +08:00
dependabot[bot] 8580d57a12 Bump org.apache.maven.plugins:maven-compiler-plugin
Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.12.0 to 3.12.1.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.12.0...maven-compiler-plugin-3.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 04:21:45 +00:00
dependabot[bot] b051f4feef Bump org.apache.commons:commons-email from 1.6-SNAPSHOT to 1.6.0
Bumps org.apache.commons:commons-email from 1.6-SNAPSHOT to 1.6.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-email
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 04:21:10 +00:00
HaHaWTH 96c886b93d Merge remote-tracking branch 'origin/master' 2023-12-20 21:00:52 +08:00
HaHaWTH f1d6df9a17 Fix LoginLocationFixListener 2023-12-20 21:00:31 +08:00
DGun Otto 6681075031 Merge pull request #84 from HaHaWTH/dependabot/maven/org.apache.maven.plugins-maven-compiler-plugin-3.12.0
Bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.12.0
2023-12-19 13:16:58 +08:00
dependabot[bot] 1aae25f510 Bump org.apache.maven.plugins:maven-compiler-plugin
Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.11.0...maven-compiler-plugin-3.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-19 04:46:16 +00:00
11 changed files with 137 additions and 51 deletions
+5 -1
View File
@@ -5,6 +5,7 @@ MCBBS Link: [Click Here](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1471
<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/repo-size/HaHaWTH/AuthMeReReloaded.svg" alt="GitHub repo size"/>
<img src="https://www.codefactor.io/repository/github/hahawth/authmerereloaded/badge" alt="CodeFactor" />
</p>
**Detailed Changes:**
@@ -24,10 +25,13 @@ MCBBS Link: [Click Here](https://www.mcbbs.net/forum.php?mod=viewthread&tid=1471
13. Offhand Menu compatibility(Thats amazing)
14. Automatically fix portal stuck issue
15. Automatically login for Bedrock players(configurable)
16. More......
16. Fix shulker box crash bug on legacy versions(MC 1.13-)
17. More......
**Download links:**
[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)
TODO: Implement HAProxy ip forward(Useful for Frp)
**Pull Requests and suggestions are welcome!**
+37 -6
View File
@@ -206,7 +206,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<version>3.12.1</version>
<configuration>
<source>${java.source}</source>
<target>${java.target}</target>
@@ -346,6 +346,10 @@
<pattern>com.google.gson</pattern>
<shadedPattern>fr.xephi.authme.libs.com.google.gson</shadedPattern>
</relocation>
<!-- <relocation>-->
<!-- <pattern>com.cryptomorin.xseries</pattern>-->
<!-- <shadedPattern>fr.xephi.authme.libs.com.cryptomorin.xseries</shadedPattern>-->
<!-- </relocation>-->
</relocations>
</configuration>
</execution>
@@ -440,6 +444,14 @@
<pattern>com.google.protobuf</pattern>
<shadedPattern>fr.xephi.authme.libs.com.google.protobuf</shadedPattern>
</relocation>
<relocation>
<pattern>io.netty</pattern>
<shadedPattern>fr.xephi.authme.libs.io.netty</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.commons.validator</pattern>
<shadedPattern>fr.xephi.authme.libs.org.apache.commons.validator</shadedPattern>
</relocation>
</relocations>
<filters>
@@ -507,6 +519,15 @@
</build>
<repositories>
<repository>
<id>opencollab-snapshot-main</id>
<url>https://repo.opencollab.dev/main/</url>
</repository>
<repository>
<id>opencollab-maven-snapshots</id>
<url>https://repo.opencollab.dev/maven-snapshots/</url>
</repository>
<!-- Apache snapshots repo -->
<repository>
<id>apache-snapshots</id>
@@ -625,10 +646,6 @@
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>opencollab-snapshot-main</id>
<url>https://repo.opencollab.dev/main/</url>
</repository>
</repositories>
<dependencies>
@@ -682,7 +699,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.6-SNAPSHOT</version>
<version>1.6.0</version>
<optional>true</optional>
</dependency>
@@ -865,6 +882,20 @@
</exclusions>
</dependency>
<!-- dependencies used by HAProxy feature -->
<!-- <dependency>-->
<!-- <groupId>io.netty</groupId>-->
<!-- <artifactId>netty-codec-haproxy</artifactId>-->
<!-- <version>4.1.104.Final</version>-->
<!-- <scope>compile</scope>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>commons-validator</groupId>-->
<!-- <artifactId>commons-validator</artifactId>-->
<!-- <version>1.8.0</version>-->
<!-- <scope>provided</scope>-->
<!-- </dependency>-->
<!-- zPermissions plugin -->
<dependency>
<groupId>org.tyrannyofheaven.bukkit</groupId>
+25 -19
View File
@@ -11,6 +11,7 @@ import fr.xephi.authme.initialization.OnShutdownPlayerSaver;
import fr.xephi.authme.initialization.OnStartupTasks;
import fr.xephi.authme.initialization.SettingsProvider;
import fr.xephi.authme.initialization.TaskCloser;
import fr.xephi.authme.listener.AdvancedShulkerFixListener;
import fr.xephi.authme.listener.BedrockAutoLoginListener;
import fr.xephi.authme.listener.BlockListener;
import fr.xephi.authme.listener.DoubleLoginFixListener;
@@ -73,8 +74,8 @@ public class AuthMe extends JavaPlugin {
// Version and build number values
private static String pluginVersion = "5.6.0-Fork";
public static final String pluginBuild = "b";
private static String pluginBuildNumber = "38";
private static final String pluginBuild = "b";
private static String pluginBuildNumber = "40";
// Private instances
private EmailService emailService;
private CommandHandler commandHandler;
@@ -85,12 +86,22 @@ public class AuthMe extends JavaPlugin {
private Injector injector;
private BackupService backupService;
public static ConsoleLogger logger;
/**
* Constructor.
*/
public AuthMe() {
}
/**
* Get the plugin's build
*
* @return The plugin's build
*/
public static String getPluginBuild() {
return pluginBuild;
}
/**
* Get the plugin's name.
@@ -179,22 +190,12 @@ public class AuthMe extends JavaPlugin {
// Set up Metrics
OnStartupTasks.sendMetrics(this, settings);
if (settings.getProperty(SecuritySettings.SHOW_STARTUP_BANNER)) {
String loadColorConfig = settings.getProperty(SecuritySettings.STARTUP_BANNER_COLOR);
if (loadColorConfig.startsWith("§") && !loadColorConfig.endsWith("§") && (loadColorConfig.length() % 2 == 0)) {
logger.info("\n" + loadColorConfig + " ___ __ __ __ ___ \n" +
loadColorConfig + " / | __ __/ /_/ /_ / |/ /__ \n" +
loadColorConfig + " / /| |/ / / / __/ __ \\/ /|_/ / _ \\\n" +
loadColorConfig + " / ___ / /_/ / /_/ / / / / / / __/\n" +
loadColorConfig + "/_/ |_\\__,_/\\__/_/ /_/_/ /_/\\___/ \n" +
loadColorConfig + " ");
} else {
logger.info("\n" + " ___ __ __ __ ___ \n" +
" / | __ __/ /_/ /_ / |/ /__ \n" +
" / /| |/ / / / __/ __ \\/ /|_/ / _ \\\n" +
" / ___ / /_/ / /_/ / / / / / / __/\n" +
"/_/ |_\\__,_/\\__/_/ /_/_/ /_/\\___/ \n" +
" ");
}
logger.info("\n" + " ___ __ __ __ ___ \n" +
" / | __ __/ /_/ /_ / |/ /__ \n" +
" / /| |/ / / / __/ __ \\/ /|_/ / _ \\\n" +
" / ___ / /_/ / /_/ / / / / / / __/\n" +
"/_/ |_\\__,_/\\__/_/ /_/_/ /_/\\___/ \n" +
" ");
}
// Successful message
//detect server brand with classloader
@@ -349,6 +350,11 @@ public class AuthMe extends JavaPlugin {
if (settings.getProperty(SecuritySettings.ANTI_GHOST_PLAYERS)) {
pluginManager.registerEvents(injector.getSingleton(DoubleLoginFixListener.class), this);
}
if (settings.getProperty(SecuritySettings.ADVANCED_SHULKER_FIX) && !isClassLoaded("org.bukkit.event.player.PlayerCommandSendEvent")) {
pluginManager.registerEvents(injector.getSingleton(AdvancedShulkerFixListener.class), this);
} else if (settings.getProperty(SecuritySettings.ADVANCED_SHULKER_FIX) && isClassLoaded("org.bukkit.event.player.PlayerCommandSendEvent")) {
logger.warning("You are running an 1.13+ minecraft server, advancedShulkerFix won't enable.");
}
}
/**
@@ -416,7 +422,7 @@ public class AuthMe extends JavaPlugin {
if (isUpdateAvailable(latestVersion)) {
String message = "New version available! Latest:" + latestVersion + " Current:" + pluginBuild + pluginBuildNumber;
getLogger().log(Level.WARNING, message);
getLogger().log(Level.WARNING, "Download from here: github.com/HaHaWTH/AuthMeReReloaded/releases/latest");
getLogger().log(Level.WARNING, "Download from here: https://github.com/HaHaWTH/AuthMeReReloaded/releases/latest");
} else {
getLogger().log(Level.INFO, "You are running the latest version.");
}
@@ -0,0 +1,26 @@
package fr.xephi.authme.listener;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockDispenseEvent;
//This fix is only for Minecraft 1.13-
public class AdvancedShulkerFixListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onDispenserActivate(BlockDispenseEvent event) {
Block block = event.getBlock();
if (block.getRelative(BlockFace.DOWN).getType().equals(Material.AIR) && block.getY() == 0) {
event.setCancelled(true);
return;
}
if (block.getRelative(BlockFace.UP).getType().equals(Material.AIR) && block.getY() == block.getWorld().getMaxHeight() - 1) {
event.setCancelled(true);
}
}
}
@@ -32,10 +32,10 @@ import org.bukkit.inventory.meta.ItemMeta;
import javax.inject.Inject;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level;
@@ -70,12 +70,14 @@ public class GuiCaptchaHandler implements Listener {
private int timesLeft = 3;
//Use ConcurrentHashMap to store player and their close reason
/* We used many async tasks so there is concurrent**/
public static HashMap<Player, String> closeReasonMap = new HashMap<>();
public static ConcurrentHashMap<Player, String> closeReasonMap = new ConcurrentHashMap<>();
//define randomStringSet
String randomSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz!@#%&*()_+";
String randomString = "";
Random randomItemSet = new Random();
Random howManyRandom = new Random();
private boolean isPacketListenersActive = false;
public GuiCaptchaHandler() {
@@ -162,6 +164,7 @@ public class GuiCaptchaHandler implements Listener {
messages.send(playerunreg, MessageKey.GUI_CAPTCHA_VERIFIED_AUTO_BEDROCK);
return;
}
bukkitService.runTaskAsynchronously(() -> {
bukkitService.runTask(() -> {
randomString = sb.toString();
@@ -233,14 +236,12 @@ public class GuiCaptchaHandler implements Listener {
timeOut = settings.getProperty(RestrictionSettings.TIMEOUT);
}
long finalTimeOut = timeOut;
bukkitService.runTask(() -> {
bukkitService.runTaskLater(() -> {
if (!closeReasonMap.containsKey(playerunreg) && !authmeApi.isRegistered(playerunreg.getName())) {
playerunreg.kickPlayer(service.retrieveSingleMessage(playerunreg, MessageKey.GUI_CAPTCHA_KICK_TIMEOUT));
timesLeft = 3; // Reset the attempt counter
}
}, finalTimeOut * 20L);
});
bukkitService.runTaskLater(() -> {
if (!closeReasonMap.containsKey(playerunreg) && !authmeApi.isRegistered(playerunreg.getName())) {
playerunreg.kickPlayer(service.retrieveSingleMessage(playerunreg, MessageKey.GUI_CAPTCHA_KICK_TIMEOUT));
timesLeft = 3; // Reset the attempt counter
}
}, finalTimeOut * 20L);
}
});
});
@@ -18,6 +18,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import javax.inject.Inject;
import java.lang.reflect.Method;
public class LoginLocationFixListener implements Listener {
@@ -33,6 +34,8 @@ public class LoginLocationFixListener implements Listener {
}
private static Material materialPortal = Material.matchMaterial("PORTAL");
private static boolean isAvailable; // false: unchecked/method not available true: method is available
private final boolean isSmartAsyncTeleport = AuthMe.settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT);
private final boolean isFixPortalStuck = AuthMe.settings.getProperty(SecuritySettings.LOGIN_LOC_FIX_SUB_PORTAL);
private final boolean isFixGroundStuck = AuthMe.settings.getProperty(SecuritySettings.LOGIN_LOC_FIX_SUB_UNDERGROUND);
@@ -45,12 +48,28 @@ public class LoginLocationFixListener implements Listener {
materialPortal = Material.matchMaterial("NETHER_PORTAL");
}
}
try {
Method getMinHeightMethod = World.class.getMethod("getMinHeight");
isAvailable = true;
} catch (NoSuchMethodException e) {
isAvailable = false;
}
}
private int getMinHeight(World world) {
//This keeps compatibility of 1.16.x and lower
if (isAvailable) {
return world.getMinHeight();
} else {
return 0;
}
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
Location JoinLocation = player.getLocation().getBlock().getLocation().add(0.5, 0.1, 0.5);
Location JoinLocation = player.getLocation();
if (isFixPortalStuck) {
if (!JoinLocation.getBlock().getType().equals(materialPortal) && !JoinLocation.getBlock().getRelative(BlockFace.UP).getType().equals(materialPortal)) {
return;
@@ -73,11 +92,12 @@ public class LoginLocationFixListener implements Listener {
JoinBlock.breakNaturally();
}
messages.send(player, MessageKey.LOCATION_FIX_PORTAL);
} else if (isFixGroundStuck) {
}
if (isFixGroundStuck) {
Material UpType = JoinLocation.getBlock().getRelative(BlockFace.UP).getType();
World world = player.getWorld();
int MaxHeight = world.getMaxHeight();
int MinHeight = world.getMinHeight();
int MinHeight = getMinHeight(world);
if (!UpType.isOccluding() && !UpType.equals(Material.LAVA)) {
return;
}
@@ -108,5 +128,6 @@ public class LoginLocationFixListener implements Listener {
}
}
}
}
}
@@ -29,12 +29,8 @@ 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)) {
return;
}
event.setCancelled(true);
if (settings.getProperty(PluginSettings.MENU_UNREGISTER_COMPATIBILITY)) {
if (player.isSneaking() && player.hasPermission("keybindings.use") && settings.getProperty(PluginSettings.MENU_UNREGISTER_COMPATIBILITY)) {
event.setCancelled(true);
Bukkit.dispatchCommand(event.getPlayer(), "help");
}
}
@@ -14,7 +14,7 @@ public final class PluginSettings implements SettingsHolder {
"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", true);
newProperty("3rdPartyFeature.compatibility.menuPlugins", false);
@Comment({
"Do you want to enable the session feature?",
@@ -35,6 +35,11 @@ public final class SecuritySettings implements SettingsHolder {
public static final Property<Boolean> ANTI_GHOST_PLAYERS =
newProperty("3rdPartyFeature.fixes.antiGhostPlayer", false);
@Comment({"(MC1.13- only)",
"Should we fix the shulker crash bug with advanced method?"})
public static final Property<Boolean> ADVANCED_SHULKER_FIX =
newProperty("3rdPartyFeature.fixes.advancedShulkerFix", false);
@Comment({"Choose the best teleport method by server brand?",
"(Enable this if you are using Paper)"})
public static final Property<Boolean> SMART_ASYNC_TELEPORT =
@@ -95,10 +100,6 @@ public final class SecuritySettings implements SettingsHolder {
public static final Property<Boolean> SHOW_STARTUP_BANNER =
newProperty("Plugin.banners.showBanners", true);
@Comment("Change the banner colors here (Default: §r)")
public static final Property<String> STARTUP_BANNER_COLOR =
newProperty("Plugin.banners.bannerColor", "§r");
@Comment("Max allowed tries before a captcha is required")
public static final Property<Integer> MAX_LOGIN_TRIES_BEFORE_CAPTCHA =
newProperty("Security.captcha.maxLoginTry", 8);
Binary file not shown.
+1 -1
View File
@@ -3,7 +3,7 @@ authors: [${pluginDescription.authors}]
website: http://github.com/HaHaWTH/AuthMeReReloaded/
description: A fork of AuthMeReloaded that contains bug fixes
main: ${pluginDescription.main}
version: 5.6.0-FORK-b38
version: 5.6.0-FORK-b40
api-version: 1.13
softdepend:
- Vault