mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-09-07 12:48:03 +02:00
Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into configme-integration
This commit is contained in:
commit
b8153c2578
2
.github/ISSUE_TEMPLATE.MD
vendored
2
.github/ISSUE_TEMPLATE.MD
vendored
@ -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?
|
||||
|
@ -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!");
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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());
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
@ -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);
|
||||
|
7
src/main/java/fr/xephi/authme/util/RuntimeUtils.java
Normal file
7
src/main/java/fr/xephi/authme/util/RuntimeUtils.java
Normal file
@ -0,0 +1,7 @@
|
||||
package fr.xephi.authme.util;
|
||||
|
||||
public class RuntimeUtils {
|
||||
public static int getCoreCount() {
|
||||
return Runtime.getRuntime().availableProcessors();
|
||||
}
|
||||
}
|
@ -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: Не всі необхідні налаштування є встановленими, щоб надсилати електронну пошту. Будь ласка, повідомте адміністратора!'
|
@ -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));
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user