AuthMe 3.0 Support
This commit is contained in:
parent
18b90dedc9
commit
9b3617ecba
8 changed files with 178 additions and 4 deletions
8
pom.xml
8
pom.xml
|
@ -86,6 +86,12 @@
|
||||||
<artifactId>authme</artifactId>
|
<artifactId>authme</artifactId>
|
||||||
<version>2.9.5</version>
|
<version>2.9.5</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<!-- http://dev.bukkit.org/server-mods/authme-reloaded/ -->
|
||||||
|
<groupId>fr.xephi</groupId>
|
||||||
|
<artifactId>authme</artifactId>
|
||||||
|
<version>3.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<!-- http://dev.bukkit.org/server-mods/multiverse-core/ -->
|
<!-- http://dev.bukkit.org/server-mods/multiverse-core/ -->
|
||||||
<groupId>com.onarandombox.multiversecore</groupId>
|
<groupId>com.onarandombox.multiversecore</groupId>
|
||||||
|
@ -96,7 +102,7 @@
|
||||||
<!-- http://dev.bukkit.org/bukkit-plugins/multiworld-v-2-0/ -->
|
<!-- http://dev.bukkit.org/bukkit-plugins/multiworld-v-2-0/ -->
|
||||||
<groupId>multiworld</groupId>
|
<groupId>multiworld</groupId>
|
||||||
<artifactId>multiworld</artifactId>
|
<artifactId>multiworld</artifactId>
|
||||||
<version>4.6.6</version>
|
<version>4.7.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<!-- http://dev.bukkit.org/server-mods/xauth/ -->
|
<!-- http://dev.bukkit.org/server-mods/xauth/ -->
|
||||||
|
|
|
@ -4,6 +4,7 @@ import org.bukkit.Bukkit;
|
||||||
|
|
||||||
import de.jaschastarke.hooking.BooleanHooker;
|
import de.jaschastarke.hooking.BooleanHooker;
|
||||||
import de.jaschastarke.hooking.GetHooker;
|
import de.jaschastarke.hooking.GetHooker;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.hooks.AuthMe3Hooks;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.hooks.AuthMeHooks;
|
import de.jaschastarke.minecraft.limitedcreative.hooks.AuthMeHooks;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.hooks.MultiVerseHooks;
|
import de.jaschastarke.minecraft.limitedcreative.hooks.MultiVerseHooks;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.hooks.PlayerCheckHooker;
|
import de.jaschastarke.minecraft.limitedcreative.hooks.PlayerCheckHooker;
|
||||||
|
@ -26,10 +27,12 @@ public final class Hooks {
|
||||||
IsMultiVerse.clearHooks();
|
IsMultiVerse.clearHooks();
|
||||||
InventoryIncompatible.clearHooks();
|
InventoryIncompatible.clearHooks();
|
||||||
|
|
||||||
if (isPluginEnabled("AuthMe")) {
|
if (isAuthMePresent()) {
|
||||||
new AuthMeHooks(plugin);
|
new AuthMeHooks(plugin);
|
||||||
|
} else if (isAuthMe3Present()) {
|
||||||
|
plugin.getModules().addSharedModule(new AuthMe3Hooks(plugin));
|
||||||
}
|
}
|
||||||
if (isPluginEnabled("xAuth")) {
|
if (isXAuth20Present()) {
|
||||||
new xAuthHooks(plugin);
|
new xAuthHooks(plugin);
|
||||||
}
|
}
|
||||||
if (isPluginEnabled("Multiverse-Core")) {
|
if (isPluginEnabled("Multiverse-Core")) {
|
||||||
|
@ -49,4 +52,37 @@ public final class Hooks {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isAuthMePresent() {
|
||||||
|
if (isPluginEnabled("AuthMe")) {
|
||||||
|
try {
|
||||||
|
return Class.forName("uk.org.whoami.authme.api.API") != null;
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isAuthMe3Present() {
|
||||||
|
if (isPluginEnabled("AuthMe")) {
|
||||||
|
try {
|
||||||
|
return Class.forName("fr.xephi.authme.api.API") != null;
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isXAuth20Present() {
|
||||||
|
if (isPluginEnabled("xAuth")) {
|
||||||
|
try {
|
||||||
|
return Class.forName("com.cypherx.xauth.xAuth") != null;
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,9 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import de.jaschastarke.bukkit.lib.CoreModule;
|
import de.jaschastarke.bukkit.lib.CoreModule;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.hooks.AuthMe3Hooks;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.inventories.ArmoryConfig;
|
import de.jaschastarke.minecraft.limitedcreative.inventories.ArmoryConfig;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.inventories.AuthMe3Inventories;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.inventories.AuthMeInventories;
|
import de.jaschastarke.minecraft.limitedcreative.inventories.AuthMeInventories;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.inventories.Inventory;
|
import de.jaschastarke.minecraft.limitedcreative.inventories.Inventory;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.inventories.InventoryConfig;
|
import de.jaschastarke.minecraft.limitedcreative.inventories.InventoryConfig;
|
||||||
|
@ -41,8 +43,11 @@ public class ModInventories extends CoreModule<LimitedCreative> {
|
||||||
config = plugin.getPluginConfig().registerSection(new InventoryConfig(this, entry));
|
config = plugin.getPluginConfig().registerSection(new InventoryConfig(this, entry));
|
||||||
armor_config = config.registerSection(new ArmoryConfig(this));
|
armor_config = config.registerSection(new ArmoryConfig(this));
|
||||||
|
|
||||||
if (plugin.getServer().getPluginManager().isPluginEnabled("AuthMe")) {
|
if (Hooks.isAuthMePresent()) {
|
||||||
addModule(new AuthMeInventories(plugin, this));
|
addModule(new AuthMeInventories(plugin, this));
|
||||||
|
} else if (Hooks.isAuthMe3Present()) {
|
||||||
|
modules.linkSharedModule(AuthMe3Hooks.class, plugin.getModules());
|
||||||
|
addModule(new AuthMe3Inventories(plugin, this));
|
||||||
}
|
}
|
||||||
String incomp = Hooks.InventoryIncompatible.test();
|
String incomp = Hooks.InventoryIncompatible.test();
|
||||||
if (config.getEnabled() && incomp != null) {
|
if (config.getEnabled() && incomp != null) {
|
||||||
|
|
|
@ -6,6 +6,7 @@ import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import de.jaschastarke.bukkit.lib.CoreModule;
|
import de.jaschastarke.bukkit.lib.CoreModule;
|
||||||
import de.jaschastarke.bukkit.lib.commands.AliasHelpedCommand;
|
import de.jaschastarke.bukkit.lib.commands.AliasHelpedCommand;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.hooks.AuthMe3Hooks;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.BlockListener;
|
import de.jaschastarke.minecraft.limitedcreative.regions.BlockListener;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.IWorldGuardIntegration;
|
import de.jaschastarke.minecraft.limitedcreative.regions.IWorldGuardIntegration;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.PlayerData;
|
import de.jaschastarke.minecraft.limitedcreative.regions.PlayerData;
|
||||||
|
@ -49,6 +50,9 @@ public class ModRegions extends CoreModule<LimitedCreative> {
|
||||||
entry.deactivateUsage();
|
entry.deactivateUsage();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (Hooks.isAuthMe3Present()) {
|
||||||
|
modules.linkSharedModule(AuthMe3Hooks.class, plugin.getModules());
|
||||||
|
}
|
||||||
|
|
||||||
command = new RegionsCommand(this);
|
command = new RegionsCommand(this);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
package de.jaschastarke.minecraft.limitedcreative.hooks;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerLoginEvent;
|
||||||
|
import org.bukkit.plugin.IllegalPluginAccessException;
|
||||||
|
|
||||||
|
import de.jaschastarke.bukkit.lib.SimpleModule;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.Hooks;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.LimitedCreative;
|
||||||
|
import fr.xephi.authme.api.API;
|
||||||
|
import fr.xephi.authme.events.LoginEvent;
|
||||||
|
|
||||||
|
public class AuthMe3Hooks extends SimpleModule<LimitedCreative> implements Listener {
|
||||||
|
private Map<String, Boolean> users = new HashMap<String, Boolean>();
|
||||||
|
private PlayerCheckHooker.Check check;
|
||||||
|
public AuthMe3Hooks(final LimitedCreative plugin) {
|
||||||
|
super(plugin);
|
||||||
|
check = new PlayerCheckHooker.Check() {
|
||||||
|
@Override
|
||||||
|
public boolean test(Player player) {
|
||||||
|
if (users.containsKey(player.getName())) {
|
||||||
|
if (plugin.isDebug()) // not nessesary, but so no string concation without debug needed
|
||||||
|
plugin.getLog().debug("AuthMe: "+player.getName()+": Event logged in: "+users.get(player.getName()));
|
||||||
|
return users.get(player.getName());
|
||||||
|
} else {
|
||||||
|
boolean li = API.isAuthenticated(player);
|
||||||
|
if (plugin.isDebug()) // not nessesary, but so no string concation without debug needed
|
||||||
|
plugin.getLog().debug("AuthMe: "+player.getName()+": logged in: "+li);
|
||||||
|
return li;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
try {
|
||||||
|
super.onEnable();
|
||||||
|
} catch (IllegalPluginAccessException e) {
|
||||||
|
enabled = true;
|
||||||
|
plugin.getLog().warn("AuthMe 3.0 Bug detected. Update AuthMe to a newer version as soon as avilable.");
|
||||||
|
}
|
||||||
|
Hooks.IsLoggedIn.register(check);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
|
super.onDisable();
|
||||||
|
Hooks.IsLoggedIn.unregister(check);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
|
public void onPlayerLogin(PlayerLoginEvent event) {
|
||||||
|
if (event.getPlayer() == null)
|
||||||
|
return;
|
||||||
|
users.put(event.getPlayer().getName(), API.isAuthenticated(event.getPlayer()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onAuthMeLogin(LoginEvent event) {
|
||||||
|
users.put(event.getPlayer().getName(), true);
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,7 @@ import uk.org.whoami.authme.api.API;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.Hooks;
|
import de.jaschastarke.minecraft.limitedcreative.Hooks;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.LimitedCreative;
|
import de.jaschastarke.minecraft.limitedcreative.LimitedCreative;
|
||||||
|
|
||||||
|
@Deprecated // AuthMe 3.0 released. Compatibility for older versions will be removed sometime
|
||||||
public class AuthMeHooks {
|
public class AuthMeHooks {
|
||||||
public AuthMeHooks(final LimitedCreative plugin) {
|
public AuthMeHooks(final LimitedCreative plugin) {
|
||||||
Hooks.IsLoggedIn.register(new PlayerCheckHooker.Check() {
|
Hooks.IsLoggedIn.register(new PlayerCheckHooker.Check() {
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
package de.jaschastarke.minecraft.limitedcreative.inventories;
|
||||||
|
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
import de.jaschastarke.bukkit.lib.SimpleModule;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.LimitedCreative;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.ModInventories;
|
||||||
|
import fr.xephi.authme.events.RestoreInventoryEvent;
|
||||||
|
import fr.xephi.authme.events.StoreInventoryEvent;
|
||||||
|
|
||||||
|
public class AuthMe3Inventories extends SimpleModule<LimitedCreative> implements Listener {
|
||||||
|
ModInventories invmod;
|
||||||
|
public AuthMe3Inventories(LimitedCreative plugin, ModInventories modInventories) {
|
||||||
|
super(plugin);
|
||||||
|
invmod = modInventories;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onStoreInventory(StoreInventoryEvent event) {
|
||||||
|
if (isDebug())
|
||||||
|
getLog().debug("AuthMe Store Event: "+event.getPlayer().getName());
|
||||||
|
|
||||||
|
event.getPlayer().closeInventory();
|
||||||
|
GameMode cgm = event.getPlayer().getGameMode();
|
||||||
|
|
||||||
|
if (cgm == GameMode.ADVENTURE && !invmod.getConfig().getSeparateAdventure())
|
||||||
|
cgm = GameMode.SURVIVAL;
|
||||||
|
|
||||||
|
if (cgm != GameMode.CREATIVE || invmod.getConfig().getStoreCreative()) {
|
||||||
|
invmod.getInventory(event.getPlayer()).save(cgm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
public void onRestoreInventory(RestoreInventoryEvent event) {
|
||||||
|
if (isDebug())
|
||||||
|
getLog().debug("AuthMe Restore Event: "+event.getPlayer().getName());
|
||||||
|
|
||||||
|
event.getPlayer().closeInventory();
|
||||||
|
GameMode cgm = event.getPlayer().getGameMode();
|
||||||
|
|
||||||
|
if (cgm == GameMode.ADVENTURE && !invmod.getConfig().getSeparateAdventure())
|
||||||
|
cgm = GameMode.SURVIVAL;
|
||||||
|
|
||||||
|
Inventory inv = invmod.getInventory(event.getPlayer());
|
||||||
|
if (inv.isStored(cgm)) {
|
||||||
|
inv.load(cgm);
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@ import de.jaschastarke.bukkit.lib.SimpleModule;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.LimitedCreative;
|
import de.jaschastarke.minecraft.limitedcreative.LimitedCreative;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.ModInventories;
|
import de.jaschastarke.minecraft.limitedcreative.ModInventories;
|
||||||
|
|
||||||
|
@Deprecated // AuthMe 3.0 released. Compatibility for older versions will be removed sometime
|
||||||
public class AuthMeInventories extends SimpleModule<LimitedCreative> implements Listener {
|
public class AuthMeInventories extends SimpleModule<LimitedCreative> implements Listener {
|
||||||
ModInventories invmod;
|
ModInventories invmod;
|
||||||
public AuthMeInventories(LimitedCreative plugin, ModInventories modInventories) {
|
public AuthMeInventories(LimitedCreative plugin, ModInventories modInventories) {
|
||||||
|
|
Loading…
Reference in a new issue