Помогите MachineGuard

  • Автор темы Автор темы Uran
  • Дата начала Дата начала

Uran

Старожил
Баллы
103
Имя в Minecraft
Uran
Вообщем, создаю сервер с такими модами как IC2 и BC3. Возникла проблема, что любой блок из модов можно ставить на заприваченную территорию, а вот ломать нельзя. Вообщем нашёл такой аддон к WorldGuard, называется MachineGuard, но вот толку данный аддон не дал (id'шники в config'е прописал правильно, где-то раз 5 тестировал и даже пробовал к id "x" приписывать). К счастью отыскал на официальном форуме исходники (source) к MachineGuard, скачал их и открываю через NetBeans и нашёл в одном java файле строчки:
if(plugin.isBlocked(id)) {
if(!wg.canBuild(event.getPlayer(), event.getClickedBlock().getLocation())) {
event.getPlayer().sendMessage(plugin.msg);
event.setCancelled(true);
}
}
В Java языке почти ничего не знаю, но как я понял к примеру: "event.getClickedBlock()" отвечает за то, что ты кликаешь по блоку и плагин выводит сообщение "event.getPlayer().sendMessage(plugin.msg);" и отменяет это "event.setCancelled(true);". Вообщем с балды попытался добавить значение "BlockPlaceEvent()" (судя по названию, значение обозначает то, что игрок ставит блок) и добавил вверху import вот так "import org.bukkit.event.block.BlockPlaceEvent;", предварительно загрузив в библиотеки NetBeans - Bukkit и WorldGuard (без них никак). Вообщем в строчки получились такие:

if(plugin.isBlocked(id)) {

if(!wg.canBuild(event.getPlayer(), BlockPlaceEvent(), event.getClickedBlock().getLocation())) {
event.getPlayer().sendMessage(plugin.msg);
event.setCancelled(true);
}


}
В итоге при компиляции выдаёт одну ошибку:
C:\plugins\MachineGuard\MachineGuard\src\me\hqSparx\MachineGuard\MGListener.java:28: error: cannot find symbol
if(!wg.canBuild(event.getPlayer(), BlockPlaceEvent(), event.getClickedBlock().getLocation())) {
^
symbol: method BlockPlaceEvent()
location: class MGListener
1 error
C:\Users\Админ\Documents\NetBeansProjects\MachineGuard\nbproject\build-impl.xml:915: The following error occurred while executing this line:
C:\Users\Админ\Documents\NetBeansProjects\MachineGuard\nbproject\build-impl.xml:268: Compile failed; see the compiler error output for details.
СБОРКА ЗАВЕРШЕНА СО СБОЕМ (общее время: 0 секунд)

Что только я не пробовал и ставил больше ")" и удалял, и ставил "BlockPlaceEvent()" в другие места, но толку так и не дало. Что делать, как исправить?

P.S На всякий случай, выложу полностью файл java содержащий эти строчки.
P.P.S И ещё раз повторюсь, в java вообщем не разбираюсь (правда когда-то работал с pawn), поэтому всё, что здесь я написал всего-лишь мои предположения и я надеюсь, что кто-нибудь, знающий Java мне поможет и заранее ему огромное спасибо.
 

Вложения

Up, товарищи. Помощь то срочно нужна
 
@Uran, 😁 ну ты полный ЛОЛ 😁. Прописывать надо все блоки 1-4096 и будет отменять клик по всем блокам в привате.
http://alexandrage.dyndns.org:8081/config.yml

Вы хоть внимательно читали, что я написал? Дело в том, что не смотря на то, что я что-то прописываю в config.yml, эти блоки всё равно можно ставить, а вот ломать или взаимодействовать с ними нельзя. Как сделать, чтобы эти блоки нельзя было и ставить на заприваченные территории?
 
Вы хоть внимательно читали, что я написал? Дело в том, что не смотря на то, что я что-то прописываю в config.yml, эти блоки всё равно можно ставить, а вот ломать или взаимодействовать с ними нельзя. Как сделать, чтобы эти блоки нельзя было и ставить на заприваченные территории?

Ну значит ты 1 у нас левый. У всех работает кроме тебя. Прописывать надо не те блоки которые ставятся, а все остальные на которые можно ставить. Так что сам будь по внимательнее.
 
Ну значит ты 1 у нас левый. У всех работает кроме тебя. Прописывать надо не те блоки которые ставятся, а все остальные на которые можно ставить. Так что сам будь по внимательнее.

Всё, понял суть. Прописал к примеру там id 1 и теперь, если территория запривачена и я ставлю блок из IC2 на камень, он не ставится, т.к. территория не моя - впрочем, то что и надо было, спасибо за помощь. А вот ещё вопрос, можно ли как-нибудь (точне, я уверен, что это можно) интегировать WorldGuard и MachineGuard в одно целое, то есть в один плагин и как?
 
Всё, понял суть. Прописал к примеру там id 1 и теперь, если территория запривачена и я ставлю блок из IC2 на камень, он не ставится, т.к. территория не моя - впрочем, то что и надо было, спасибо за помощь. А вот ещё вопрос, можно ли как-нибудь (точне, я уверен, что это можно) интегировать WorldGuard и MachineGuard в одно целое, то есть в один плагин и как?

А зачем? Это каждый рас его вшивать в we? При обновление.
 
А зачем? Это каждый рас его вшивать в we? При обновление.

Мне кажется, что так намного проще. Кто му же версии WE выходят с выходом новых версий игры, а они выходят раз в месяц. Просто уже замучался писать id'шники всех блоков из vanilla, а ведь потом ещё писать и из IC2 и BC3, да и есть вероятность, что какой-либо блок пропущу.
Я вот просто подумал, ведь в MachineGuard где-то есть переменная, которая отвечает за блоки из модов. Вообщем взять эту переменную и куда-нибудь вписать в WE, вполне возможно, правда для того, кто хотя бы на 40% знает java и работает с библиотеками Bukkit
 
Мне кажется, что так намного проще. Кто му же версии WE выходят с выходом новых версий игры, а они выходят раз в месяц. Просто уже замучался писать id'шники всех блоков из vanilla, а ведь потом ещё писать и из IC2 и BC3, да и есть вероятность, что какой-либо блок пропущу.
Я вот просто подумал, ведь в MachineGuard где-то есть переменная, которая отвечает за блоки из модов. Вообщем взять эту переменную и куда-нибудь вписать в WE, вполне возможно, правда для того, кто хотя бы на 40% знает java и работает с библиотеками Bukkit

Я же скинул конфиг там все айдишники 1-4096 И патом там не важно куда писать.
 
Назад
Верх