1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-25 20:16:13 +01:00

Fix for issue with mysql data base

expgainevent fix
This commit is contained in:
Zrips 2016-06-11 09:03:01 +03:00
parent 6fd4cc90cf
commit 5bc42e209f
7 changed files with 304 additions and 98 deletions

View File

@ -915,7 +915,7 @@ public class Jobs {
// If event is canceled, don't do anything
if (JobsExpGainEvent.isCancelled())
continue;
if (prog.addExperience(expAmount))
if (prog.addExperience(JobsExpGainEvent.getExp()))
Jobs.getPlayerManager().performLevelUp(jPlayer, prog.getJob(), oldLevel);
}
}

View File

@ -118,8 +118,7 @@ public class PlayerManager {
JobsPlayer jPlayer = playersCache.get(player.getName().toLowerCase());
if (jPlayer == null) {
jPlayer = JobsPlayer.loadFromDao(Jobs.getJobsDAO(), player);
if (player.hasPlayedBefore())
JobsPlayer.loadLogFromDao(jPlayer);
JobsPlayer.loadLogFromDao(jPlayer);
playersCache.put(player.getName().toLowerCase(), jPlayer);
}
@ -559,7 +558,7 @@ public class PlayerManager {
if (Perm.hasPermission(player, "jobs.max.*"))
return true;
int totalJobs = Jobs.getJobs().size() + 5;
int totalJobs = Jobs.getJobs().size() + 1;
short count = (short) Jobs.getGCManager().getMaxJobs();
for (short ctr = 0; ctr < totalJobs; ctr++) {

View File

@ -32,6 +32,10 @@ public final class JobsExpGainEvent extends Event implements Cancellable {
return this.exp;
}
public void setExp(double exp) {
this.exp = exp;
}
public boolean isCancelled() {
return cancelled;
}

View File

@ -185,11 +185,18 @@ public abstract class JobsDAO {
prest.setString(1, uuid.toString());
prest.setString(2, playerName);
prest.executeUpdate();
ResultSet keys = prest.getGeneratedKeys();
if (keys.next()) {
int id = keys.getInt(1);
Jobs.getPlayerManager().getPlayerMap().put(uuid.toString(), new PlayerInfo(playerName, id));
}
prest.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
PreparedStatement prest = conn.prepareStatement("SELECT `id` FROM `" + this.prefix + "users` WHERE `player_uuid` = ?;");
prest.setString(1, uuid.toString());
ResultSet res = prest.executeQuery();
res.next();
int id = res.getInt("id");
Jobs.getPlayerManager().getPlayerMap().put(uuid.toString(), new PlayerInfo(playerName, id));
res.close();
prest.close();
} catch (SQLException e) {
e.printStackTrace();

View File

@ -277,9 +277,9 @@ public class JobsDAOSQLite extends JobsDAO {
}
if (convertJobs) {
Bukkit.getConsoleSender().sendMessage("convert jobs table from byte");
Jobs.getPluginLogger().info("Converting byte uuids to string. This could take a long time!!!");
try {
executeSQL("CREATE TABLE `" + getPrefix()
@ -529,7 +529,7 @@ public class JobsDAOSQLite extends JobsDAO {
if (rows != 0)
return;
HashMap<String, String> tempMap = new HashMap<String, String>();
PreparedStatement prestJobs = null;
try {
@ -785,13 +785,13 @@ public class JobsDAOSQLite extends JobsDAO {
try {
executeSQL("ALTER TABLE `" + getPrefix() + "log_temp` RENAME TO `" + getPrefix() + "log`;");
// Create new points table
try {
executeSQL("CREATE TABLE `" + getPrefix()
+ "points` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `userid` int, `totalpoints` double, `currentpoints` double);");
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
// Create new points table
try {
executeSQL("CREATE TABLE `" + getPrefix()
+ "points` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `userid` int, `totalpoints` double, `currentpoints` double);");
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -1,61 +1,156 @@
economy:
error:
nomoney: Простите, не осталось денег в банке!
nomoney: Простите, но не осталось денег в банке!
limitedItem:
error:
levelup: '&cВам нужно повысить свой уровень в работе под именем [jobname], чтобы использовать эту вещь!'
general:
info:
toplineseparator: '&7*********************** &6%playername% &7***********************'
separator: '&7*******************************************************'
admin:
error: '&cОшибка в этой команде.'
success: '&eВаша команда была выполнена успешно.'
error:
noHelpPage: '&cНет страницы справочника с этим номером!'
notNumber: '&eПожалуйста, используйте целые числа!'
job: '&cРаботы, что вы выбрали, не существует!'
permission: '&cУ вас нет прав на совершение этого дествия!'
noinfo: '&cИнформация не найдена!'
noinfoByPlayer: '&cИнформация не найдена связанная с игроком [%playername%]!'
ingame: '&cВы можете использовать эту команду только в игре!'
fromconsole: '&cВы можете использовать эту команду только в консоле!'
worldisdisabled: '&cВы не можете использовать эту команду в этом мире!'
command:
boost:
moneyboost:
help:
info: Ускоряет получение Опыта/Денег для всех игроков
info: Ускоряет получение денег для всех игроков
args: '[jobname] [rate]'
output:
allreset: Все ускорения выключены
jobsboostreset: Ускорение для %jobname% выключено
nothingtoreset: Нечего сбрасывать
boostalladded: Ускорение в %boost% добавлено для всех работ!
boostadded: Ускорение в &e%boost% &aдобавлено для &e%jobname%!
infostats: '&c-----> &aУскорение в x%boost% включено&c <-------'
allreset: Ускорение получения денег отключено
jobsboostreset: Ускорение получения денег %jobname% было отключено
nothingtoreset: Нечего сбросить
boostalladded: Ускорение получения денег x%boost% было добавлено для всех работ!
boostadded: Ускорение получения денег x&e%boost% &aдобавлено к &e%jobname%!
infostats: '&c-----> &aУскорение получения денег x%boost% включено&c <-------'
pointboost:
help:
info: Ускоряет получение очков для всех игроков
args: '[jobname] [rate]'
output:
allreset: Ускорение получения очков отключено
jobsboostreset: Ускорение получения очков %jobname% было отключено
nothingtoreset: Нечего сбросить
boostalladded: Ускорение получения очков x%boost% было добавлено для всех работ!
boostadded: Ускорение получения очков x&e%boost% &aдобавлено к &e%jobname%!
infostats: '&c-----> &aУскорение получения очков x%boost% включено&c <-------'
expboost:
help:
info: Ускоряет получение опыта для всех игроков
args: '[jobname] [rate]'
output:
allreset: Ускорение получения опыта отключено
jobsboostreset: Ускорение получения опыта %jobname% было отключено
nothingtoreset: Нечего сбросить
boostalladded: Ускорение получения опыта %boost% было добавлено для всех работ!
boostadded: Ускорение получения опыта &e%boost% &aдобавлено к &e%jobname%!
infostats: '&c-----> &aУскорение получения опыта x%boost% включено&c <-------'
bonus:
help:
info: Показывает бонусы работ.
args: '[jobname]'
output:
topline: '&7**************** &2[money] &6[points] &e[exp] &7****************'
permission: ' &eНа основе привелегий: %money% %points% %exp%'
item: ' &eItem bonus: %money% %points% %exp%'
global: ' &eГлобальный: %money% %points% %exp%'
dynamic: ' &eDynamic payment bonus: %money% %points% %exp%'
area: ' &eНа основе местности: %money% %points% %exp%'
final: ' &eИтого: %money% %points% %exp%'
convert:
help:
info: Converts data base system from one system to another. if you currently running sqlite, this will convert to Mysql and vise versa.
info: Конвертирует данные из одного вида БД в другой. Если сейчас все работает под SQLite, то команда конвертирует все данные в MySQL или наоборот.
args: ''
limit:
help:
info: Показывает лимит оплаты для работы
info: Показывает лимит оплаты для работы.
args: ''
output:
lefttime: '&eОсталось времени до сброса лимита: &2%hour% &ehour &2%min% &emin &2%sec%
&esec'
moneylimit: '&eЛимит денег: &2%money%&e/&2%totalmoney%'
leftexptime: '&eОсталось времени до сброса XP лимита: &2%hour% &ehour &2%min% &emin
lefttime: '&eДо сброса лимита: &2%hour% &ehour &2%min% &emin
&2%sec% &esec'
moneylimit: '&eЛимит денег: &2%money%&e/&2%totalmoney%'
leftexptime: '&eДо сброса XP лимита: &2%hour% &ehour &2%min%
&emin &2%sec% &esec'
explimit: '&eЛимит опыта: &2%exp%&e/&2%totalexp%'
reachedlimit: '&4Вы достигли получаемый предел денег!'
reachedlimit2: '&eПроверить лимит командой &2/jobs limit'
reachedExplimit: '&4Вы достигли получаемый предел опыта!'
reachedExplimit2: '&eПроверить лимит командой &2/jobs limit'
notenabled: '&eЛимит денег не включён'
admin:
error: Ошибка в команде.
success: Команда выполнена.
error:
job: Данной работы не существует!
permission: Не прав на выполнение этой команды!
leftpointtime: '&eДо сброса лимита очков: &2%hour% &ehour &2%min%
&emin &2%sec% &esec'
pointlimit: '&eЛимит очков: &2%current%&e/&2%total%'
reachedlimit: '&4Вы достигли предела денег, которые можно получить!'
reachedlimit2: '&eВы можете проверить лимит командой &2/jobs limit'
reachedExplimit: '&4Вы достигли предела опыта, которые можно получить!'
reachedExplimit2: '&eВы можете проверить лимит командой &2/jobs limit'
reachedPointlimit: '&4Вы достигли предела очков, которые можно получить!'
reachedPointlimit2: '&eВы можете проверить лимит командой &2/jobs limit'
notenabled: '&eЛимит денег выключен'
help:
output:
info: Используйте /jobs [cmd] ? Для более точной информации.
usage: 'Использование: %usage%'
title: '&e-------&e ======= &6Работы &e======= &e-------'
page: '&e-----&e ====== Страница &6[1] &eиз &6[2] &e====== &e-----'
prev: '&e--- <<<<< &6Предыдущая страница &e|'
next: '&e|&6 Следующая страница &e>>>> ---'
points:
help:
info: Выводит кол-во очков у игрока.
args: '[playername]'
currentpoints: ' &eТекущий баланс очков: &6%currentpoints%'
totalpoints: ' &eОчков за все время: &6%totalpoints%'
editpoints:
help:
info: Позволяет редактировать очки игроков.
args: '[set/add/take] [playername] [amount]'
output:
set: '&eКоличество очков игрока &6%playername%&e приведены к &6%amount% ед.'
add: '&eИгрок &6%playername%&e получил дополнительные &6%amount% &eочков. Сейчас у него всего &6%total%'
take: '&eИгрок &6%playername%&e потерял &6%amount% &eочков. Сейчас у него всего &6%total%'
blockinfo:
help:
info: Показывает информацию о блоке, на который Вы смотрите.
args: ''
output:
name: ' &eИмя блока: &6%blockname%'
id: ' &eID блока: &6%blockid%'
data: ' &eДанные блока: &6%blockdata%'
usage: ' &eИспользование: &6%first% &eили &6%second%'
stats:
help:
info: Показывет Ваш уровень работы.
args: '[playername]'
error:
nojob: Сначало устройтесь на работы.
nojob: Сперва устройтесь работу.
output: 'Уровень%joblevel% %jobname% : %jobxp%/%jobmaxxp% опыта'
shop:
help:
info: Открывает специальный список работ.
args: ''
info:
title: '&e------- &8Список работ &e-------'
currentPoints: '&eКол-во очков, которые у вас: &6%currentpoints%'
price: '&eЦена: &6%price%'
reqJobs: '&eТребуемые работы:'
reqJobsList: ' &6%jobsname%&e: &e%level% lvl'
NoPermForItem: '&cУ вас нет прав на совершение этого дествия!'
NoPermToBuy: '&cУ вас нет прав на совершение этого дествия!'
NoJobReqForitem: '&cВы, &6%jobname&c, нам не подходите!'
NoPoints: '&cУ вас недостаточно очков'
Paid: '&eВы заплатили &6%amount% &e за эту вещь'
archive:
help:
info: Показывает все работы, сохраненные в архиве пользователем.
args: '[playername]'
error:
nojob: Нет сохранёный работ.
nojob: Нет сохранёных работ.
output: Уровень %joblevel% (%getbackjoblevel%) %jobname%
give:
help:
@ -66,62 +161,95 @@ command:
noitem: '&4Нет предмета с таким именем!'
info:
help:
title: '&2*** &eJobs&2 ***'
info: Показывает, насколько каждая работа выгодна и что надо делать.
title: '&2*** &eРаботы&2 ***'
info: Показывает информацию о работе.
penalty: '&eРабота &c[penalty]% &eв данный момент ограничена, потому что уже достаточно игроков на этой работе.'
bonus: '&eУ этой работы предусмотрен бонус &2[bonus]%&e, т.к недостаточно игроков на этой работе.'
args: '[jobname] [action]'
actions: '&eДопустимые действия: &f%actions%'
max: ' - &eмаксимальный уровень:&f '
material: '&7%material%'
levelRange: ' &a(&e%levelFrom% &a- &e%levelUntil% &aуровней)'
levelFrom: ' &a(от &e%levelFrom% &aуровня)'
levelUntil: ' &a(вплоть до &e%levelUntil% &aуровня)'
money: ' &2%money%$'
points: ' &6%points% очков'
exp: ' &e%exp%xp'
gui:
pickjob: '&eВыберите Вашу работу!'
jobinfo: '&eИнформация о[jobname]!'
actions: '&eДоступные действия:'
leftClick: '&eНажмите левую клавишу мыши, чтобы узнать подробнее'
rightClick: '&eНажмите правую клавишу мыши, чтобы устроиться на работу'
leftSlots: '&e"Левые слоты":&f '
working: '&2&nТекущая работа'
max: '&eМаксимальный уровень:&f '
back: '&e<--Вернуться'
output:
break:
info: Ломать
none: '%jobname% не получает денег за ломание блоков.'
info: Разрушение блоков
none: '%jobname% не получает денег за разрушение блоков.'
tntbreak:
info: TNT-подрыв
none: '%jobname% не получает денег за подрыв блоков с помощью TNT.'
place:
info: Ставить
none: '%jobname% не получает денег за placing blocks.'
info: Размещение блоков
none: '%jobname% не получает денег за размещение блоков.'
kill:
info: Убивать
none: '%jobname% не получает денег за killing monsters.'
info: Сражение с мобами
none: '%jobname% не получает денег за убийство мобов.'
mmkill:
info: MMKill
none: '%jobname% не получает денег за убийство вымышленных мобов.'
fish:
info: Ловить
info: Рыбная ловля
none: '%jobname% не получает денег за рыбалку.'
craft:
info: Крафтить
info: Крафт
none: '%jobname% не получает денег за крафт.'
smelt:
info: Плавить
none: '%jobname% не получает денег за пережаривание.'
info: Обработка в печи
none: '%jobname% не получает денег за обработку в печи.'
brew:
info: Варить
info: Зельеварение
none: '%jobname% не получает денег за зельеварение.'
eat:
info: Поглощение еды
none: '%jobname% не получает денег за поедание еды.'
dye:
info: Покраска
none: '%jobname% не получает денег за покраску блоков шерсти.'
enchant:
info: Чаровать
info: Зачарование
none: '%jobname% не получает денег за зачарование.'
repair:
info: Ченить
none: '%jobname% не получает денег за починку.'
info: Восстановление предметов
none: '%jobname% не получает денег за восстановление предметов.'
breed:
info: Размножать
none: '%jobname% не получает денег за размножение.'
info: Размножение млекопитающих
none: '%jobname% не получает денег за размножение млекопитающих.'
tame:
info: Приручать
info: Приручение животных
none: '%jobname% не получает денег за приручание.'
milk:
info: Доить
none: '%jobname% не получает денег за доение.'
info: Доение коров
none: '%jobname% не получает денег за доение коров.'
shear:
info: Стричь
none: '%jobname% не получаеть денег за стрижку овец.'
info: Стрижка овец
none: '%jobname% не получает денег за стрижку овец.'
explore:
info: Исследование
none: '%jobname% не получает денег за исследование.'
custom-kill:
info: Custom kill
info: Специальное ликвидация
none: '%jobname% не получает денег за убийство игрока.'
playerinfo:
help:
info: Показать, насколько каждая работа выгодная и за что.
info: Вывести информацию о игроке.
args: '[playername] [jobname] [action]'
join:
help:
info: Присоеденится к этой работе.
info: Устроиться работу.
args: '[jobname]'
error:
alreadyin: Ты уже устроен на работу %jobname%.
@ -141,12 +269,15 @@ command:
success: Вы уволились со всех работ.
browse:
help:
info: Доступные работы.
info: Вывести список доступных работ.
error:
nojobs: Нет доступных работ.
output:
header: 'Доступные работы:'
footer: Для информации введите /jobs info [JobName]
totalWorkers: ' &7Рабочих: &e[amount]'
penalty: ' &4Ограниченых: &c[amount]%'
bonus: ' &2Бонус: &a[amount]%'
fire:
help:
info: Уволить игрока с работы.
@ -154,7 +285,7 @@ command:
error:
nojob: Игрок не устроен на эту работу %jobname%.
output:
target: Вы были уволены из %jobname%.
target: Вы были уволены с работы %jobname%.
fireall:
help:
info: Уволить игрока со всех работ.
@ -170,7 +301,7 @@ command:
error:
alreadyin: Игрок уже устроен на %jobname%.
output:
target: Вы были устроены на %jobname%.
target: Вы были устроены на работу %jobname%.
top:
help:
info: Показывает топ игроков.
@ -180,45 +311,89 @@ command:
output:
topline: '&aТоп&e 10 &aигроков'
list: '&e%number%&a. &e%playername% &aУровень &e%level% &aс&e %exp% &aопыта'
prev: '&e<<<<< Предыдущая страница &2|'
next: '&2|&e Следующая страница >>>>'
show: '&2Показать с &e[from] &2вплоть до &e[until] &2список топ игроков'
gtop:
help:
info: Показывает топ 15 игроков по уровню на работе.
args: ''
error:
nojob: Невозможно найти какую-либо информацию.
output:
topline: '&aТоп&e 15 &aигроков по уровню на работе'
list: '&e%number%&a. &e%playername% &alvl &e%level% &aс&e %exp% &aопыта'
prev: '&e<<<<< Предыдущая страница &2|'
next: '&2|&e Следующая страница >>>>'
show: '&2Показать с &e[from] &2вплоть до &e[until] &2список топ игроков'
log:
help:
info: Показывает статистику.
args: '[playername]'
output:
topline: '&7************************* &6%playername% &7*************************'
list: '&7* &6%number%. &3%action%: &6%item% &eqty: %qty% &6денег: %money% &eопыт: %exp%'
bottomline: '&7***********************************************************'
prev: '&e<<<<< Предыдущая страница &2|'
next: '&2|&e Следующая страница >>>>'
nodata: '&cДанные не найдены'
glog:
help:
info: Показывает глобальную статистику.
args: ''
output:
topline: '&7*********************** &6Глобальная статистика &7***********************'
list: '&7* &6%number%. &3%username% &e%action%: &6%item% &eqty: %qty% &6деньги:%money% &eопыт: %exp%'
bottomline: '&7**************************************************************'
nodata: '&cДанные не найдены'
transfer:
help:
info: Перевести игрока со старой работы на новую.
info: Переводит игрока на другую работу.
args: '[playername] [oldjob] [newjob]'
output:
target: Вы были переведены из %oldjobname% на %newjobname%.
target: Вы были переведены на работу %newjobname%.
promote:
help:
info: Продвинуть игрока на X уровней.
info: Продвигает игрока на X уровней.
args: '[playername] [jobname] [levels]'
output:
target: Вы были продвинуты на %levelsgained% уровней в %jobname%.
demote:
help:
info: Понизить игрока на X уровней.
info: Понижает игрока на X уровней.
args: '[playername] [jobname] [levels]'
output:
target: Вы были понижены на %levelslost% уровней в %jobname%.
grantxp:
help:
info: Дать игроку опыта в работе.
info: Дает игроку опыта в работе.
args: '[playername] [jobname] [xp]'
output:
target: Вам дали %xpgained% опыта в %jobname%.
removexp:
help:
info: Убрать опыт работы у игрока.
info: Убрирает опыт работы у игрока.
args: '[playername] [jobname] [xp]'
output:
target: Вы потеряли %xplost% опыта в %jobname%.
signupdate:
help:
info: Manualy updates sign by its name
args: '[jobname]'
reload:
help:
info: Reload configurations.
info: Перезагружает настройки плагина.
toggle:
help:
info: Включить вывод платижей в ActionBar.
info: Включить вывод платежей в ActionBar.
args: '[actionbar/bossbar]'
output:
turnedoff: '&4Данная функция выключена!'
paid: '&aВы заплатили за: &2[amount]'
paid:
main: '&aВы получили:'
money: '&e[amount] $'
exp: '&7[exp] опыта'
points: '&6[points] очков'
'on': '&aВключено: &aON'
'off': '&aВыключено: &4OFF'
message:
@ -226,27 +401,48 @@ message:
broadcast: '%playername% повысился в %titlename% %jobname%.'
nobroadcast: Поздравляем, вы были повышены в %titlename% %jobname%.
levelup:
broadcast: '%playername% имеет повышение уровеня в %joblevel% %jobname%.'
nobroadcast: Вы имеете повышеный уровень в %joblevel% %jobname%.
cowtimer: '&eВы должны подождать &6%time% &eсекунд что бы получить денег за эту работу.'
blocktimer: '&eВы должны подождать: &3[time] &eсек ещё чтобы получить деньги!'
placeblocktimer: '&eВы не можете ставить блоки быстрее чем &6[time] &eсекунд в одном месте'
broadcast: '%playername% получил уровень %joblevel% в работе %jobname%.'
nobroadcast: Вы получили уровень %joblevel% в работе %jobname%.
cowtimer: '&eВы должны подождать &6%time% &eсекунд, чтобы получить зарплату.'
blocktimer: '&eВы должны подождать: &3[time] &eсек ещё, чтобы получить свои деньги!'
placeblocktimer: '&eВы не можете ставить блоки быстрее, чем &6[time] &eсекунд в одном месте!'
taxes: '&3[amount] &eserver taxes where transfered to this account'
boostStarted: '&eУскорение получения денег с работы началось!'
boostStoped: '&eУскорение получения денег с работы уже закончилось!'
crafting:
fullinventory: Инвентарь полный!
fullinventory: Инвентарь заполнен!
signs:
List: '&0[number].&8[player]&7:&4[level]'
SpecialList:
'1':
'1': '&b** &8Первый &b**'
'2': '&9[player]'
'3': '&8[level] уровень'
'4': '&b************'
'2':
'1': '&b** &8Второй &b**'
'2': '&9[player]'
'3': '&8[level] уровень'
'4': '&b************'
'3':
'1': '&b** &8Третий &b**'
'2': '&9[player]'
'3': '&8[level] уровень'
'4': '&b************'
cantcreate: '&4Вы не можете создать табличку!'
cantdestroy: '&4Вы не можете уничтожить эту табличку!'
topline: '&e[Jobs]'
secondline:
join: '&2Join'
leave: '&4Leave'
join: '&2Устроиться'
leave: '&4Уволиться'
toggle: '&eToggle'
top: '&eTop'
top: '&eТоп'
browse: '&eBrowse'
stats: '&eStats'
limit: '&eLimit'
info: '&eInfo'
info: '&eИнформ'
archive: '&eArchive'
scoreboard:
clear: '&eIf you want to remove scoreboard, type &2/jobs top clear'
topline: '&2Top &e%jobname%'
lines: '&2%number%. &e%playername%'
gtopline: '&2Глобальный топ-лист'
lines: '&2%number%. &e%playername%'

View File

@ -1,7 +1,7 @@
name: Jobs
description: Jobs Plugin for the BukkitAPI
main: com.gamingmesh.jobs.JobsPlugin
version: 3.4.2
version: 3.4.3
author: phrstbrn
depend: [Vault]
softdepend: [CoreProtect, MythicMobs, McMMO]