Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into configme-integration

This commit is contained in:
ljacqu 2016-09-03 10:31:05 +02:00
commit b8153c2578
14 changed files with 88 additions and 126 deletions

View File

@ -1,4 +1,4 @@
####Before reporting an issue make sure you are running the latest build of the plugin!
####Before reporting an issue make sure you are running the latest build of the plugin and checked for duplicate issues!
### What behaviour is observed:
What happened?

View File

@ -12,6 +12,7 @@ import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.DatabaseSettings;
import fr.xephi.authme.settings.properties.HooksSettings;
import fr.xephi.authme.settings.properties.SecuritySettings;
import fr.xephi.authme.util.RuntimeUtils;
import fr.xephi.authme.util.StringUtils;
import java.sql.Blob;
@ -100,6 +101,9 @@ public class MySQL implements DataSource {
ds = new HikariDataSource();
ds.setPoolName("AuthMeMYSQLPool");
// Pool size
ds.setMaximumPoolSize(RuntimeUtils.getCoreCount());
// Database URL
ds.setJdbcUrl("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database);
@ -118,7 +122,7 @@ public class MySQL implements DataSource {
// Caching
ds.addDataSourceProperty("cachePrepStmts", "true");
ds.addDataSourceProperty("prepStmtCacheSize", "250");
ds.addDataSourceProperty("prepStmtCacheSize", "275");
ds.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
ConsoleLogger.info("Connection arguments loaded, Hikari ConnectionPool ready!");

View File

@ -198,13 +198,13 @@ public class PermissionsManager implements Reloadable {
return true;
}
// Return if the player is an Op if sender is console or no permission system in use
// Return default if sender is not a player or no permission system is in use
if (!(sender instanceof Player) || !isEnabled()) {
return permissionNode.getDefaultPermission().evaluate(sender);
}
Player player = (Player) sender;
return handler.hasPermission(player, permissionNode);
return player.hasPermission(permissionNode.getNode());
}
/**

View File

@ -22,11 +22,6 @@ public class BPermissionsHandler implements PermissionHandler {
return true;
}
@Override
public boolean hasPermission(Player player, PermissionNode node) {
return ApiLayer.hasPermission(player.getWorld().getName(), CalculableType.USER, player.getName(), node.getNode());
}
@Override
public boolean hasPermissionOffline(String name, PermissionNode node) {
return ApiLayer.hasPermission(null, CalculableType.USER, name, node.getNode());

View File

@ -29,12 +29,6 @@ public class GroupManagerHandler implements PermissionHandler {
return true;
}
@Override
public boolean hasPermission(Player player, PermissionNode node) {
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player);
return handler != null && handler.has(player, node.getNode());
}
@Override
public boolean hasPermissionOffline(String name, PermissionNode node) {
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(name);

View File

@ -28,16 +28,6 @@ public interface PermissionHandler {
*/
boolean hasGroupSupport();
/**
* Check if a player has permission.
*
* @param player The player.
* @param node The permission node.
*
* @return True if the player has permission.
*/
boolean hasPermission(Player player, PermissionNode node);
/**
* Check if a player has permission by their name.
* Used to check an offline player's permission.

View File

@ -20,11 +20,6 @@ public class PermissionsBukkitHandler implements PermissionHandler {
return true;
}
@Override
public boolean hasPermission(Player player, PermissionNode node) {
return player.hasPermission(node.getNode());
}
@Override
public boolean hasPermissionOffline(String name, PermissionNode node) {
return false;

View File

@ -37,12 +37,6 @@ public class PermissionsExHandler implements PermissionHandler {
return true;
}
@Override
public boolean hasPermission(Player player, PermissionNode node) {
PermissionUser user = permissionManager.getUser(player);
return user.has(node.getNode());
}
@Override
public boolean hasPermissionOffline(String name, PermissionNode node) {
PermissionUser user = permissionManager.getUser(name);

View File

@ -44,11 +44,6 @@ public class VaultHandler implements PermissionHandler {
return vaultProvider.hasGroupSupport();
}
@Override
public boolean hasPermission(Player player, PermissionNode node) {
return vaultProvider.has(player, node.getNode());
}
@Override
public boolean hasPermissionOffline(String name, PermissionNode node) {
return vaultProvider.has("", name, node.getNode());

View File

@ -33,15 +33,6 @@ public class ZPermissionsHandler implements PermissionHandler {
return true;
}
@Override
public boolean hasPermission(Player player, PermissionNode node) {
Map<String, Boolean> perms = zPermissionsService.getPlayerPermissions(player.getWorld().getName(), null, player.getName());
if (perms.containsKey(node.getNode()))
return perms.get(node.getNode());
else
return node.getDefaultPermission().evaluate(player);
}
@Override
public boolean hasPermissionOffline(String name, PermissionNode node) {
Map<String, Boolean> perms = zPermissionsService.getPlayerPermissions(null, null, name);

View File

@ -0,0 +1,7 @@
package fr.xephi.authme.util;
public class RuntimeUtils {
public static int getCoreCount() {
return Runtime.getRuntime().availableProcessors();
}
}

View File

@ -1,74 +1,72 @@
unknown_user: '&fКористувача немає в базі даних'
unsafe_spawn: '&fМісце вашого виходу було небезпечне тому ми телепортували вас на спавн'
not_logged_in: '&cВи ще не ввійшли!'
reg_voluntarily: '&eЩоб зарєєструватися введіть команду &d"/reg Пароль Повторароля"'
usage_log: '&cВикористовуйте: &a/login Пароль &cабо &a/l Пароль'
wrong_pwd: '&cНевірний пароль'
unregistered: '&cВи успішно видалили свій акаунт!'
reg_disabled: '&cРеєстрація виключена'
valid_session: '&cСесія відкрита'
denied_command: '&cДля використання цієї команди потрібна авторизація.'
same_ip_online: 'Перевищено ліміт на авторизацію з одного IP.'
denied_chat: '&cДля доступу до чату потрібна авторизація.'
kick_antibot: 'На сервер здійснено DDoS атаку. Будь ласка, зачекайте декілька хвилин доки активність спаде.'
unknown_user: '&cТакого користувача немає в базі даних.'
unsafe_spawn: '&cВаше останнє місцезнаходження не є безпечним. Вас було переміщено на точку спавна.'
not_logged_in: '&cВи не авторизовані!'
reg_voluntarily: 'Можете зареєструватись за допомогою команди "/register <пароль> <повторПароля>"'
usage_log: '&cСинтаксис: /login <пароль>'
wrong_pwd: '&cНевірний пароль!'
unregistered: '&cДані про реєстрацію успішно видалено'
reg_disabled: '&cВнутрішньоігрову реєстрацію зараз вимкнено.'
valid_session: '&2Сесію відновлено.'
login: '&2Успішна авторизація!'
vb_nonActiv: '&fВаш акаунт не активований. Перевірте свою електронну адресу!'
user_regged: '&cТакий користувач вже зареєстрований'
usage_reg: '&cВикористовуйте: /reg Пароль Повторароля'
# TODO max_reg: Missing tags %reg_count, %reg_names, %max_acc
max_reg: '&fВи перевищили максимальне число реєстрацій на ваш IP'
no_perm: '&cУ Вас недостатньо прав'
error: '&fЩось пішло не так; Будь ласка зв`яжіться з адміністратором'
login_msg: '&cДля авторизації введіть "/login Пароль"'
reg_msg: '&cДля реєстрації введіть "/reg Пароль Повторароля"'
password_error_nick: '&fВи не можете використати ваш Нікнейм у якості паролю'
password_error_unsafe: '&fВи не можете використувати ненадійний пароль'
reg_email_msg: '&cДля реєстрації введіть "/reg Email Email"'
usage_unreg: '&cВикористовуйте: /unregister Пароль'
pwd_changed: '&cПароль змінено!'
user_unknown: '&cТакий користувач не зарєєстрований'
password_error: '&fПаролі не співпадають'
invalid_session: '&fСесія некоректна. Будь ласка зачекайте коли вона закінчиться'
reg_only: '&Вхід доступний лише зареєстрованим користувачам. Зареєструватися можна за адресою &9%nl%http://сайт_серверу.com&r'
logged_in: '&2Ви уже ввійшли!'
logout: '&cВи успішно вийшли'
same_nick: '&fГравець з вашим нікнеймом вже грає на сервері'
registered: '&cВи успішно зареєстровані!'
pass_len: '&fВаш пароль занадто довгий, або занадто короткий'
reload: '&fКонфiгурацiя i база даних успiшно перезавнтажені.'
timeout: '&fЧас для входу вийшов'
usage_changepassword: '&fВикористовуйте: /changepassword СтарийПароль НовийПароль'
name_len: '&cВаш нікнейм занадто довгий, або занадто короткий'
regex: '&cВаш нікнейм містить заборонені символи. Доступні символи: REG_EX'
add_email: '&cБудь ласка додайте свою електронну скриньку: /email add ВашEmail ВашEmail'
recovery_email: '&cЗабули пароль? Введіть /email recovery ВашПароль'
usage_captcha: '&cБудь ласка введіть капчу: /captcha <theCaptcha>'
wrong_captcha: '&cНевірне значення капчи: /captcha THE_CAPTCHA'
valid_captcha: '&cКапча введена вірно!'
kick_forvip: '&cVIP зайшов на переповнений сервер!'
kick_fullserver: '&cНажаль, сервер переповнений!'
usage_email_add: '&fВикористовуйте: /email add ВашEmail ВашEmail'
usage_email_change: '&fВикористовуйте: /email change СтарийEmail НовийEmail'
usage_email_recovery: '&fВикористовуйте: /email recovery Email'
new_email_invalid: '[AuthMe] Новий Email недійсний!'
old_email_invalid: '[AuthMe] Старий Email недійсний!'
email_invalid: '[AuthMe] Невірний Email'
email_added: '[AuthMe] &2Email додано!'
email_confirm: '[AuthMe] Підтвердіть ваш Email!'
email_changed: '[AuthMe] &2Email змінено!'
email_send: '[AuthMe] Лист для відновлення надіслано на ваш Email!'
country_banned: 'Сервер не доступний для вашої країни | Your country is banned from this server'
antibot_auto_enabled: '[AuthMe] AntiBotMod автоматично увімкнений (забагато одначасних з`єднань)!'
# TODO antibot_auto_disabled: Missing tag %m
antibot_auto_disabled: '[AuthMe] AntiBotMod автоматично вимкнувся, сподіваємось атака зупинена'
# TODO email_already_used: '&4The email address is already being used'
# TODO kick_antibot: 'AntiBot protection mode is enabled! You have to wait some minutes before joining the server.'
# TODO invalid_name_case: 'You should join using username %valid, not %invalid.'
# TODO accounts_owned_other: 'The player %name has %count accounts:'
# TODO kicked_admin_registered: 'An admin just registered you; please log in again'
# TODO tempban_max_logins: '&cYou have been temporarily banned for failing to log in too many times.'
# TODO password_error_chars: '&4Your password contains illegal characters. Allowed chars: REG_EX'
# TODO incomplete_email_settings: 'Error: not all required settings are set for sending emails. Please contact an admin.'
# TODO denied_chat: '&cIn order to chat you must be authenticated!'
# TODO denied_command: '&cIn order to use this command you must be authenticated!'
# TODO same_ip_online: 'A player with the same IP is already in game!'
# TODO email_exists: '&cA recovery email was already sent! You can discard it and send a new one using the command below:'
# TODO two_factor_create: '&2Your secret code is %code. You can scan it from here %url'
# TODO accounts_owned_self: 'You own %count accounts:'
# TODO not_owner_error: 'You are not the owner of this account. Please choose another name!'
vb_nonActiv: '&cВаш акаунт ще не активовано. Будь ласка, провірте свою електронну пошту!'
user_regged: '&cТакий нікнейм вже зареєстровано.'
usage_reg: '&cСинтаксис: /register <пароль> <повторПароля>'
max_reg: '&cВичерпано ліміт реєстрацій (%reg_count/%max_acc %reg_names) для вашого підключення!'
no_perm: '&4У вас недостатньо прав, щоб застосувати цю команду!'
error: '&4[AuthMe] Error. Будь ласка, повідомте адміністратора!'
login_msg: '&cДля авторизації, введіть команду "/login <пароль>"'
reg_msg: '&3Перш ніж почати гру, вам потрібно зареєструвати свій нікнейм!%nl%&3Для цього просто введіть команду "/register <пароль> <повторПароля>"'
reg_email_msg: 'Перш ніж почати гру, вам потрібно зареєструвати свій нікнейм, використавши свою діючу електронну пошту!%nl%&3Для цього просто введіть команду "/register <e-mail> <e-mail повторно>"'
usage_unreg: '&cСинтаксис: /unregister <пароль>'
pwd_changed: '&2Пароль успішно змінено!'
user_unknown: '&cЦей гравець не є зареєстрованим.'
password_error: '&cПаролі не співпадають!'
password_error_nick: '&cНе можна використовувати свій нікнейм у якості пароля! Будь ласка, виберіть щось інакше...'
password_error_unsafe: '&cЦей пароль надто простий! Будь ласка, придумайте інакший...'
password_error_chars: '&4Ваш пароль містить недопустимі символи. Підберіть інакший...%nl%&4(Reg-ex: REG_EX)'
invalid_session: '&cСесію було розірвано внаслідок зміни IP.'
reg_only: '&4Лише зареєстровані гравці можуть підключатись до сервера!%nl%&4Будь ласка, відвідайте http://example.com для реєстрації.'
logged_in: '&cВи вже авторизовані!'
logout: '&2Ви вийшли зі свого акаунта!'
same_nick: '&4Хтось з таким ніком зараз вже сидить на сервері!'
registered: '&2Реєстрація пройшла успішно!'
pass_len: '&cВаш пароль надто короткий або надто довгий! Спробуйте інакший...'
reload: '&2Конфігурації та базу даних було успішно перезавантажено!'
timeout: '&4Час для авторизації сплинув. Будь ласка, спробуйте ще раз!'
usage_changepassword: '&cСинтаксис: /changepassword <старийПароль> <новийПароль>'
name_len: '&4Ваш нікнейм надто короткий або надто довгий!'
regex: '&4Ваш нікнейм містить недопустимі символи! Reg-ex: REG_EX'
add_email: '&3Не забудьте прив’язати електронну пошту до свого акаунта, за допомогою команди "/email add <e-mail> <e-mail повторно>"'
recovery_email: 'Забули пароль? Можете скористатись командою &9/email recovery &f<&9ваш e-mail&f>'
usage_captcha: '&3Для продовження доведеться ввести капчу — "/captcha <theCaptcha>"'
wrong_captcha: '&cНевірно введена капча! Спробуйте ще раз — "/captcha THE_CAPTCHA"'
valid_captcha: '&2Капчу прийнято.'
kick_forvip: '&3Вас кікнуто, внаслідок того, що VIP гравець зайшов на сервер коли небуло вільних місць.'
kick_fullserver: '&4Сервер переповнено! Доведеться зачекати доки хтось вийде.'
usage_email_add: '&cСинтаксис: /email add <e-mail> <e-mail повторно>'
usage_email_change: '&cСинтаксис: /email change <старий e-mail> <новий e-mail>'
usage_email_recovery: '&cСинтаксис: /email recovery <e-mail>'
new_email_invalid: '&cНекоректний формат.'
old_email_invalid: '&cСтарий e-mail, що прив’язано до вашого акаунта, відрізняється від введеного вами.'
email_invalid: '&cФормат вказаного e-mailу є некоректним, або його домен внесено до блеклисту.'
email_added: '&2Електронну пошту успішно прив’язано до вашого акаунта.'
email_confirm: '&cАдреси не співпадають.'
email_changed: '&2E-mail успішно змінено.'
email_send: '&2Лист для відновлення доступу надіслано. Будь ласка, провірте свою пошту!'
email_exists: '&cЛист для відновлення доступу вже було надіслано! Ви можете деактуалізувати його, використавши наступну команду:'
country_banned: '&4Your country is banned from this server!'
antibot_auto_enabled: '&4[AntiBotService] Ненормативне число з’єднань. Активовано антибот систему!'
antibot_auto_disabled: '&2[AntiBotService] Антибот систему деактивовано після %m хв. активності.'
email_already_used: '&4До цієї електронної пошти прив’язано забагато акаунтів!'
two_factor_create: '&2Ваш секретний код — %code %nl%&2Можете зкопіювати його за цим посиланням — %url'
not_owner_error: 'Цей акаунт вам не належить! Будь ласка, оберіть інакший нікнейм!'
invalid_name_case: 'Регістр у вашому нікнеймі відрізняється від регістру при реєстрації.%nl%Поточний регістр: &c%invalid&f. Валідний регістр: &a%valid&f.%nl%Будь ласка, перезайдіть з валідним регістром!'
tempban_max_logins: '&cВаш IP тимчасово заблоковано, із‒за багатократного введення хибного пароля.'
accounts_owned_self: 'Кількість ваших твінк‒акаунтів: %count:'
accounts_owned_other: 'Кількість твінк‒акаунтів гравця %name: %count'
kicked_admin_registered: 'Адміністратор вас зареєстрував; Будь ласка, авторизуйтесь знову!'
incomplete_email_settings: '&4[AuthMe] Error: Не всі необхідні налаштування є встановленими, щоб надсилати електронну пошту. Будь ласка, повідомте адміністратора!'

View File

@ -153,7 +153,6 @@ public class CaptchaManagerTest {
}
private static void assertHasCount(CaptchaManager manager, String player, Integer count) {
@SuppressWarnings("unchecked")
Map<String, Integer> playerCounts = ReflectionTestUtils
.getFieldValue(CaptchaManager.class, manager, "playerCounts");
assertThat(playerCounts.get(player.toLowerCase()), equalTo(count));

View File

@ -244,9 +244,9 @@ public class TempbanManagerTest {
}
private static void assertHasNoEntries(TempbanManager manager, String address) {
Map<String, Map<?, ?>> playerCounts = ReflectionTestUtils
Map<String, Map<String, TimedCounter>> playerCounts = ReflectionTestUtils
.getFieldValue(TempbanManager.class, manager, "ipLoginFailureCounts");
Map map = playerCounts.get(address);
Map<String, TimedCounter> map = playerCounts.get(address);
assertThat(map == null || map.isEmpty(), equalTo(true));
}