Иконка ресурса

InvMoveAC | Простенький плагин против InventoryMove 1.4-SNAPSHOT

Нет прав для скачивания

Dozz3s

Пользователь
Сообщения
9
Dozz3s добавил(а) новый ресурс:

InvMoveAC | Простенький плагин против InventoryMove - Плагин, закрывающий инвентарь, если игрок пытается переместить предмет в открытом инвентаре при беге

InvMoveAC - Плагин, закрывающий инвентарь, если игрок пытается переместить предмет в открытом инвентаре при беге. Сделан против мода InventoryMove.

Данный плагин является моим первым. Так что использовать на свой страх и риск! Код может быть плохо оптимизирован, если это так, то опытные люди отпишите, что переделать =)

Узнать больше об этом ресурсе…
 
Оу есть и исходники и желания автора учиться - респект

1-е на что я обратил внимание ... Исходники немного не там, вот хороший пример
2-е - для чего вот это нужно - под большим вопросом (от привидений типов можно избавиться)
3-е - LocationData переиспользуется, плюсик
4-е Это можно в отдельном потоке делать, тк модификаций нет извне - ибануть не должно
5-е Не учтен тот случай, когда игроки выходят с сервера, минус
 
Последнее редактирование:
Вот сейчас в целом норм, правда ты меня малеха не правильно понял с асинхронными задачами

Итерацию по plugin.getServer().getOnlinePlayers() (в теории) безопасно делать асинхронно, обернуть все в try-cath и плевать если оно "иногда" будет выбрасывать исключение "одновременной модификации" в очень редких случаях (я не помню/уверен касательно типа данных, но если это обычный список-массив - то можно получать по индексу, это всегда будет безопасно)

Тк обновления позиции даже в теории может происходить только в 1 месте и только в 1 потоке - никакие синхронизации не нужны (проверка - пнуть игрока если при клике в инвентарь он убежал слишком далеко не должна модифицировать, верно?)
Синхронизация нужна только на добавление / удаление новых позиций, чтобы твоя мапа, где хранятся данные не сдохла
Можно конечно поставить потоко-безопасную мапу, но у них скорость получения значительно ниже, а тк это будет самой частой операцией - лучше будет просто поставить блокировки на модификацию и итерацию (у тебя нет итераций)

Я бы поступил так - попробовал получить (потоко-безопасно), если результат - null, войти в блокировку, добавить (далее твой код). Когда игрок вышел - войти в блокировку и удалить
 
Последнее редактирование:
А забыл сразу сказать - ты немного неправильно используешь систему контроля версий (вручную никто файлы не загружает) ... точнее ты не используешь и 1% от ее реальной силы

Писал об этом, со скринами вот тут
 
Последнее редактирование:
цвета § в коде это треш
offtop
Классика бессмертна + толкать MM только ради сообщения в консольке - крингэ
А вообще по моему такой херней засирать логи нет смысла, ну только если автор уж очень хочет выделиться - его право

+ Такому есть место только в Core-образующем гиганте, но никак не в чем-то прикладном (мое мнение)
 
Последнее редактирование:
В целом все ок, тебе осталось только научиться нормально пользоваться git и можно отправлять делать проекты любой сложности

Единственное, я бы избавился от и выбрал мапу в качестве "обьекта блокировки"

Ну и отрефакторить все, согласно стандартам
 
добавь чтобы я мог сделать кастом команду в консоль после детекта читера, допустим на кик
 
добавь чтобы я мог сделать кастом команду в консоль после детекта читера, допустим на кик
Такая себе идея, т.к в плагине чек происходит через определенную скорость при взаимодействие с инвентарем и у него ясное дело есть ложные детекты. Допустим когда игрок открывает инвентарь в прыжке и резко что-то перемещает его может флагнуть, а в твоем случае еще и кикнуть. Я могу конечно сделать конфиг с настройкой нужной скорости и действием команды после определенного кол-ва детектов у игрока, но я бы все равно не советовал делать кики за это =)
 
Такая себе идея, т.к в плагине чек происходит через определенную скорость при взаимодействие с инвентарем и у него ясное дело есть ложные детекты. Допустим когда игрок открывает инвентарь в прыжке и резко что-то перемещает его может флагнуть, а в твоем случае еще и кикнуть. Я могу конечно сделать конфиг с настройкой нужной скорости и действием команды после определенного кол-ва детектов у игрока, но я бы все равно не советовал делать кики за это =)
мб если по кд пару флагов то какая нибудь команда
 
Назад
Сверху Снизу