Выход из игры

Версия Minecraft
1.7.10
929
30
66
Всем привет , как сделать кд на кнопку выйти из игры , допустим кд на 10 секунд.
 
Решение
Ну если ты хочешь чтоб после захода игрок 10 секунд не мог выйти, тогда:
- Ловишь ивент ClientConnectedToServerEvent
- Записываешь время которое, например, взято из System.currentTimeMillis()
- Ловишь ивент TickEvent.ClientTickEvent
- Берешь гуи из переменной Minecraft#currentScreen
- Если оно является экземпляром GuiIngameMenu, достаешь кнопку с id 1. Взял я это отсюда this.buttonList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + b0, I18n.format("menu.returnToMenu", new Object[0])));
- Сравниваешь значение которое ты записал в пункте 3 с текущим. Если разница меньше 10 * 1000, переменной enabled в кнопке присваиваешь false в противном случае true
- Profit

Собственно этот алгоритм можно оптимизировать, но в...
1,111
47
420
Ну если ты хочешь чтоб после захода игрок 10 секунд не мог выйти, тогда:
- Ловишь ивент ClientConnectedToServerEvent
- Записываешь время которое, например, взято из System.currentTimeMillis()
- Ловишь ивент TickEvent.ClientTickEvent
- Берешь гуи из переменной Minecraft#currentScreen
- Если оно является экземпляром GuiIngameMenu, достаешь кнопку с id 1. Взял я это отсюда this.buttonList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + b0, I18n.format("menu.returnToMenu", new Object[0])));
- Сравниваешь значение которое ты записал в пункте 3 с текущим. Если разница меньше 10 * 1000, переменной enabled в кнопке присваиваешь false в противном случае true
- Profit

Собственно этот алгоритм можно оптимизировать, но в принципе нормально;)
 
1,057
50
234
Пилишь свой GuiIngameMenu (подмена GUI через эвент GuiOpenEvent, юзай поиск), делаешь переменную (int timer = 20*10 (1 секунда = 20 тиков) )с нужным тебе числом (в тиках),

затем в методе actionPerformed ищешь case 1:,
делаешь там проверку на твой таймер типа
Код:
if(timer <= 0) { ...quitpacket... } else {this.mc.fontRenderer.drawString(x,y, "Падажи, ты еще не можешь выйти, блаблабла")}

и в updateScreen понижаешь таймер (--this.timer)

Как-то так...
 
2,505
81
397
Защита от выхода на клиенте? Серьезно? Что помешает мне нажать на крестик? Или alt+f4? Или модифицировать клиент?
Человеку явно нужно не это. Эму нужно, чтобы игрок не дисконектился на сервере какое-то время при попытке выйти.
 
Сверху