Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [FIX]ItemFixer 3.1-Избавь свой сервер от читерских предметов!|Фикс DLC,WURST,SKILL|Upd 18.02.2018

Статус
Закрыто для дальнейших ответов.
ЗЫ. вообще можно быстро отловить кто перезапускает сервер.
Но для этого надо ковырнуть spigot.jar (или что там у тебя)
1. Взять IDEA
2. создать пустой проект
3. подцепить туда внешнюю библиотеку spigot
4. диазассемблировать из spigot класс CommandStop и исходник положить в папку src как модуль CommandStop.java (с тем же путем который был в джарке)
5. добавить в начало метода execute что то типа:
try{ throw new Exception("ха- ха"); } catch(Exception e){ e.printStackTrace(); }
6. откомпилить модуль с классом CommandStop и запихнуть обратно в джарку

Теперь перед началом остановки сервера в консоль (+в лог) будет выводиться стэк вызовов, от куда будет видно кто дернул команду "stop"
dirol.gif
 
Последнее редактирование:
ЗЫ. вообще можно быстро отловить кто перезапускает сервер.
Но для этого надо ковырнуть spigot.jar (или что там у тебя)
1. Взять IDEA
2. создать пустой проект
3. подцепить туда внешнюю библиотеку spigot
4. диазассемблировать из spigot класс CommandStop и исходник положить в папку src как модуль CommandStop.java (с тем же путем который был в джарке)
5. добавить в начало метода execute что то типа:
try{ throw new Exception("ха- ха"); } catch(Exception e){ e.printStackTrace(); }
6. откомпилить модуль с классом CommandStop и запихнуть обратно в джарку

Теперь перед началом остановки сервера в консоль (+в лог) будет выводиться стэк вызовов, от куда будет видно кто дернул команду "stop"
dirol.gif
А для не особо одарённых можно?
 
погоди... смотри, что мне удалось выяснить... я покопался в исходных кодах spigot.

ДАЛЕЕ ПРОШУ МЕНЯ НЕ РУГАТЬ ЕСЛИ Я ОБШИБСЯ ГДЕ ТО И НЕ ДОГЛЯДЕЛ :rolleyes:
СТАРАЛСЯ КАК МОГ :)

Фраза в логе "Stopping server" выводиться только в методе stop (класс MinecraftServer)
Метод stop вызывается в двух случаях:
1. в главной процедуре сервера run, после сигнала о начале остановки сервера.
2. в процедуре restart (класс RestartCommand).

Пункт два нас не интересует, т.к. перед вызовом метода stop в лог пишется "Attempting to restart with ....". А у тебя в логе там этого нет.
У тебя в логе перед фразой "Stopping server" выводиться фраза "Stopping the server". Эта фраза выводиться в процедуре execute класса CommandStop. Этот метод (в двух словах) посылает сигнал что пора завершать главный цикл метода run (главная процедура сервера). Это соответствует пункту 1 (см. выше)

Класс CommandStop (опять в двух словах) можно вызвать только командой "stop"
И делается это через метод dispatchCommand, который плагины могут дергать двумя способами:
Server.dispatchCommand( Sender, "stop")
или Player.performCommand("stop"), что равносильно предыдущей строке

Итого, получается два варианта:
1. В каком то плагине зашита команда dispatchCommand( ..., "stop")
2. Плагин использует данные из своих конфигов для подставновки в команду dispatchCommand (например, ChestCommand, Authme, TimedCommands и т.д. и т.п., очень много плагинов существует где в конфигах прописываются команды которые надо выполнить)

Пункт 1 можно попробовать проверить сканированием внутренностей джарок. Искать файлы с расширением *.class где встречаются одновременно два слова "stop" + "dispatchCommand" или "stop" + "performCommand"
Но я думаю, что это маловероятно, что какой то плагин устроил такую заподлянку

Пункт 2 проверить можно путем просмотра конфигов всех плагинов (некоторые могут хранить данные и в базе данных)

Поиск удобно делать программой Total Commander, которая позволяет искать текст внутри других файлов, включая архивы. Также (для пункта 1) можно сначала найти список файлов с первым словом, вывести список на панель, а затем в найденных файлах поискать второе слово.

ЗЫ. Не нападайте на Славика (сто двадцать третьего). Он хороший :)
Вы забыли про специальный метод: Bukkit.shutdown();
 
Вы забыли про специальный метод: Bukkit.shutdown();
НЕТ! Я НЕ ЗАБЫЛ!
метод shutdown не пишет в консоль фразу "Stopping the server"
Эту фразу пишет только CommandStop->execute, добраться до которой можно только через dispatchCommand

CommandStop.execute делает следующее
1. тут всякую фигню делает (вроде пермы проверяет у sender)
2. Пишет "Stopping the server" (кстати эта фраза не в коде прошита а в файле lang.en_En)
3. выполняет метод MinecraftServer.shutdownsafe (точно не помню название)

Bukkit.shutdown делает только метод MinecraftServer.shutdownsafe

ЗЫ. MinecraftServer.shutdownsafe не стопает сервер, а только выставляет флаг, что пора закончить главный цикл в методе MinecraftServer.run
А после выхода из главного цикла выполняется метод MinecraftServer.stop, который пишет "Stopping server"

Поэтому когда в чате/консоле пишут /stop или плагин делает dispatchCommand(sender,"stop"), то в консоле пишется сразу две фразы;
Stopping the server
Stopping server

(я в этом посте мог напутать названия методов, т.к. сейчас на работе и нет под рукой исходников spigot)
 
Последнее редактирование:
НЕТ! Я НЕ ЗАБЫЛ!
метод shutdown не пишет в консоль фразу "Stopping the server"
Эту фразу пишет только CommandStop->execute, добраться до которой можно только через dispatchCommand

CommandStop.execute делает следующее
1. тут всякую фигню делает (вроде пермы проверяет у sender)
2. Пишет "Stopping the server" (кстати эта фраза не в коде прошита а в файле lang.en_En)
3. выполняет метод MinecraftServer.shutdownsafe (точно не помню название)

Bukkit.shutdown делает только метод MinecraftServer.shutdownsafe

ЗЫ. MinecraftServer.shutdownsafe не стопает сервер, а только выставляет флаг, что пора закончить главный цикл в методе MinecraftServer.run
А после выхода из главного цикла выполняется метод MinecraftServer.stop, который пишет "Stopping server"

Поэтому когда в чате/консоле пишут /stop или плагин делает dispatchCommand(sender,"stop"), то в консоле пишется сразу две фразы;
Stopping the server
Stopping server

(я в этом посте мог напутать названия методов, т.к. сейчас на работе и нет под рукой исходников spigot)
Ответь в лс.
 
Spigot Timings для поиска утечек уже не используют? Или вы по старинке привыкли?
 
Spigot Timings для поиска утечек уже не используют? Или вы по старинке привыкли?
в timings пусто вообще там всё норм. А перезагрузки просто так сервер может перезагрузить когда 10 человек,а сейчас 50! и он держится.
 
в timings пусто вообще там всё норм. А перезагрузки просто так сервер может перезагрузить когда 10 человек,а сейчас 50! и он держится.
TPS падает если что-то грузит сервер (или оперативки мало), но 3 гига достаточно даже для небольшого сервера с модами.
 
TPS падает если что-то грузит сервер (или оперативки мало), но 3 гига достаточно даже для небольшого сервера с модами.
Я повысил в связи с покукой крутой рекламы теперь 4,5Gb
 
А как ты определяешь был ли Player создан баккитом или кем то другим? я что то ничего кроме интерфейса Player не увидел. Почему ты решил что объекты реализующий данный интерфейс принадлежат классу CraftBukkit?
Я сейчас почекал как спигот получает игроков в getPlayerExact. Он получает игрока из мапы в которой храниться - ник и EntityPlayer. После чего он получает этого EntityPlayer и вызывает метод getBukkitEntity и там кастует его в CraftPlayer
public CraftPlayer getBukkitEntity() {
return (CraftPlayer) super.getBukkitEntity();
}
Так что я могу быть уверен что игрок создан бакитом а не левым плагином.
 
Version 2.9.9:
  • Убран ограничитель пакетов, т.к он плохо работает.
  • Исправлен новый баг с помощью которого можно кикать игроков. (Шалкер бокс с кривым баннером внутри)
  • Исправлен баг что игроки с креативом могли создавать горшки с предметами.
 
Version 2.9.9:
  • Убран ограничитель пакетов, т.к он плохо работает.
  • Исправлен новый баг с помощью которого можно кикать игроков. (Шалкер бокс с кривым баннером внутри)
  • Исправлен баг что игроки с креативом могли создавать горшки с предметами.
сделай так чтоб при обновлении не приходилось заменять конфиг у меня мистикмоб стоит там дроп с эфектами и чарами больше стандартных
 
сделай так чтоб при обновлении не приходилось заменять конфиг у меня мистикмоб стоит там дроп с эфектами и чарами больше стандартных
его и так не надо заменять.
 
ItemFixer
Версия плагина: 2.9.9
Под версию сервера: 1.8-1.12.1

Особенности:
  • Не удаляет читерские предметы!
  • Убирает с предметов NBT таги(+100 у урону и тд)
  • Убирает зелья с высокими эффектами(100лвл моментальный урон и тд)
  • Убирает с предмета высокие зачарования
  • Можно включить функцию чтобы у предметов не было зачарований которые они не могут иметь
  • Фиксит CrashChest(При изпользовании вызывает учечку памяти)
  • Фиксит CrashItem(Бирка с длинным именем. Вызывает краш у игроков)
  • Фиксит SkullExploitCrash(Голова игрока без скина, вызывает краш сервера и клиента)
  • Фиксит Эндер перл(Крашит сервер при использовании. Много нбт тагов http://pastebin.com/W2WUwufb)
  • Фиксит #crashtest
  • Фикс спама пакетов (CustomPlayLoad (REGISTER, MC|BEdit, MC|BSign))
  • Фиксит Снежки(Крашит сервер при использовании. Много нбт тагов http://pastebin.com/W2WUwufb)
  • Удаляет предметы без текстурок
    JzFiK08lLgA.jpg
Permissions:
itemfixer.bypass.packet - не проверять на спам с помощью пакетов.
itemfixer.bypass.nbt - не проверять предмет на nbt теги.
itemfixer.bypass.enchant - не проверять предмет на зачарования.
itemfixer.allow.MATERIAL.ENCHANTMENT.lvl - разрешить на предмете определённый энчант.

Конфиг:
YAML:
#убирать с предмета зачарования которые предмет не может иметь.
#Например с земли будут убираться все зачарования, т.к у неё не может быть зачарований.
remove-invalid-enchants: false
#проверять зачарования
check-enchants: true
#Миры где отключены проверки
ignore-worlds:
  - "random_mir_228"
  #- "world"
  #- "world2"
#какие nbt таги игнорировать. Например "Unbreakable"
#Список всех тагов, которые плагин проверяет:
#ActiveEffects
#Command
#CustomName
#AttributeModifiers
#Unbreakable
#CustomPotionEffects
#run_command
#ClickEvent
#BlockEntityTag
#EntityTag
ignored-tags:
  - tag1
  - tag2
Version 2.9.9:
  • Убран ограничитель пакетов, т.к он плохо работает.
  • Исправлен новый баг с помощью которого можно кикать игроков. (Шалкер бокс с кривым баннером внутри)
  • Исправлен баг что игроки с креативом могли создавать горшки с предметами.
Version 2.9.8:
  • Исправлены фейерверки которыми можно крашнуть сервер(Фейерверки бесконечно летят и грузят чанки).
Version 2.9.7:
  • Исправлено немного багов.
Version 2.9.6:
  • Исправлены ошибки, которые иногда появлялись в консоли.
Version 2.9.5:
Version 2.9.4:
  • Добавлен PPS ограничитель.(Пакеты в секунду)
  • Попытка исправить несовместимость с плагином ArtMap
  • Попытка исправить ложные срабатывания разными антивирусами.
  • Попытка исправить ошибку в консоли("The method hasPermission is not supported for temporary players.").
  • Теперь можно разрешить на предмете определённый энчант высокого уровня через право: itemfixer.allow.MATERIAL.ENCHANTMENT.lvl.
Version 2.9.3
  • Поддержка 1.12(Исчезали цветные кровати)
  • Теперь плагин проверяет предметы в Shulker Box
Version 2.9.2
  • Возможный фикс нестакаемости предметов(Возможно, что текущие предметы в сундуках перестанут стаковаться с предметами в инвентаре, чтобы этого не было нужно прокликать предметы в сундуке).
  • Исправлен баг, что высокие зачарования не снимались.
Version 2.9.1
  • Опять пофикшен фикс краша голов.
Version 2.9.0
  • Опять исправлена ошибка в консоли
  • Теперь плагин работает также и на 1.12
  • Теперь плагин не фиксит спам пакетов на версиях 1.11 и выше т.к это пофиксили в последнем Spigot 1.11.2+
Version 2.8.7/2.8.8:
  • Исправлена редкая ошибка в консоли
  • Добавлены новые права
Version 2.8.6:
  • Устранена не критическая утечка памяти.
  • Так же извиняюсь, что выходит слишком много обновлений за короткий промежуток времени.
Version 2.8.5:
  • Увеличена максимальная длинна нбт тега для книг.
  • Добавлен сундук-ловушка для проверки нбт тегов(случайно убрал его в прошлых версиях)
Version 2.8.4:
  • Исправлен баг что игроки не могли использовать некоторые предметы. Извините за это :(
Version 2.8.3:
  • Плагин был частично переписан.
  • Новый конфиг
  • Новый чекер обновлений. (Спасибо @CatCoder)
  • Пофикшен новый спам каналом 'REGISTER' в CustomPayLoad пакете.(http://rubukkit.org/threads/134650/)
  • Убрана поддержка Java 7
Version 2.8.2:
  • Пофикшен фикс краша сервера спамом пакетов.
  • Убран фикс .stop клиента, т.к баг работает только на 1.11.2, и спигот уже пофиксил его.
Version 2.8.1:
  • Пофикшен .stop клиент от Garkolym
Version 2.8:
  • Пофикшен новый краш со спамом пакетов(надеюсь)
  • Теперь максимальная длинна нбт тагов - 10000 символов
  • Пофикшены некоторые баги
  • Теперь можно отключить поиск обновлений.
Version 2.7.8:
  • Более лучший фикс #crashtest. Теперь нагрузка минимальная.
Version 2.7.7:
  • Щяс бы в 2к17 фиксить головы...
  • Пофикшены головы без текстур.
  • Пофикшен конфликт с плагином Magic
  • Пофикшены карты.
Version 2.7.6:
  • Пофикен новый краш клиент.(#crashtest ID)
Version 2.7.5:
  • Добавлена табличка на проверку.
Version 2.7.4:
  • Теперь плагин удаляет все предметы без текстурок. Например с помощью /item 145:10 можно крашнуть клиент.
Version 2.7.3:
  • Пофикшен не понятный краш сервера с помощью таких предметов:
    jO_Ir8Rak8o.jpg
  • Более лучшее обнаружение других краш предметов.
  • Убрана поддержка 1.7.10. На ней плагин кривовато работал.
Version 2.7.2:
  • Пофикшен новый краш сервера с помощью эндер перла и снежнка. Пример этого предмета: http://pastebin.com/W2WUwufb
Version 2.7.1:
  • Убран не нужный ивент, который мог нагружать сервер.
Version 2.7.0:
  • Убраны все команды, убран таймер.
  • Поддержка 1.11(наканецта) и всех новых версий.
  • Немного подчистил код.
  • Улучшил обнаружение краша головами.
Version 2.6.6:
  • Капельку почистил код.
  • Исправил ошибку с некоторыми плагинами, которые добавляют на предмет несуществующее зачарования.
  • Возможный фикс нестакаемости предметов.
  • Теперь можно отключить плагин в тех мирах, что указаны в конфиге.
Version 2.6.5:
  • Опять пофикшено обноружение эксплоита с головами игроков без скина.
Version 2.6.4:
  • Пофикшено обноружение эксплоита с головами игроков без скина.
  • Теперь нет конфликта с ChestCommands
  • Теперь можно отключить проверку на зачарования.
Version 2.6.3:
  • Возможно пофикшена ошибка.
  • Фикс багов, немного снижен расход оперативки(который и так был очень маленький)
  • Убрана настройка fix-skull-exploit, т.к не вижу смысла её отключать
  • Улучшено обнаружение эксплоита с головами игроков без скина.
Version 2.6.2:
  • Теперь зачарования и NBT'таги удаляются за один раз. Раньше они удалялись за два раза. А если на предмете было нормальное зачарование, то NBT'таги могли и не удалиться.
Version 2.6.1:
  • Добавлен таймер(шедулер), полностью настраивается.
  • Теперь плагин проверяет предметы на которые кликают.
Version 2.6:
  • Теперь можно игнорировать некоторые предметы от проверок!
  • Добавлены команды:
  1. /itemfixer [add] - Игнорировать предмет от проверок
  2. /itemfixer [remove] - Снова проверять предмет
  3. /itemfixer [settag] [tag] - Установить новый таг для игнорирования предметов
  • Теперь плагин проверяет предметы, которые выбрасывает игрок.
Version 2.5.4:
  • Пофикшен краш клиента с помощью чит воронки.
  • Пофикшен краш клиента с помощью слаймов.
  • Желательно добавить в конфиг в "spawneggs:" - "Size"
  • Теперь плагин удаляет Структурные блоки. Т.к их нельзя сломать.
  • Теперь плагин проверяет предметы когда с ними пытаются взаимодействовать.
Version 2.5.3:
  • Теперь можно включить удаление зачарования с предмета, если на нём не может быть его. Тоесть если у земли есть какоето зачарование то его уберёт, т.к у земли не может быть зачарований.
  • Теперь плагин фиксит:
  1. CrashChest(Очень быстро заполняется память и сервер крашится)
  2. CrashItem(Бирка с кучу "################", когда её вешаешь на моба то игроков по близости может кикнуть)
  3. SkullExploitCrash - краш с помощью головы игрока без скинов.
Version 2.5.2:
  • Исправлен баг, что зачарования исчезали не сразу.
Version 2.5.1:
  • Поддержка 1.7.*
  • Фикс возможного кретивхака*
  • Пофикшен поиск обновления при загрузке плагина.
  • * - Текущий креативхак не работает(Проверено на всех версиях). Просто на всякий случай добавил проверку.
Version 2.5:
  • Плагин полностью переписан.
  • Пофикшена утечка памяти.
  • Добавлен конфиг.
  • Убрана поддержка 1.7.10
  • Теперь нужен ProtocolLib для работы.
  • Меньше нагрузки на сервер.
Version 2.4.2:
  • Фикс ошибки.
Version 2.4.1:
  • Фикс зельев.
Version 2.4:
  • Теперь все предметы проверяются каждые 15 секунд.
  • По идее читерские предметы теперь использовать нельзя.
Version 2.3.7:
  • Фикс несовместимости с некоторыми плагинами.
Version 2.3.6:
  • ВНИМАНИЕ! Обновитесь до этой версии вручную!
  • Автообновлятор криво обновил плагин до 2.3.5
Version 2.3.5:
  • Убрано автообновление.
Version 2.3.4:
  • Исправил один баг.
  • Убрана проверка урона
Version 2.3.3:
  • Теперь отменяется урон, если он больше 14(Отменяет у всех, даже у админов)
Version 2.3.2:
  • Добавлена поддержка 1.10
  • Немного оптимизировал плагин
  • Исправлены пару багов
Version 2.2.1:
  • Фикс ошибки на 1.9.4
Version 2.2:
  • Добавлена поддержка 1.9.4
Version 2.1.2:
  • Пофикшены какие-то баги.
  • Пофикшены сундуки, раздатчики, дроперы, сундуки с вещами.
Version 2.1.1:
  • ДО ЭТОЙ ВЕРСИИ НУЖНО ОБНОВИТЬСЯ ВРУЧНУЮ.
  • Пофикшено авто-обновление.
  • Исправлена ошибка в консоли.
Version 2.1:
  • Вернул версии 1.7.10-1.8.5
Version 2.0:
  • Дропнуты все версии ниже 1.8.9(R3)
  • Убран лишний код.
  • Исправлено немного багов.
Version 1.9.2:
  • Добавлено авто-обновление плагина!
Version 1.9.1:
  • Улучшен поиск обновления плагина.
Version 1.9:
  • Проверка брони и новой руки на 1.9.
Version 1.8.1:
  • Фикс поиска обновлений.
Version 1.8:
  • Мелкие фиксы.
  • Проверка на обновления.
  • Новое право: itemfixer.checkupdate - отправлять игроку с этим правом сообщение о новой версии.
Version 1.7.1:
  • Мелкие фиксы.
Version 1.7:
  • Проверка предметов из раздатчика.
  • Фикс 2х критических багов.
Version 1.6:
  • Проверка командных блоков на команды.
  • Проверка яиц для призыва мобов.
  • Больше нбт тегов для проверки.
Version 1.5:
  • Чистка кода, улучшено обнаружение читерских зельев.
  • itemfixer.bypass - Больше не работает на зелья.
  • Добавлен гитхаб.
Version 1.4
  • Добавлено право itemfixer.bypass.
Version 1.3.2
  • Исправлен баг с забирание флага.
Version 1.3.1
  • Поддержка Java 7
Version 1.3
  • Поддержка версий 1.7.10-1.8.*-1.9, возможно поддержка Java 7
Version 1.2:
  • Теперь нельзя спавнить стойку если у него есть имя(Плагинов это не касается)
Version 1.1:
  • Добавлена проверка на стойки для брони с кастомным именем.

Исходники: https://github.com/Dimatert9/ItemFixer

Для работы плагина нужен ProtocolLib!​

Запрети книгу с пером и проверяй на наличие nbt.Просто так можно даже крашнуть сервер.
 
Запрети книгу с пером и проверяй на наличие nbt.Просто так можно даже крашнуть сервер.
книгу можно любым плагином на блокировку предметов запретить. другой вопрос - как этой книгой крашится (где пруфы) чиркани в личку или тут
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх