cleanup + moved legacy chestshop support

This commit is contained in:
Gabriele C 2015-10-04 14:33:21 +02:00
parent 4324a1a89a
commit 5576b117c9
12 changed files with 16 additions and 554 deletions

View File

@ -1,33 +0,0 @@
# ForcedActions AuthMeReloaded configuration file
forcedActions:
# example1:
# at: firstlogin
# executedBy: console
# commands:
# - 'msg %p Welcome!'
# - pex user set group Player
# example2:
# at: connection
# executedBy: console
# commands:
# - 'msg %p You need to register yourself to play this server!'
#
# Avariable events:
# connection
# firstconnection
# login
# firstlogin
# wrongpassword
# disconnection
# logout
# serverstop
# serverstart
# pluginreload
# mysqlerror
# antiboton
# antibotoff
#

View File

@ -1,113 +0,0 @@
# Advanced AuthMeReloaded configuration file
sessionLogin:
# Do you want to enable session? When enabled
# the ip of a player will be bound to the nickname
# of the player on login. As long as neither of those
# two change players don't have to login on a reconnect
enabled: false
# After how many minutes a session should timeout?
# 0 for unlimitted sessions, use 0 at your own risk!
# consider that session will end only after timeout, and
# if player's ip is changed but the timeout treshould isent
# ended, player will kick out of sever for invalidSession!
timeout: 10
# Do we need to timeout the session if the player is offline
# And try to login with an another IP Address?
sessionExpireOnIpChange: true
security:
# Online players aren't kicked out for "Logged in from another location!", this option should always be set to true!
forceSingleSession: true
# Should we display all other accounts from a player when he joins?
# permission: /authme.admin.accounts
displayOtherAccounts: true
# Should the purge command can be performed only from the console?
purgeOnlyFromConsole: true
# Minimum value for the purge ingame command (if enabled), prevent the destruction of the entire database.
minIngamePurgeDays: 30
captcha:
# Do players need to write a captcha code if they use too many times a wrong password
useCaptcha: false
# Max allowed tries before request a captcha
maxLoginTry: 5
# Captcha length
captchaLength: 5
# Restricted users will be kicked if their IP aren't the same specified below.
# Usage: - username;ip
RestrictedUsers:
- playername;127.0.0.1
# User listed below will bypass every login/registration system. CASE SENSITIVE!!!
# Use this at your own risk!!! USE ONLY WITH ONLINE MODE SERVERS!!!
# This option can add compatibility with BuildCraft and some other mods.
UnrestrictedName: []
passwordEncryption:
# possible values: MD5, SHA1, SHA256, WHIRLPOOL, XAUTH, MD5VB, PHPBB,
# PLAINTEXT ( unhashed password),
# MYBB, IPB3, PHPFUSION, SMF, XENFORO, SALTED2MD5, JOOMLA, BCRYPT, WBB3, SHA512,
# DOUBLEMD5, PBKDF2, WORDPRESS, ROYALAUTH, CUSTOM(for developpers only)
passwordHash: SHA256
# salt length for the SALTED2MD5 MD5(MD5(password)+salt)
doubleMD5SaltLength: 8
# If password checking return false , do we need to check with all
# other password algorithm to check an old password ?
# AuthMe will update the password to the new passwordHash !
supportOldPasswordHash: false
SQLProblem:
# Stop the server if we can't contact the sql database
# Take care with this, if you set that to false,
# AuthMe automatically disable and the server is not protected!
stopServer: true
ReloadCommand:
# /reload support
useReloadCommandSupport: true
console:
# Remove spam console
noConsoleSpam: false
# Replace passwords in the console when player type a command like /login
removePassword: true
externalBoard:
# MySQL column for the salt , needed for some forum/cms support
mySQLColumnSalt: ''
# MySQL column for the group, needed for some forum/cms support
mySQLColumnGroup: ''
# -1 mean disabled. If u want that only
# activated player can login in your server
# u can put in this options the group number
# of unactivated user, needed for some forum/cms support
nonActivedUserGroup: -1
# Other MySQL columns where we need to put the Username (case sensitive)
mySQLOtherUsernameColumns: []
# How much Log to Round needed in BCrypt(do not change it if you do not know what's your doing)
bCryptLog2Round: 10
# phpBB prefix defined during phpbb installation process
phpbbTablePrefix: 'phpbb_'
# phpBB activated group id , 2 is default registered group defined by phpbb
phpbbActivatedGroupId: 2
# WordPress prefix defined during WordPress installation process
wordpressTablePrefix: 'wp_'
hooks:
# Do we need to hook with multiverse for spawn checking?
multiverse: true
# Do we need to hook with ChestShop for prevent buy or selling ?
chestshop: true
# Do we need to hook with BungeeCord for get the real Player ip ?
bungeecord: false
# Do we need to disable Essentials SocialSpy on join ?
disableSocialSpy: true
# Do we need to cache custom Attributes ?
customAttributes: false
# Spawn Priority, Values : authme, essentials, multiverse, default
spawnPriority: authme,essentials,multiverse,default
# AuthMe will NEVER teleport players !
noTeleport: false

View File

@ -1,68 +0,0 @@
# Database AuthMeReloaded configuration file
# What type of database do you want to use? Avariable options: sqlite, mysql, redis
backend: sqlite
# Do you like to cache all the queries? (Performance Boost)
caching: true
# Database Name
databaseName: authme
# Table of the database
tableName: authme
# MySql Database connection settings
# Avariable only if the AuthMeReloaded-Mysql module is installed!
mysql:
port: '3306'
host: 127.0.0.1
username: authme
password: '12345'
# Redis Database connection settings
# Avariable only if the AuthMeReloaded-Redis module is installed!
redis:
# Get Redis from http://redis.io/
host: 127.0.0.1
port: 6379
# If your Redis server uses AUTH, set here the password.
password: ""
# Database column names
columnNames:
idColumn: id
nameColumn: username
realNameColumn: realname
passwordColumn: password
ipColumn: ip
emailColumn: email
loginStatusColumn: loginstatus
lastLoginColumn: lastlogin
lastlLocationXColumn: x
lastLocationYColumn: y
lastLocationZColumn: z
lastLocationWorldColumn: world
backup:
# Enable or disable Automatic Backup of the SQLite database, destination path: "/AuthMe/backups/%date%/%timestamp%.sql"
ActivateBackup: false
# Interval time (in minutes), set to 0 to disable periodic backup
Interval: 300
# Do you want to perform a Backup when the server starts?
OnServerStart: false
# Do you want to perform a Backup when the server stops?
OnServerStop: true
purge:
# Does AuthMe need to purge automatically old unused accounts?
useAutoPurge: false
# Number of Days required to mark an account as Unused
daysBeforeRemovePlayer: 60
# What to remove
remove:
playerInventoryFile: true
essentialsFiles: true
permissions: true
limitedCreativesInventories: true
antiXRayFiles: true
# World where players.dat are stored (necessary to remove inventory files)
defaultWorld: 'world'

View File

@ -1,40 +0,0 @@
emailSystem:
# Do you want to replace the Password registration with an Email registration method?
enableEmailRegistration: false
# Do you want to enable the double check of the email address during a player registration?
# When it's true, registration require that kind of command:
# /register <email> <confirmEmail>
doubleEmailCheck: true
# Like maxRegPerIp but with emails
maxRegPerEmail: 1
# Do you want to recall players to add an email to their accounts?
recallPlayers: true
# Delay in minute for the recall scheduler
delayRecall: 5
passwordRecovery:
# Recovery password length
RecoveryPasswordLength: 8
# Recovery Email subject
mailSubject: 'Your new AuthMe Password'
# Recovery Email text
mailText: 'Dear <playername>, <br /><br /> This is your new AuthMe password for the server <br /><br /> <servername> : <br /><br /> <generatedpass><br /><br />Do not forget to change password after login! <br /> /changepassword <generatedpass> newPassword'
smtpOptions:
# SMTP server host
mailSMTP: smtp.gmail.com
# SMTP server port
mailPort: 465
# Email account that sends the mails
mailAccount: ''
# Email account's password
mailPassword: ''
# Custom SenderName, that replace the mailAccount name in the emails
mailSenderName: ''
emailSecurity:
# Blacklisted domains for emails
emailBlacklist:
- 10minutemail.com
# Do you like a Whitelist instead of a Blacklist?
blacklistAsWhitelist: false

View File

@ -1,100 +0,0 @@
# █████╗ ██╗ ██╗████████╗██╗ ██╗ ███╗ ███╗███████╗ ██████╗ ███████╗██╗ ██████╗ ██████╗ ███████╗██████╗
# ██╔══██╗██║ ██║╚══██╔══╝██║ ██║ ████╗ ████║██╔════╝ ██╔══██╗██╔════╝██║ ██╔═══██╗██╔══██╗██╔════╝██╔══██╗
# ███████║██║ ██║ ██║ ███████║ ██╔████╔██║█████╗ ██████╔╝█████╗ ██║ ██║ ██║██║ ██║█████╗ ██║ ██║
# ██╔══██║██║ ██║ ██║ ██╔══██║ ██║╚██╔╝██║██╔══╝ ██╔══██╗██╔══╝ ██║ ██║ ██║██║ ██║██╔══╝ ██║ ██║
# ██║ ██║╚██████╔╝ ██║ ██║ ██║ ██║ ╚═╝ ██║███████╗ ██║ ██║███████╗███████╗╚██████╔╝██████╔╝███████╗██████╔╝
# ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═════╝
# Welcome to the AuthMeReloaded main configuration file!
# Available languages: en, de, br, cz, pl, fr, ru, hu, sk, es, zhtw, fi, zhcn, lt, it, ko, pt
language: en
registration:
# Do you want to enable the registration on the server?
enabled: true
# Do you want to force players to register before playing?
force: true
# Maximum Registration per IP
maxRegPerIp: 1
# Maximum allowed username length
maxUsernameLength: 30
# Minimum required username length
minUsernameLength: 4
# Regex syntax allowed in player's username
allowedNicknameCharacters: '[a-zA-Z0-9_]*'
# Do you want to kick players after a successful registration?
# Do not use this option with the loginAfterRegister feature below!
kickAfterRegistration: false
# Do you want to force the player to login after a successful registration?
loginAfterRegister: false
login:
# How many players per IP can join the server concurrently?
maxInstanceForIP: 1
# Should not registered players be kicked immediately?
kickNonRegistered: false
# Should the players be kicked immediately on wrong password?
kickOnWrongPassword: false
# Send every X seconds a message to a player to remind him that he has to login/register
messageInterval: 5
# How many second a player can login or register before being kicked? Set this to 0 to disable.
timeout: 30
# Teleport the player to the world's Spawn after login
teleportToSpawnAfterLogin: true
# Teleport provisionally not logged player to world's Spawn.
# After the login, if teleportToSpawnAfterLogin is set to false the player will be teleported to his last location.
teleportToSpawnBeforeLogin: true
# ForceSurvivalMode to player when join?
forceSurvivalMode: false
# Do we need to force the survival mode ONLY after /login process?
forceSurvivalOnlyAfterLogin: false
# Reset every time the player's inventory?
resetInventory: false
# If player join with CreativeMode and ForceSurvivalMode: true inventory will be wiped.
resetInventoryIfCreative: false
# Should we protect the player inventory before logging in?
protectInventoryBeforeLogIn: true
password:
# minimum Length of password
minPasswordLength: 5
# Regex sintax for allowed Chars in passwords.
allowedPasswordCharacters: '[\x21-\x7E]*'
# Enable double check of password when you register or change password.
# When it's true, registration require that kind of command:
# /register <password> <confirmPassword>
doublePasswordCheck: true
# Deny unsafe passwords for being used, put them on lowercase!
unsafePasswords:
- '123456'
- '12345'
- 'qwerty'
- 'password'
protection:
# Enable some server protection systems (country based login, antibot)
enableProtection: false
# Countries allowed to join the server and register, see http://dev.bukkit.org/bukkit-plugins/authme-reloaded/pages/countries-codes/ for countries' codes
countries:
- US
- GB
# Countries blacklisted automatically (It works also with enableProtection set to false)
countriesBlacklist:
- A1
antiBot:
# Do you like to enable the automatic antibot system?
enableAntiBot: false
# Do you want to show AntiBot messages to every player or only to person with the "authme.antibotmessages" permission node?
broadcastMessages: true
# Max number of player allowed to join in 5 secs before the AntiBot activates
antiBotSensibility: 5
# Duration in minutes of the antibot protection
antiBotDuration: 10
# These features are only available on the VeryGames Server Provider
veryGames:
enableIpCheck: false

View File

@ -1,21 +0,0 @@
_________________________________________________________________________________
> <
> WARNING: Conversions can't be undone! DO ALWAYS A BACKUP BEFORE!!! <
> <
_________________________________________________________________________________
> AuthMe Reloaded converters description file <
_________________________________________________________________________________
Built-in converters (Into the Plugin's core module):
Old File Backend ("file") >>> SQLite ("/authme converter flatfiletosqlite") THIS CONVERTER WILL BE REMOVED FROM THE CORE IN FUTURE VERSIONS!!!
Converters in the Converters module (Into the Converters module avariable at: NEED LINK):
SQlite >>> MySql ("/authme converter sqlitetomysql")
MySql >>> Redis ("/authme converter mysqltoredis")
Rakamak >>> SQlite ("/authme converter rakamaktosqlite [databasefile.rak] [(ip-mode) (ipdatabasefle.rak)]")
CrazyLogin >>> SQlite ("/authme converter crazylogintosqlite [databasefile.db]")
xAuth (Min version 2.6) >>> SQlite ("/authme converter xauthtosqlite") NOTE: xAUTH MUST BE INSTALLED AND CONFIGURED IN THE SERVER, it works with all the xAuth backends!
Discontinued Converters (use an old AuthMe version like 3.4):
RoyalAuth >>> SQlite
vAuth >>> SQlite

102
pom.xml
View File

@ -160,11 +160,12 @@
<url>http://repo.luricos.de/content/repositories/releases</url>
</repository>
<!-- Xephi Repo (ChestShop) -->
<!-- Xephi Repo
<repository>
<id>xephi-repo</id>
<url>http://ci.xephi.fr/plugin/repository/everything/</url>
</repository>
-->
<!-- Metrics Snapshots Repo -->
<repository>
@ -530,104 +531,5 @@
<optional>true</optional>
</dependency>
<!-- ChestShop, on our maven repo http://dev.bukkit.org/bukkit-plugins/chestshop/ -->
<dependency>
<groupId>com.acrobot.chestshop</groupId>
<artifactId>chestshop</artifactId>
<version>3.8.12</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
</exclusion>
<exclusion>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
</exclusion>
<exclusion>
<artifactId>Vault</artifactId>
<groupId>net.milkbowl.vault</groupId>
</exclusion>
<exclusion>
<artifactId>odditem</artifactId>
<groupId>info.somethingodd</groupId>
</exclusion>
<exclusion>
<artifactId>scrollingmenusign</artifactId>
<groupId>me.desht</groupId>
</exclusion>
<exclusion>
<artifactId>truezip</artifactId>
<groupId>de.schlichtherle</groupId>
</exclusion>
<exclusion>
<artifactId>residence</artifactId>
<groupId>net.t00thpick1</groupId>
</exclusion>
<exclusion>
<artifactId>Heroes</artifactId>
<groupId>com.herocraftonline.heroes</groupId>
</exclusion>
<exclusion>
<artifactId>HeroChat</artifactId>
<groupId>com.dthielke.herochat</groupId>
</exclusion>
<exclusion>
<artifactId>worldguard</artifactId>
<groupId>com.sk89q</groupId>
</exclusion>
<exclusion>
<artifactId>worldedit</artifactId>
<groupId>com.sk89q</groupId>
</exclusion>
<exclusion>
<artifactId>lwc</artifactId>
<groupId>com.griefcraft.lwc</groupId>
</exclusion>
<exclusion>
<artifactId>js</artifactId>
<groupId>rhino</groupId>
</exclusion>
<exclusion>
<artifactId>jchronic</artifactId>
<groupId>com.sk89q</groupId>
</exclusion>
<exclusion>
<artifactId>deadbolt</artifactId>
<groupId>com.daemitus.deadbolt</groupId>
</exclusion>
<exclusion>
<artifactId>bukkit-classloader-check</artifactId>
<groupId>com.sk89q.spigot</groupId>
</exclusion>
<exclusion>
<artifactId>jsr305</artifactId>
<groupId>com.google.code.findbugs</groupId>
</exclusion>
<exclusion>
<artifactId>opencsv</artifactId>
<groupId>net.sf.opencsv</groupId>
</exclusion>
<exclusion>
<artifactId>simplechestlock</artifactId>
<groupId>com.webkonsept.bukkit.simplechestlock</groupId>
</exclusion>
<exclusion>
<artifactId>commandbook</artifactId>
<groupId>com.sk89q</groupId>
</exclusion>
<exclusion>
<artifactId>lockette</artifactId>
<groupId>org.yi.acru.bukkit.lockette</groupId>
</exclusion>
<exclusion>
<artifactId>log4j-core</artifactId>
<groupId>org.apache.logging.log4j</groupId>
</exclusion>
</exclusions>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@ -65,7 +65,6 @@ public class AuthMe extends JavaPlugin {
private JsonCache playerBackup;
public OtherAccounts otherAccounts;
public Location essentialsSpawn;
public boolean legacyChestShop = false;
public boolean antibotMod = false;
public boolean delayedAntiBot = true;
@ -192,9 +191,6 @@ public class AuthMe extends JavaPlugin {
// Check Multiverse
checkMultiverse();
// Check ChestShop
checkChestShop();
// Check Essentials
checkEssentials();
@ -242,12 +238,6 @@ public class AuthMe extends JavaPlugin {
Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new BungeeCordMessage(this));
}
// Legacy chestshop hook
if (legacyChestShop) {
pm.registerEvents(new AuthMeChestShopListener(this), this);
ConsoleLogger.info("Hooked successfully with ChestShop!");
}
// Reload support hook
if (Settings.reloadSupport) {
if (database != null) {
@ -425,34 +415,6 @@ public class AuthMe extends JavaPlugin {
}
}
// Check the version of the ChestShop plugin
public void checkChestShop() {
if (Settings.legacyChestShop && server.getPluginManager().isPluginEnabled("ChestShop")) {
String rawver = com.Acrobot.ChestShop.ChestShop.getVersion();
double version;
try {
version = Double.valueOf(rawver.split(" ")[0]);
} catch (NumberFormatException nfe) {
try {
version = Double.valueOf(rawver.split("t")[0]);
} catch (NumberFormatException nfee) {
legacyChestShop = false;
return;
}
}
if (version >= 3.813) {
return;
}
if (version < 3.50) {
ConsoleLogger.showError("Please Update your ChestShop version! Bugs may occur!");
return;
}
legacyChestShop = true;
} else {
legacyChestShop = false;
}
}
// Get the Multiverse plugin
public void checkMultiverse() {
if (Settings.multiverse && server.getPluginManager().isPluginEnabled("Multiverse-Core")) {
@ -506,10 +468,16 @@ public class AuthMe extends JavaPlugin {
}
}
// Check the presence of the ProtocolLib plugin
public void checkProtocolLib() {
if (server.getPluginManager().isPluginEnabled("ProtocolLib")) {
inventoryProtector = new AuthMeInventoryListener(this);
ProtocolLibrary.getProtocolManager().addPacketListener(inventoryProtector);
if (Settings.protectInventoryBeforeLogInEnabled) {
if (server.getPluginManager().isPluginEnabled("ProtocolLib")) {
inventoryProtector = new AuthMeInventoryListener(this);
ProtocolLibrary.getProtocolManager().addPacketListener(inventoryProtector);
} else {
ConsoleLogger.showError("WARNING!!! The protectInventory feature requires ProtocolLib! Disabling it...");
Settings.protectInventoryBeforeLogInEnabled = false;
}
}
}

View File

@ -1,25 +0,0 @@
package fr.xephi.authme.listener;
import com.Acrobot.ChestShop.Events.PreTransactionEvent;
import com.Acrobot.ChestShop.Events.PreTransactionEvent.TransactionOutcome;
import fr.xephi.authme.AuthMe;
import fr.xephi.authme.Utils;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
public class AuthMeChestShopListener implements Listener {
public AuthMe plugin;
public AuthMeChestShopListener(AuthMe plugin) {
this.plugin = plugin;
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onPreTransaction(PreTransactionEvent event) {
if (Utils.checkAuth(event.getClient()))
return;
event.setCancelled(TransactionOutcome.OTHER);
}
}

View File

@ -56,10 +56,6 @@ public class AuthMeServerListener implements Listener {
ConsoleLogger.info("Multiverse-Core has been disabled, unhook!");
return;
}
if (pluginName.equalsIgnoreCase("ChestShop")) {
plugin.legacyChestShop = false;
ConsoleLogger.info("ChestShop has been disabled, unhook!");
}
if (pluginName.equalsIgnoreCase("CombatTagPlus")) {
plugin.combatTagPlus = null;
ConsoleLogger.info("CombatTagPlus has been disabled, unhook!");
@ -81,8 +77,6 @@ public class AuthMeServerListener implements Listener {
plugin.checkEssentials();
if (pluginName.equalsIgnoreCase("Multiverse-Core"))
plugin.checkMultiverse();
if (pluginName.equalsIgnoreCase("ChestShop"))
plugin.checkChestShop();
if (pluginName.equalsIgnoreCase("CombatTagPlus"))
plugin.checkCombatTagPlus();
if (pluginName.equalsIgnoreCase("Vault"))

View File

@ -60,7 +60,7 @@ public final class Settings extends YamlConfiguration {
protectInventoryBeforeLogInEnabled, isBackupActivated,
isBackupOnStart, isBackupOnStop, isStopEnabled, reloadSupport,
rakamakUseIp, noConsoleSpam, removePassword, displayOtherAccounts,
useCaptcha, emailRegistration, multiverse, legacyChestShop, bungee,
useCaptcha, emailRegistration, multiverse, bungee,
banUnsafeIp, doubleEmailCheck, sessionExpireOnIpChange,
disableSocialSpy, forceOnlyAfterLogin, useEssentialsMotd, usePurge,
purgePlayerDat, purgeEssentialsFile, supportOldPassword,
@ -222,7 +222,6 @@ public final class Settings extends YamlConfiguration {
saltLength = configFile.getInt("settings.security.doubleMD5SaltLength", 8);
getmaxRegPerEmail = configFile.getInt("Email.maxRegPerEmail", 1);
multiverse = configFile.getBoolean("Hooks.multiverse", true);
legacyChestShop = configFile.getBoolean("Hooks.legacyChestshop", false);
bungee = configFile.getBoolean("Hooks.bungeecord", false);
getForcedWorlds = configFile.getStringList("settings.restrictions.ForceSpawnOnTheseWorlds");
banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
@ -462,12 +461,13 @@ public final class Settings extends YamlConfiguration {
changes = true;
}
if (contains("Hooks.chestshop")) {
if (getBoolean("Hooks.chestshop")) {
set("Hooks.legacyChestshop", true);
}
set("Hooks.chestshop", null);
changes = true;
}
if (contains("Hooks.legacyChestshop")) {
set("Hooks.legacyChestshop", null);
changes = true;
}
if (!contains("Email.generateImage")) {
set("Email.generateImage", true);
changes = true;

View File

@ -353,8 +353,6 @@ Email:
Hooks:
# Do we need to hook with multiverse for spawn checking?
multiverse: true
# Do we need to hook with legacy ChestShop < 3.8.13 for prevent buy or selling ?
legacyChestshop: false
# Do we need to hook with BungeeCord for get the real Player ip ?
bungeecord: false
# Do we need to disable Essentials SocialSpy on join ?