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

Плагин [ADMN] MineBlocker 2.3.6 - запреты взаимодействия. [CB 1.6.* - 1.11.*]

Обновите пожалуйста для версии 1.10,
На самом деле в 1.10 все работает, но каждую минуту в консоли появляется ошибка, что очень ее засоряет:
Код:
04.08 18:52:24 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25]
04.08 18:52:24 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25]
04.08 18:52:24 [Server] INFO at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source) ~[?:?]
04.08 18:52:24 [Server] INFO at ru.mor.iv.mineblocker.listeners.EntityListener.damage(EntityListener.java:44) ~[?:?]
04.08 18:52:24 [Server] INFO Caused by: java.lang.NoSuchMethodError: org.bukkit.entity.Projectile.getShooter()Lorg/bukkit/entity/LivingEntity;
04.08 18:52:24 [Server] INFO at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:799) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.WorldServer.tickEntities(WorldServer.java:632) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.World.tickEntities(World.java:1430) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.World.g(World.java:1604) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.World.entityJoinedWorld(World.java:1629) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.EntityTippedArrow.m(EntityTippedArrow.java:68) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.EntityArrow.m(EntityArrow.java:193) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.EntityArrow.a(EntityArrow.java:285) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.EntityZombie.damageEntity(EntityZombie.java:180) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.EntityMonster.damageEntity(EntityMonster.java:48) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity(EntityLiving.java:834) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity0(EntityLiving.java:1238) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:604) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:479) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:572) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:89) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[server.jar:git-Spigot-078e2f8-7f9fbe5]
04.08 18:52:24 [Server] INFO org.bukkit.event.EventException
04.08 18:52:24 [Server] ERROR Could not pass event EntityDamageByEntityEvent to MineBlocker v0.2.5
 
Последнее редактирование:
Есть у кого связь с автором на данный момент?
 
Надеюсь ответят
Проблема вот в чем. До загрузки пермишин в бд, все работало нормально. А после загрузки в бд.
Плагин перестал работать. у меня либо все запрещено, либо все разрешенно. Если у кого то такая же проблема была, прошу ответить, как ее решить
 
Значит так. Я долгое время отсутствовал. Причины работа/семья, проблемы с компом. Короче всё и сразу.

На данный момент я имею время(не много, но к зиме будет больше), желание поднять плагин. Обновить до актуальных версий, провести работу над ошибками.

Теперь по делу. Ищу людей, которые могут мне помочь. Ни чем не обязываю, дай бог здоровья и времени я сделаю задуманное, но ускорить всё же можно.
Помощь тоже возможна любая. Начиная от просто пальца вверх за идею, заканчивая материальной поддержкой.
Так же выслушаю все пожелания по добавлению/удалению функций плагина.

Что я хочу видеть в конце:
- Максимально чистый, красивый, разложенный по полкам код. Для дальнейшего улучшения плагина.
- Минимизация настроек плагина. Потому как обычному пользователю сложно настроить всё с нуля.

Связь на форуме либо в скайпе.
Предлагаю вообще отказаться от проверки по плагину запретов, а оставить только встроенный Перм лист.
Проверка по плагину запретов почти в 2 раза нагружает сервер.
1 000 000 операций по перм листу с 20 строками плагин выполняет 3000 мс. А с проверкой по плагину пермов : 5600 мс.
tttttt.JPG
ПС... Проверял на проце 2.3 Ghz
 
Последнее редактирование:
отказаться от проверки по плагину запретов, а оставить только встроенный Перм лист.
Можете конкретнее пояснить, что вы имели ввиду, а то я не понял.
Так же можно поинтересоваться, какие изменения произошли в версии 2.3.0 по сравнению с 2.2.6?
А то информации нет ни тут, ни в вашем хранилище.
 
Последнее редактирование:
А это не затронет запреты по группам?

Ждем.
Предложения:
1) Дополнить запреты ПКМ/ЛКМ/Drop(кнопочка Q) новой проверкой по инвентарю.
Т.е. запретить данные действия с конкретным или всеми предметами в данном инвентаре.
Можно попробовать в пермлисте реализовать это так {запрет}|{Нейм инвентаря}
Это позволит пофиксить многие дюпы с говно-сумками, дюпы с двойным кликом ПКМ в инвенторе.
Да, ModfixNG такое не умеет, многие обращались в теме плагина по поводу данной возможности, но их в попу отправляли. Более не обновляется.

2) Дополнить запреты ПКМ/ЛКМ проверкой по кол-ву жизней. Не самый нужный в обиходе фикс предметов, которые наносят урон игрокам при использовании.
Можно попробовать в пермлисте реализовать это так {запрет}||{Нейм инвентаря}
А также можно поинтересоваться, как там поживают старые предложения и проблемы?
1) Предметы активируемые из-за области проверки(Зажал пкм и вошел в зону проверки или направил на зону проверки и использовал - видео скидывал в личку)
2) Обход запретов в некоторых модах (последнее скинутое видео)
 
А это не затронет запреты по группам?
Нет, они работают по другому принципу.
А вообще я наверное оставлю всё, с оговоркой "На свой страх и риск".
1) Дополнить запреты ПКМ/ЛКМ/Drop(кнопочка Q) новой проверкой по инвентарю.
Возможно. Я подумаю над реализацией.
2) Дополнить запреты ПКМ/ЛКМ проверкой по кол-ву жизней. Не самый нужный в обиходе фикс предметов, которые наносят урон игрокам при использовании.
Действительно не самый нужный фикс - по идее игрок должен следить за своими жизнями, я больше склоняюсь к тому что это частный фикс.
А также можно поинтересоваться, как там поживают старые предложения и проблемы?
Помню было такое. По поводу модов я считаю что надо фиксить в самих модах. А вот про зажатый клик - такое тоже имеет место быть, но опять же обрабатывается модами. Они не всегда хорошо написаны. Можно подумать. Я на досуге поищу видео в ЛС для освежения памяти. Но для начала скажу что надо завершить 2.3.0. Потому как у меня не только MB в очереди стоит.
 
Возможно. Я подумаю над реализацией.
Спасибо, будем ждать.
Обход запретов в некоторых модах
По поводу модов я считаю что надо фиксить в самих модах.
Обход конечно нетривиальный, но работает на очень многих плагинах запретов. И грустно, что модов таких не мало и получается, что многие особенности плагига остаются только для использования с ванилькой.
Нет, они работают по другому принципу.
А вообще я наверное оставлю всё, с оговоркой "На свой страх и риск".
Может тогда сделать два режима работы плагина:D
 
Может тогда сделать два режима работы плагина:D
Просто кнопка в конфиге всё решит. Сейчас она и так есть.
Обход конечно нетривиальный, но работает на очень многих плагинах запретов.
Тут я не понял - получается у кого-то работает, а у меня нет? Правильно?
Спасибо, будем ждать.
Я это хотел сделать, но ни разу не слышал что надо кому-нибудь.
 
Тут я не понял - получается у кого-то работает, а у меня нет? Правильно?
У других тоже работает этот обход. Есть только один плагин(но он не удобен в настроках), который нельзя обойти, о нем тоже вам писал.
Вы как-то говорили, что у вас есть идеи как это закостылить.
Я это хотел сделать, но ни разу не слышал что надо кому-нибудь.
Ох, такой фикс нужен во многих модах. Вот недавний запрос из темы modfixng:
Как защититься от такого дюпа: при открытом инвентаре выкидывается предмет(сумка). В итоге все вещи возвращаются игроку плюс они оказываются в сумке(выкинутой).
и это не первый запрос.
В сети в свободном доступе нет плагина для решения этой проблемы. Да и не на одном сервере не видел, чтоб пытались фиксить такие "сумки". Всегда в запретах.
 
Последнее редактирование:
Выпустил unstable 2.3.o
Выкладываю для тестов. Все возникающие ошибки исправлю "по факту". Просто нереально отловить всё самому с таким объемом кода.
Плагин стал толще на 2.5к строк.
Теперь он занимает 8к
[2.3.0_unstable_v1]
- обновление --- плагин работает на версиях 1.6.4 - 1.10.2
- добавлена проверка двух рук в спорных ситуациях
- исправление липкого поршня для разных версий(у него изменилось API)
- добавлен default_permissions.yml, в нём можно переназвать все права.
# ВАЖНО!!! - не забываем переименовать в MessageRU.yml, либо удалить его для пересоздания, т.к. в нём всё изменения отразятся
- добавлено право have_r - запрет ношения предмета с последующим удалением его из инвентраря.
- переработан конфиг, убрана половина выключателей.
- добавлен switch_listeners.yml, в неём все выключатели, для тех кому "хочется", а так плагин выключает/включает всё в авто режиме.
# ВАЖНО!!! - в случае отказа от PermissionsList.yml и работе по PEX - авто выключалки не работают. Всё ручками.
- исправлена ошибка запрета взаимодействия сквозь энтити. (возможен визуальный баг, еще не отловлен)
- исправлена ошибка "PlayerInteractAtEntityEvent does not exist"
- переделал структуру плагина, теперь новые правила и запреты можно добавлять буквально "на раз-два", всё просто и легко. Так что возможно в скором времени "насыплю" ещё правил.
# Из за переработки структуры плагина процесс затянулся
- добaвлены все типы кликов в инвентаре.
#список:
#invclick_creative
#invclick_left
#invclick_shift_left
#invclick_right
#invclick_shift_right
#invclick_middle
#invclick_number_key
#invclick_double
#invclick_drop
#invclick_control_drop
#invclick_unknown - есть в классе ClickType у минекрафта, Но когда вызывается не знаю, добавил на всякий
- убрано правило invclick.{предмет} за ненадобностью. Для тех кто в танке - в custom_permissions.yml прописано правило под invclick, объединяет все клики.
- для кликов добавлена возможность запрета с учётом имени инвентаря. пример: invclick_left.{предмет}.{имя инвентаря}
# не доработаны сообщения, отображаются пока без учёта имени инвентаря.
- добавлена команда /mb inventory либо /mb inv - отображает имена открываемых инвентарей до повторного ввода, работает по типу "команда - вкл/ команда - выкл".
#отображает 2 имени если доступны. Имя класса и имя инвентаря на сервере, для некоторых предметов недоступно имя на сервере, а у некоторых один и тот-же класс, но разное имя на сервере. Так что внимательно.
#банить можно по любому имени.
- переделан switch_listeners.yml, долго рассказывать, потом =)
- переименованы почти все файлы плагина, приведены к одному виду.
- право установки рядом теперь работает по другому: place_near."ЧТО"|"рядом с чем 1"|"рядом с чем 2"
# place_near.stone|sand|dirt|glass
# ВАЖНО!!! для запрета установки рядом с собой надо дважды добавить однин блок.
- убран Rules-installation-of-blocks-near.yml за ненадобность. Его с легкостью заменяет custom_items.yml.
- добавлено правило "double_opening.{имя блока или ентити}". Им можно запретить открывать один инвентарь нескольким игрокам. Дружит со "*" =) Потому как проверяет только те блоки/ентити, которые содержат инвентарь.
- Случайная(или нет? =} ) оптимизация плагина. Совсем не много, на 50% увеличена скорость работы(в ПОЛТОРА раза!!!! :D ). Нашёл узкое место......
#Но это в синтетике, на практике будет не большая потеря - зависит от количества секций в PermissionsList.yml
#Синтетика не даёт точных показателей. Служит для быстрой проверки работы плагина в том числе и под нагрузкой. В один проход тест проверяет эвенты и отображает их работоспособность.
- оптимицация слушателей событий. Отключение/включение их "на горячую" в автоматическом режиме.
- перенастройка слушателей Have из конфига, теперь сначала идет проверка по Have, а потом уже действие.
- добавлены правила piston_extend и piston_retract - ПОКА НЕ ИСПОЛЬЗУЮТСЯ; добавил для нужнд плагина.
- добавлен консруктор правила удаление предмета по тикам. Стандарт 1 тик.
#на окончание добавить ".remove" или ".remove|X", где "X" это количество тиков.
#можно до .wg, можно после.
- добавлено удаление предмета на несколько тиков для кликов мышью по блоку/ентити, для урона по энтити, для вёдер и для установки блока.
#Хранит в памяти предметы.
#При выключении сервера, либо выходе игрока сохраняет в файл отобранные предметы "MineBlocker\items\ИмяИгрока.yml"
#При входе игрока отдает предметы через 20 тиков.
#Если заглянуть в файл, можно увидеть длинный "ВыРВиГлазК0д", не пугаемся, так надо.
#Сервер сам собирает код из ItemStack и потом без проблем обратно.
#Поддерживает NBT теги и предметы из модов.

[2.3.4]
[2.3.4]
- обновление до 1.11.2
- исправление ошибки написания в config.yml

[2.3.3]
- долгожданный дебаг
- исправление ошибки с проверкой по wg/out
- исправление ошибок с сообщениями
- исправление ошибки с наполнением ведра
- изменение алгоритма создания и обработки конфигов

- правила piston_extend и piston_retract добaвлены в PermissionsList
#piston_extend.[blockName]
#piston_retract.[blockName]
#дружит с .wg и .out, но по своему, без учёта владельца поршня
#если .wg, то запрет работает только в регионах
#если .out, то запрет работает только за пределами регионов

- значение задержки сообщения игроку выведено в конфиг
- некоторые сообщения выведены в message_ru

[2.3.2_unstable_v1]
- оптимизация, улучшение кода.
- зачатки API для сторонних разработчиков.
- переработаны команды.
- добавлена возможность "замутить" строку в PermissionsList. То есть при срабатывании запрета игрок ничего не сулышит в чате.
# на окончание добавить .mute
- в связи с этим отключена опция удаления строк из конфига с сообщениями. Теперь они там есть всегда.
- изменены окончания, добавлены алиасы.
#c / на
#wg / wg, private
#wg|x / wg:x, private:x
#remove|x / remove:x, rm:x
#@M| / message: , msg:
#П.С. возможно использование нескольких сразу. пример - -place|right_click_air.stone|dirt.rm:20.wg:10.mute
- добавлены логи при ошибках подгрузки строки из PermissionsList
- сделаны рычаги лёгкой сборки урезанной версии. Что бы люди больше тестировали плагин ;)
- допустил ошибку в коде тестировщика, и подумал что после оптимизации производительность упала больше чем в 10 раз(в 35 если быть точнее).
#Пока пол дня искал причину, нашёл пару узких мест и ускорил плагин в 3 раза по сравнению с [2.3.1_unstable_v6]....
#п.с. для тех кто не понимает откуда берётся ускорение:
#Замена медленных методов, организация структуры, и уход от String значений - операции с ними очень медленные....

[2.3.1_unstable_v6]
- убраны rightclick, rightclickon, shift_rightclickon, leftclick, leftclickon
- добавлены:
#left_click_air
#shift_left_click_air
#left_click_block
#shift_left_click_block
#right_click_air
#shift_right_click_air
#right_click_block
#shift_right_click_block
#physical
[2.3.1_unstable_v5]
- исправление double_opening при shift_right_click
[2.3.1_unstable_v4]
- исправление спама в консоль
- исправление ошибки при правом клике
- исправление replacer.txt - теперь ему всё равно на регистр, так же он поддерживает NBT
# stone:0{!{}} или sand{{}} или dirt:*{this is}
- исправление ошибки с * в правах PermissionsList
- исправление ошибки с левым/правым кликом без предмета
- иправление сообщения с левым/правым кликом по блоку
[2.3.1_unstable_v3]
- оптимизация проверки прав ношения, добавлена проверка и лишение брони/второй руки
- исправление ошибок
[2.3.1_unstable_v2]
- исправление нескольких ошибок
[2.3.1_unstable_v1]
- оптимизация, частичный уход от String значений и переход на enum, так же замена ArrayList на Array
 
Последнее редактирование:
Привет всем. Как в новой версии крафт запретить? Хочу обновить на версию повыше, потому что старая в консоль ошибки выкидывает чуть ли не каждую минуту.
@MOR_IV Привет, как в новой версии крафт запретить?
 
Привет всем. Как в новой версии крафт запретить? Хочу обновить на версию повыше, потому что старая в консоль ошибки выкидывает чуть ли не каждую минуту.
@MOR_IV Привет, как в новой версии крафт запретить?
Всё так же.

Я подтянул описание. Если где ошибся или не дописал - ткните носом.
[2.3.6]
[2.3.6]
- исправлен баг с /mb reload (не все листы перезагружались)
- добавлено правило opening.[itemName].[blockName]
# itemName - предмет в руках
# blockName - открываемый предмет
# отличие от right_click_block - opening закрывает инвентарь через один тик.

[2.3.5]
- исправлен не рабочий double_opening

[2.3.7]
[2.3.7] от 05.02.2017
- исправлена редкая ошибка с "Could not pass event InventoryClickEvent to MineBlocker v2.3.6......."
- добавлено взаимодействие с табличками.
#окончание ".sign:текстСтроки"
# - -right_click_block.*.*.sign:[private]
#если на блоке нет таблички со строкой(должна быть приклеена к самому блоку), то запрет не работает.
#возможно разместить табличку под блок на глубину в 1 и в 2 блока(спрятать так сказать), так же над блоком в высоту 1 блок. В таком случае всё равно в каком виде табличка(приклеена или стоймя).
- добавлен вариант секции в PermissionList.
#ПРИМЕР
#sample:
# sign:
# - '[public]'
# permissions:
# - right_click_block.*.*
# - damage.*
#
#п.с. Почему [public] в ковычках? Online YAML Parser в помощь.
#
#таблички работают пока только с:
#left_click_block.[itemName].[blockName]
#shift_left_click_block.[itemName].[blockName]
#right_click_block.[itemName].[blockName||entityName]
#shift_right_click_block.[itemName].[blockName||entityName]
#opening.[itemName].[blockName]
#damage.[entityName]

[2.3.8]
[2.3.8] от 09.02.2017
- Добавлена возможность использования нескольких data. itemName:data1:data2:data3:data....
#place.stone:0:1:2:3:4:5:6
- Улучшение в коде плагина.
 
f811caa7d488fab40d86f09ed54d4f8a.png

Можно как то исправить ?
На сервере TPS = 7.72
Если отключить плагин, то сразу подывается до 19
 

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

Назад
Верх