Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.

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

Тема в разделе "Неподтвержденные плагины", создана пользователем MOR_IV, 8 ноя 2014.

  1. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    MineBlocker - запреты взаимодействия предметами с миром.​
    Версия: v_0.2.5 - бесплатная, с урезанным функционалом. СКАЧАТЬ
    Версия: v_2.3.0 - приватная, 300р со всеми будущими обновлениями.
    п.с. Плагин разросся с одного класса и сотни строк, до 90 и 6к строк.....
    Все что будет подчеркнуто, то это может только приватная версия.

    Данный плагин работает как ModifyWorld, но более гибкий и поддерживает плагины приватов и групп. Поддерживает моды (но не всегда).
    Умеет:
    - Запрещать установку блока игроком
    - Запрещать установку блоков рядом друг с другом
    - Запрещать ломать блок игроком
    - Запрещать правый/левый клик мышью с предметом в руке
    - Запрещать правый клик/shift+Правый клик по блоку или энтити
    - Запретить правый/левый клик по предмету в инвентаре
    - Запрещать подбирать предмет
    - Запрещать выбрасывать предмет
    - Запрещать хранить в инвентаре предмет, так же может проверять по времени
    - Проверять предмет на превышение максимального количества в слоте
    - Запретить передвигать по инвентарю предмет
    - Запрещать бить энтити
    - Запрещать ванильный крафт
    - Запрещать операции с ведром(вылить, наполнить)
    - Взаимодействовать с WorldGuard
    - Взаимодействовать с PreciousStones
    - Имеет собственный Permissions лист.
    - Имеет поддержку ID или(и) NAME ++ meta
    - Имеет поддержку NBT тегов (крайне не заменимо в модах)
    - Имеет настройку (поддержку) предметов с большой дальностью кликов

    - Запрещать поршням двигать предметы
    - Назначать каждому запрету свое сообщение

    П.С. - умеет запрещать в чужом регионе, возле чужого региона с фиксируемым расстоянием, так и за пределами своего. Так же может игнорировать OP ("*") игрока.
    Так же в PermissionsList можно устанавливать права в определенных регионах, мирах, группах и режимах игры.

    В PermissionsList можно:
    1) создавать группы запретов, которые действуют глобально или только в:
    - мирах
    - группах PermissionsEx или любых других плагинов которые поддерживают Vault(необходим vault)
    - определенных регионах WG/PS (по именам)
    - режимах игры
    - так же парами или все сразу. пример(только для группы, только в этом мире, только в этом регионе и этом режиме игры)
    2) распределять запреты на 4 вида:
    - действуют везде
    - действуют только в чужом регионе (на конце ".wg")
    - действуют в чужом регионе и возле него (на конце ".wg|расстояние")
    - действуют только за пределами своего региона (на конце ".out")
    3) вписывать как запреты так и разрешения
    4) назначить свои сообщения для каждого запрета

    Можно вписать в плагин привилегий или в PermissionsList
    - -mineblocker.place.[имя] - Запрет установки
    - -mineblocker.place_near.[перм] - Запрет установки рядом с другим блоком(об этом ниже)
    - -mineblocker.break.[имя] - Запрет ломать блок
    - -mineblocker.packup.[имя] - Запрет подбирать
    - -mineblocker.drop.[имя] - Запрет выбрасывать
    - -mineblocker.have.[имя] - Запрет носить
    - -mineblocker.invclick.[имя] - Запрет передвигать предмет по инвентарю
    - -mineblocker.invclick_creative.[имя] - Запрет передвигать предмет по инвентарю в творческом режиме игры. Им можно запретить брать предметы из креатива, клонировать предметы, выкладывать в сундук и не только.
    - -mineblocker.invclick_left.[имя] - Запрет левого клика в инвентаре по предмету
    - -mineblocker.invclick_right.[имя] - Запрет правого клика в инвентаре по предмету
    - -mineblocker.damage.[имя] - Запрет бить энтити
    - -mineblocker.craft.[имя] - Запрет крафта
    - -mineblocker.bucket_fill.[имя] - Запрет наполнения ведра
    - -mineblocker.bucket_empty.[имя] - Запрет выливания из ведра
    - -mineblocker.leftclick.[имя] - Запрет левого клика мышью по воздуху
    - -mineblocker.leftclickon.[имя Предмета в руке].[Имя Блока] - Запрет левого клика мышью по блоку
    - -mineblocker.rightclick.[имя] - Запрет правого клика мышью по воздуху
    - -mineblocker.rightclickon.[имя Предмета в руке].[Имя Блока или Ентити] - Запрет правого клика мыши по блоку, или по энтити(рамки, мобы)
    - -mineblocker.shift_rightclickon.[имя Предмета в руке].[Имя Блока или Ентити] - Запрет правого клика мыши + shift по блоку или по энтити(рамки, мобы)
    - mineblocker.* - это надо вписать в плагин разрешений(PEX и т.п.). Разрешить делать все. (без этого нельзя будет делать ничего!!)

    - MineBlockerUtils.bypass - выключение проверки игрока по PermList. это работает в случае настройки в конфиге "op-bypass-permissions-list: true"

    Если на окончание добавить .wg - то действие работает только в том регионе, в котором игрок не записан в хозяины или жители региона.
    Если добавить .wg|расстояние, то действие работает не только в регионе, но и возле него.
    Пример
    - -mineblocker.packup.*.wg - запрет подбора всех предметов в чужом регионе
    - -mineblocker.rightclickon.*.wg - запрет правого клика с любым предметом по любому блоку в чужом регионе
    - -mineblocker.packup.*.wg|3 - запрет подбора всех предметов в чужом регионе и на расстоянии в 3 блока от него

    Если на окончание добавить .out - то действие работает только за пределами "своего" региона. "Свой регион" - это в котором игрок является хозяином или жителем.
    Пример
    - -mineblocker.packup.*.out- запрет подбора всех предметов за пределами своего региона
    - -mineblocker.rightclickon.*.out - запрет правого клика с любым предметом по любому блоку за пределами своего региона

    Доступ к командам перм: MineBlockerUtils.operator
    /mb info - узнать имя предмета, блока, энтити рядом с блоком(если оно там есть)
    /mb reload - перезагрузка плагина(в случает включения/выключения слушателей(listener), необходима перезагрузка сервера
    /mb permissionslist|plist|pl [имя секции] add|remove group|region|world|permission|gamemode [значение] - команда которая добавляет / удаляет из секции группу / регион / мир / право / режим игры. Полностью поддерживает кнопку [Tab] от начала до конца. Ставить надо только пробелы. если с permisson , то там еще и точки. Пример /mb plist test_1 add permission -drop.stone:* добавит запрет выбрасывания камня в секции test_1

    Плагин блокирует только то, что ему указали. Так если запретить ношение предмета, не будет запрещен его подбор, так же если запретить "клик в воздухе", то не будет запрещен "клик по блоку" и "shift + клик по блоку". Что бы обойти это надо писать запреты правильно. Примеры c камнем:
    - -mineblocker.have|packup.stone
    - -mineblocker.rightclick|rightclickon|shift_rightclickon.stone

    Так же если вы хотите полностью заблокировать предмет, то в PL надо вписать - -mineblocker.*.stone

    При выполнении действия игроком плагин проверяет это действие на запреты. Берет предмет, цель, место действия и проверяет по спискам запретов.
    Премет(П) - то, чем выполняется действие, или то, с чем взаимодействует игрок
    Цель(Ц) - то, на что будет воздействие предметом
    Локация(Л) - то место, которое будет проверятся как место действия;
    Записи запретов имеют вид "действие.предмет" или "действие.предмет.цель";

    place - П: устанавливаемый блок Л: место устанавливаемого блока
    break - П: ломаемый блок Л: место ломаемого блока
    packup - П: подбираемый стак Л: место стака
    drop - П: выбрасываемый стак Л: игрок
    have - П: стак в инвентаре Л: игрок
    invclick/invclick_creative/invclick_left/invclick_right - П: стак и инвентаре Л: игрок
    damage - П: энтити Л: энтити
    craft - П: стак получаемый при крафте Л: игрок
    leftclick/rightclick - П: стак в руке Л: игрок
    leftclickon/rightclickon/shift_rightclickon - П: стак в руке Ц: блок, с которым взаимодействует игрок Л: блок

    damage - работает при ударе ентити предметом, так же если ИГРОК запускает снаряд в энтити;
    leftclick/rightclick - по умолчанию проверяет клик по воздуху, но если предмет в руке имеется в списке RangeItems, то берется дистанция из этого списка и по направлению взгляда игрока ищется блок на эту дистанцию, если блок найден, то идет дополнительная проверка права leftclickon/rightclickon/shift_rightclickon в зависимости от действия;

    .wg - проверяет Локацию на наличие там чужого региона
    .wg|дистанция - берется Локация действия, вокрук неё создается невидимый квадратный регион со сторонами "дистанция * 2", проверяется на пересечение с чужими.
    .out - проверяет Локацию на наличие своего региона

    Код (Text):
    1.  
    2. enable-itemName(true-name,false-id): true #выбор имени или ID
    3. enable-metadata: true #использовать ли meta у предмета
    4. enable-NBT-tags: false #включены ли NBT теги
    5. use-WorldGuard: true #приоритет использования WorldGuard / false = PreciousStones
    6. enable-check-op-in-private: true #проверка OP в привате, если включено игнорирует WG.bypass
    7. enable-check-player-permissions: false #включена ли проверка по стандартному плагину разрешений
    8. place-block-name-inHand: false #генерация имени устанавливаемого блока true - будет взято имя предмета в руке, false - имя устанавливаемого блока
    9. enable-permissions-list: true #включен ли пермиссонс лист плагина
    10. op-bypass-permissions-list: false #обход опом перм листа "MineBlockerUtils.bypass"
    11. have-task-timer-time: 0 #проверка инвентарей игроков на контрабанду. Время в секундах.
    12. block-break-listener: #эвент ломания блока
    13.   enabled: true #включен ли
    14.   have-check: false #проверять ли игрока на контрабанду при каждом ломании блока(Не рекомендую)
    15. block-place-listener: #эвент установки блока
    16.   enabled: true
    17.   have-check: false
    18.   enable-near-check: false #проверка устанавливаемых рядом блоков на запреты
    19. drop-listener: #эвент выбрасывания предмета
    20.   enabled: true
    21.   have-check: false
    22. packup-listener: #эвент подбора предмета
    23.   enabled: true
    24.   have-check: false
    25. craft-listener: #эвент крафта
    26.   enabled: true
    27.   have-check: false
    28. have-listener: #эвент ношения(контрабанда)
    29.   enabled: true
    30.   drop-item: true
    31.   max-stack-size-check: true #проверка всех предметов на превышение максимального размера стака
    32. damage-entity-listener: #эвент удара по мобу
    33.   enabled: true
    34.   have-check: false
    35. inventory-click-listener: #эвент клика в инвентаре
    36.   enabled: true
    37.   have-check: false
    38. left-click-listener: #эвент левого клика
    39.   enabled: true
    40.   have-check: false
    41.   click-air: true #в воздухе
    42.   click-block: true #по блоку
    43. right-click-listener: #евент правого клика
    44.   enabled: true
    45.   have-check: false
    46.   click-air: true
    47.   click-block: true
    48.   shift-click-block: true #по блоку с шифтом
    49. bucket-listener-empty: #эвент выливания ведра
    50.   enabled: true
    51.   have-check: false
    52. bucket-listener-fill: #эвент наполнения ведра
    53.   enabled: true
    54.   have-check: false
    55. piston-black-list: true #включение работы поршней по черному списку
    56.  

    В листе можно как запретить, так и разрешить. Запрет "- -", разрешение "- ", можно записать несколько значений типа права и предмета в строку через "|", предмету можно дать NBT тег. Так же добавлены такие понятия как не пустой NBT {!{}} и пустой NBT {{}} тег.
    Примеры: dirt:0{1, 2, 3, !4, !5, +6, +7} земля c NBT: Включает 1 или 2 или 3, так же не включает 4 и 5, так же включает 6 и 7;
    dirt{!{}} земля с не пустым NBT;
    dirt{{}} земля с пустым NBT тегом;
    PermissionsList претерпел много изменений. Теперь он поделен на секции, которые не зависят друг от друга. Секций может быть сколько угодно и имя секции влияет только на доступ к ней командой. Важно: имена секций не должны повторяться.
    Ниже секция test_1 действует для всех, во всех мирах.
    Если добавить список:
    worlds: то будет действовать только в мирах из списка;
    groups: то только для групп;
    regions: то только в регионах из списка;
    gamemodes: то только если игрок находится в режиме игры из списка.

    Если все сразу, то только для групп в мирах, в регионах и в режимах игры с именами из списков.
    Лист отлично понимает "*" в имени предметов, в начале права не надо писать "mineblocker.". Если опустить значение мета, то будет взята мета "*". Примеры: drop|packup.dirt|wool:3.wg | invclick|rightclickon|shift_rightclickon.*{!{}}.item_frame
    Так же если у игрока забрать право, а потом вернуть в другой секции, то у него не будет запрета. Попрошу внимательно к этому отнестись.
    Код (Text):
    1.  
    2. test_1:
    3.   permissions:
    4.   - -drop.stone:0.wg
    5.   - -craft.stick:0.out
    6.   - -rightclickon.dirt:0.item_frame
    7.   - -place_near.all
    8.   - -have.*{ggg}
    9.   - -place|drop.stone:0|dirt:0
    10.   - -invclick_left.stone:0
    11. test_2:
    12.   worlds:
    13.   - world
    14.   - nether
    15.   regions:
    16.   - spawn
    17.   - mine
    18.   groups:
    19.   - pvp
    20.   - vip
    21.   gamemodes:
    22.   - creative
    23.   - survival
    24.   permissions:
    25.   - drop.stone:0
    26.   - rightclickon.iron_pickaxe.furnace.wg|5
    27.  
    Введена возможность назначить каждому запрету свое сообщение.
    На конец запрета надо добавить "@M|" без кавычек, а после него писать свое сообщение.
    Плагин понимает все эти варианты. Online YAML Parser в помощь. Не забываем про кодировку UTF-8:
    Код (Text):
    1. sample:
    2.   permissions:
    3.   - -packup.stone@M|
    4.     &aВы не можете подбирать &6камень &aпотому, что сервер так решил.
    5.   - -drop.stone:0@M|&aВы не можете выбрасывать &6камень &aпотому, что у вас злая администрация.
    6.   - -damage.villager
    7.     @M| &4Я супер житель,
    8.     ты не можешь
    9.     меня бить.

    Черный список блоков у поршней. Имеет поддержку NBT. Настраивается по каждому миру или по всем сразу.
    Код (Text):
    1. AllWorlds:
    2. - sample
    3. - sample:0
    4. - sample:0{nbt}
    5. world:
    6. - '*{!{}}'
    7. - sample:0
    8. - sample:0{nbt}


    ||||||||||||||||||||||||||||||||||||||||||
    Продолжение ниже!
     
    Последнее редактирование: 11 окт 2016
  2. Mr Hosting
  3. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Это лист с правилами, в нем можно настраивать правила на установку блоков рядом друг с другом, если внести в правило несколько блоков, то их нельзя будет ставить вблизи. Разным группам(игрокам) можно раздать разные правила. Если внести 2 раза одно имя, то блок нельзя будет ставить рядом с самим собой.
    - mineblocker.place_near.[правило] - дав игроку игроку (или вписав в пермлист - -mineblocker.place_near.[правило] мы запретим список с именем [правило]
    можно вписать так: - mineblocker.place_near.all
    тогда все правила будут действовать на игрока
    Код (Text):
    1.  
    2. perm1:  ##правило, добавлять можно в список сколько угодно много блоков.
    3. - stone:0
    4. - grass:0{id:1}
    5. perm2: ##так же правил можно вписывать сколько угодно
    6. - name_block1
    7. - name_block2
    8. - name_block3
    9.  

    В этих файлах можно переназначать имена и делать объединения предметов / блоков / разрешений. Потом эти имена можно использовать в правилах установки блоков рядом друг с другом и в PermissionsList.
    Имена предметов поддерживают мета. Если не указать то "имя" = "имя:*"
    Так же поддерживают NBT. записать предмет можно так же как - '*{!{}}' что эквивалентно "любой предмет/блок с не пустым NBT тегом". Одинарные кавычки обязательны из-за правил заполнения yml.
    Важно: Что бы все работало нормально с русским языком, нужно что бы все файлы и символы были в кодировке UTF-8(Без BOM)!!!
    Код (Text):
    1. all_swords:
    2. - wood_sword
    3. - stone_sword
    4. - iron_sword
    5. - gold_sword
    6. - diamond_sword
    7. all_pickaxe:
    8. - wood_pickaxe
    9. - stone_pickaxe
    10. - iron_pickaxe
    11. - gold_pickaxe
    12. - diamond_pickaxe
    13. поршень:
    14. - piston_base
    15. - piston_sticky_base
    Код (Text):
    1. правый_клик:
    2. - rightclick
    3. - rightclickon
    4. - shift_rightclickon
    5. левый_клик:
    6. - leftclick
    7. - leftclickon
    8. custom_packup:
    9. - packup
    10. - have
    11. full_ban:
    12. - place
    13. - break
    14. - packup
    15. - have
    16. - damage
    17. - craft
    18. - rightclick
    19. - rightclickon
    20. - shift_rightclickon
    21. - leftclick
    22. - leftclickon
    23.  
    Примеры использования этих прав и имен:
    Код (Text):
    1. test:
    2.   permissions:
    3.   - -правый_клик|левый_клик.all_swords|all_pickaxe.поршень.wg
    4.   - -custom_packup.sponge
    5.   - -full_ban.stone
    6.   - -place.поршень

    Список дальнобойных предметов. Записи в столбик, NBT+.
    Писать в виде "предмет|дистанция"
    Код (Text):
    1. sample|20
    2. sample:0|20
    3. sample:0{nbt}|30

    Переименовывание запрещенного предмета в сообщении игроку. (пока нет поддержки NBT и цветов)
    Код (Text):
    1. stone:0|Супер Камень
    2. wood:0|Железное дерево

    Листы регионов по мирам, в которых не надо проверять запреты. Например автошахта.
    Миров и регионов можно вносить сколько угодно.
    Код (Text):
    1. world:
    2. - mine_car
    Добавит в игнор регион с именем mine_car в мире world.

    Тут хранятся сообщения плагина. Все ключи сообщений идентичны именам запретов. Он хранит типовые сообщения и изменяет у них окончания и мена предметов в зависимости от ситуации. Если удалить какой-либо ключ запрета, то сообщение о запрете просто не будет отображаться. Исключения "inform, informBlock, informEntity, reload и все *_end_offers".Если вы хотите пересоздать стандартные сообщения, то выключите сервер, удалите файл, или очистите его полностью. Так же если отсутствует "file_version_NOT_CHANGE!!!" или имеет не то значение, то файл будет переименован в MessageRU_old, а в место него будет создан чистый.

    украли

    Лог изменений:
    v2.2.5
    09.04.2016 г.
     
    Последнее редактирование: 26 апр 2016
  4. RespectDDD

    RespectDDD Активный участник Пользователь

    Баллы:
    76
    Skype:
    netu_logina3
    Нету смысла в этом плагине
    Ибо полная копия LokiBlocker`a
     
    Последнее редактирование: 8 ноя 2014
  5. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Ну кому как. Я же не заставляю его юзать. Писал для себя. Кинул всем, может кто возьмет.
    Этот легче. Заточен чисто под имена предметов, а не id. Не надо лезть постоянно в конфиги. Право поменял и все. Потом допишу еще чего-нибудь в него. Есть мысли.

    З.ы. Ну и можно было просто промолчать....
     
  6. tipson

    tipson Старожил Пользователь

    Баллы:
    153
    Skype:
    T-oleg98
    Имя в Minecraft:
    Tipson
    Для большей пользы можно встроить в плагин "anti": мат, капс, флуд и т.д.
     
  7. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Тут этого пока точно не будет. Потому как это не плагин чата и к чату отношения не имеет.
    Сейчас пилю клик предметом в блок....
     
  8. Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Можно в новой версии добавить интеграцию с WG
     
  9. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Какого рода интеграция нужна?
     
  10. Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Чтобы в регионе запрещало левый клик и правый
     
  11. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    А это мысль. Попробую прикрутить.
     
  12. RespectDDD

    RespectDDD Активный участник Пользователь

    Баллы:
    76
    Skype:
    netu_logina3
    Если ты про то что стоит на CenturyMine, то у них мод стоит.
    Хотя если бы автор прикрутил такую фишку в свой плагин, то вполне возможно он станет востребованным.
     
    Последнее редактирование: 9 ноя 2014
  13. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Прошу. Версия MineBlocker 0.2 интегрировал WG и добавил эвент правого клика по блоку с блоком в руке(без).
    Для нормальной работы удалите конфиг, или скопируйте из шапки.
    Тестим...
     
  14. Hilgert

    Hilgert Старожил Пользователь

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    И так, приступим.
    Класс: FontFormat... зачем? чем ChatColor не угодил?

    А это?
    Код (Javascript):
    1.    if (!this.config.isConfigurationSection("message"))
    2.     {
    3.       this.config.set("enabled", Boolean.valueOf(true));
    4.       this.config.set("message.enabled", Boolean.valueOf(true));
    5.       this.config.set("message.place", "&f[&2MineBlocker&f]&4 &aВам запрещено &9ставить &4{NameMaterial}");
    6.       this.config.set("message.packup", "&f[&2MineBlocker&f]&4 &aВам запрещено &9подбирать &4{NameMaterial}");
    7.       this.config.set("message.have", "&f[&2MineBlocker&f]&4 &aВам запрещено &9хранить &4{NameMaterial}");
    8.       this.config.set("message.leftclick", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9левую &aкнопку c &4{NameMaterial}");
    9.       this.config.set("message.rightclick", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9правую &aкнопку c &4{NameMaterial}");
    10.       this.config.set("message.leftclickon", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9левую &aкнопку c блоком в руке/на блок &4{NameMaterial}");
    11.       this.config.set("message.rightclickon", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9правую &aкнопку c блоком в руке/на блок &4{NameMaterial}");
    12.       this.config.set("message.inform", "&f[&2MineBlocker&f]&4 &aУ Вас в руках &4{NameMaterial}");
    13.       this.config.set("message.reload", "&f[&2MineBlocker&f]&4 &a плагин перезагружен!");
    14.       this.config.set("message.wg.place", "&f[&2MineBlocker&f]&4 &aВам запрещено &9ставить &4{NameMaterial} &aв этом регионе");
    15.       this.config.set("message.wg.packup", "&f[&2MineBlocker&f]&4 &aВам запрещено &9подбирать &4{NameMaterial} &aв этом регионе");
    16.       this.config.set("message.wg.have", "&f[&2MineBlocker&f]&4 &aВам запрещено &9хранить &4{NameMaterial} &aв этом регионе");
    17.       this.config.set("message.wg.leftclick", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9левую &aкнопку c &4{NameMaterial} &aв этом регионе");
    18.       this.config.set("message.wg.rightclick", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9правую &aкнопку c &4{NameMaterial} &aв этом регионе");
    19.       this.config.set("message.wg.leftclickon", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9левую &aкнопку c блоком в руке/на блок &4{NameMaterial} &aв этом регионе");
    20.       this.config.set("message.wg.rightclickon", "&f[&2MineBlocker&f]&4 &aВам запрещено использовать &9правую &aкнопку c блоком в руке/на блок &4{NameMaterial} &aв этом регионе");
    21.  
    22.       saveConfig();
    23.       ReloadConfig();
    24.     }

    Код (Javascript):
    1.  
    2. config.addDefault("key", "value");
    3. config.options.copyDefaults(true);
    4. saveConfig();
    тоже для слабаков?

    А это как понимать?
    Код (Javascript):
    1.  
    2.     boolean enabled = this.config.getBoolean("enabled");
    3.     if (enabled == Boolean.valueOf(true).booleanValue()) {
    4.       Bukkit.getPluginManager().registerEvents(this, this);
    5.     }
    6.  

    Можно заменить этим:
    Код (Javascript):
    1.  
    2. this.setEnabled(config.getBoolean("enabled");
    3.  

    Чем же они отличаются? во 2м варианте если плагин выключен(в конфиге), то он не будет лежать в памяти.
    Код (Javascript):
    1.  
    2.   public void ReloadConfig()
    3.   {
    4.     this.messagePlace = this.config.getString("message.place");
    5.     this.messagePackup = this.config.getString("message.packup");
    6.     this.messageHave = this.config.getString("message.have");
    7.     this.messageLeftinteract = this.config.getString("message.leftclick");
    8.     this.messageRightinteract = this.config.getString("message.rightclick");
    9.     this.messageLeftinteracton = this.config.getString("message.leftclickon");
    10.     this.messageRightinteracton = this.config.getString("message.rightclickon");
    11.     this.messageInform = this.config.getString("message.inform");
    12.     this.messageReload = this.config.getString("message.reload");
    13.     this.messagePlaceWg = this.config.getString("message.wg.place");
    14.     this.messagePackupWg = this.config.getString("message.wg.packup");
    15.     this.messageHaveWg = this.config.getString("message.wg.have");
    16.     this.messageLeftinteractWg = this.config.getString("message.wg.leftclick");
    17.     this.messageRightinteractWg = this.config.getString("message.wg.rightclick");
    18.     this.messageLeftinteractonWg = this.config.getString("message.wg.leftclickon");
    19.     this.messageRightinteractonWg = this.config.getString("message.wg.rightclickon");
    20.   }
    21.  
    =>
    Код (Javascript):
    1.  
    2. public void reloadConfig(){
    3. config = YamlConfiguration.loadConfiguration(new File(this.getDataFolder(), "config.yml"));
    4. }
    5.  


    Ужс, просто ужс :c
    Код ( (Unknown Language)):
    1.  
    2.   protected void checkPlayerInventory(Player player)
    3.   {
    4.     Inventory inventory = player.getInventory();
    5.     for (ItemStack stack : inventory.getContents()) {
    6.       if (stack != null)
    7.       {
    8.         String permission = assemblePermission(player, "mineblocker.have", new Object[] { stack });
    9.         StringBuilder builder = new StringBuilder(permission);
    10.         builder.append(".wg");
    11.         if (!player.hasPermission(permission))
    12.         {
    13.           if (sendMessage(player, "mineblocker.have", permission))
    14.           {
    15.             inventory.remove(stack);
    16.             player.getWorld().dropItemNaturally(player.getLocation(), stack);
    17.           }
    18.         }
    19.         else if (!player.hasPermission(builder.toString()))
    20.         {
    21.           Location loc = player.getLocation();
    22.           UUID UUID = player.getUniqueId();
    23.           if ((!WorldGuardHook.inPlayerHaveAccessInRegion(loc, UUID)) &&
    24.             (sendMessage(player, "mineblocker.have", permission)))
    25.           {
    26.             inventory.remove(stack);
    27.             player.getWorld().dropItemNaturally(player.getLocation(), stack);
    28.           }
    29.         }
    30.       }
    31.     }
    32.   }
    33.  

    Код (Text):
    1. if(inventory.contains(ItemStack) && проверка на пермишнс){
    2. inventory.remoev(ItemStack);
    3. }

    А проверка находится ли игрок в регионе или нет, это что вообще? держи нормальный код

    Код (Javascript):
    1.  
    2.             boolean canBuild = wg.getGlobalRegionManager().canBuild(игрок, локация) && wg.getGlobalRegionManager().canConstruct(игрок, локация);
    3.  
    4.             if(!canBuild){ //Игрок не находится в привате }
    5.  
    Говнокода конечно очень много, мне аж лень стало всё это писать,
     
  15. Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Кстати, а на 1.6.4 пойдёт?
     
  16. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV

    Конечно прошу прощения. Ну как мог, так и написал. Прислушаюсь, подрихтую. В java почти ноль, да и api плохо знаю. А так спасибо за то, что подсказали.
    --- Сообщения объединены: 9 ноя 2014, предыдущее сообщение: 9 ноя 2014 ---
    Н
    Врятли. Т.к юзаю uuid
     
  17. Hilgert

    Hilgert Старожил Пользователь

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    В новых версиях не обязательно использовать UUID. И если методы использованные в плагине не отличаются в других версиях, то можно использовать на 1.6.4 и тд c:
     
  18. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Потом может попробую сделать поддержку 1.6.4
    Что ещё прикрутить к плагину?

    @Hilgert и в дополнение. Для меня вообще большое достижение, что это все работает ;)
    Спасибо ещё раз.
    --- Сообщения объединены: 9 ноя 2014, предыдущее сообщение: 9 ноя 2014 ---
    Попробую убрать getUniqueId из плагина. Вроде только оно мешает...
    --- Сообщения объединены: 9 ноя 2014 ---

    Не могу что-то это притулить.
    Разобрался
    --- Сообщения объединены: 9 ноя 2014 ---

    Убрал uuid, но у меня умер ноут. Почему не знаю. Завис и погас экран. Не включается. Буду ломать.
    Так что пока не обновлю плагин.
    --- Сообщения объединены: 9 ноя 2014 ---
    - Ноут завел. Походу оператива крякнула. Вытащил 8Gb RAM.... Вроде полет нормальный.
     
    Последнее редактирование: 9 ноя 2014
  19. Beatboxer

    Beatboxer Старожил Пользователь

    Баллы:
    123
    Skype:
    beatbox603
    Сделай проверку на Shift+ПКМ
     
  20. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Отдельно от всего? Просто rightclickon тоже это отлавливает...
    --- Сообщения объединены: 11 ноя 2014, предыдущее сообщение: 10 ноя 2014 ---
    Что то я не могу найти проверку на шифт. В PlayerInteractEvent нет её. Кто подскажет может как сделать?
    Нашёл...
    --- Сообщения объединены: 11 ноя 2014 ---
    @Beatboxer Вам надо проверку в инвентаре? Или по блоку на земле?
    Прикручу потом ещё эвент клика по энтити. Животным например.
     
  21. Beatboxer

    Beatboxer Старожил Пользователь

    Баллы:
    123
    Skype:
    beatbox603
    По блоку на земле :)
     

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