Фикс Ивенты для модов [Механизмы работают от имени владельца]

задрал с buildcraft исправь уже дюп в aplait energistics!
какого билд крафт все еще на старой версии?? ты же написал обновил 😠
Простите, вы кто такой, чтобы что-то от меня требовать?
  1. Если вам так нужно обновление, то нужно не требовать, а просто вежливо попросить.
  2. Дюпы и баги я исправляю только в двух ситуациях:
    • Баг достаточно простой, чтобы исправлять его бесплатно.
    • За фикс мне кто-то заплатил.

BuildCraft обновлён до 7.1.16.
 
Последнее редактирование:
Простите, вы кто такой, чтобы что-то от меня требовать?
  1. Если вам так нужно обновление, то нужно не требовать, а просто вежливо попросить.
  2. Дюпы и баги я исправляю только в двух ситуациях:
    • Баг достаточно простой, чтобы исправлять его бесплатно.
    • За фикс мне кто-то заплатил.

BuildCraft обновлён до 7.1.16.
👍
 
Ребят, в общем, у меня есть проблемка :C
Я создал эвент PlayerInteractEvent и отменяю его при определенных событиях. Но кто научит, как правильно подключить пермисшен и юзать его? Т.е к пример как проверить ли у игрока есть право "asd.asd" ? С этого эвента я могу получить ник игрока, либо самого игрока(event.player), но он врядли пойдет если его пихать в баккитовские методы. В общем как делать?
Как подключить его? Просто добавить как ExternalJar в Eclipse? Или как?
Помогите 🙂
 
Ребят, в общем, у меня есть проблемка :C
Я создал эвент PlayerInteractEvent и отменяю его при определенных событиях. Но кто научит, как правильно подключить пермисшен и юзать его? Т.е к пример как проверить ли у игрока есть право "asd.asd" ? С этого эвента я могу получить ник игрока, либо самого игрока(event.player), но он врядли пойдет если его пихать в баккитовские методы. В общем как делать?
Как подключить его? Просто добавить как ExternalJar в Eclipse? Или как?
Помогите 🙂
Код:
 if(player.hasPermission("asd.asd")) {

}
 
Сам не писал, но там пермишенс идет пакетом к твоему классу package.package.class .

Java:
 public class ClassName extends CommandBase {
   public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) {

   {
}
Как то так.
ну т.к это же команда.. Это увы не то, мне надо в любом месте где я захочу залипить проверку ли есть у игрока пермисшен.. Я просто хз как и где подключать либу бакита. И как ее верно юзать? Т.к из эвентов в форже в которых мне надо пилить проверку, я могу получить world,player.
 
ну т.к это же команда.. Это увы не то, мне надо в любом месте где я захочу залипить проверку ли есть у игрока пермисшен.. Я просто хз как и где подключать либу бакита. И как ее верно юзать? Т.к из эвентов в форже в которых мне надо пилить проверку, я могу получить world,player.
Ааааааааа, Ярик, я твой фан
 
Играю на твоём проекте))))
Такие классные модификации делаешь, чёрт
Блин, чет не ожидал такое услышать. Думал реально люди уже держат ниже плинтуса 🙂
Если хочешь, то можешь посоветовать какие то модификации для проекта в лс/скайп (yaroslavmoder), при добавлении ток укажи, что это ты, иначе не добавлю).
Будет приятно поговорить с тобой и узнать твое мнение.
 
Ну так ловишь своим плагином эвент и проверяешь право.
Лол, мне надо в моде чекать ли есть право у игрока. Т.е подключить либу бакита, вроде сам разобрался. Если не будет работать - напишу)
 
ну т.к это же команда.. Это увы не то, мне надо в любом месте где я захочу залипить проверку ли есть у игрока пермисшен.. Я просто хз как и где подключать либу бакита. И как ее верно юзать? Т.к из эвентов в форже в которых мне надо пилить проверку, я могу получить world,player.
  1. Получаем net.minecraft.entity.EntityPlayer нужного игрока.
  2. Конвертируем его в org.bukkit.entity.Player (пример).
  3. Используем обычный Player.hasPermission(String).
 
  1. Получаем net.minecraft.entity.EntityPlayer нужного игрока.
  2. Конвертируем его в org.bukkit.entity.Player (пример).
  3. Используем обычный Player.hasPermission(String).
Я сделал по другому:
if(hasPex("право", entityPlayer)) ...

public static boolean hasPex(String s, String name) {
boolean use = false;
try {
if(Bukkit.getServer() != null) {
Player player1 = Bukkit.getServer().getPlayer(name);
if(player1 != null && player1.hasPermission(s)) {
use = true;
}
}
} catch(NoSuchFieldError e) {}
return use;
}

Вроде бы на серваке работает, а на клиенте возвращает false без краша.
а name получаю так: entityPlayerForge.getDisplayName();
 
Наговнокодил ты. Зачем на клиент ставить мод с серверными фиксами?
Насчет говнокода не спорю. Это мод на запреты (с гуишником и прочим функционалом). Уже почти всё готово. Скоро буду разделять на клиентскую и серверную часть. Вопрос: Как без гемороя можно это быстро сделать? Т.е что бы просто не компилило некоторые участки кода.
 
Объявить статическую константу (static final).
Java:
public static final boolean FOR_SERVER = false; // для сервера собираешь - true, для клиента - false
if(FOR_SERVER){
  // компилятор удалит этот код, как так он никогда не выполнится
}
Если код защищать не нужно, то можно сделать автоматический переключатель, чтобы код серверной части не выполнялся на клиенте.
А компилятор автоматом удаляет код?
 
У чашки компилятор "с характером". Он любит оптимизировать код.
Ну буду щас тестить)

Кстати, не поможешь?
Как проверить ли баккитовский эвент урона энтити/плееру отменен? И потом отменить его в другом forge'вском моде?
P.s в бакките я полный 0.Я с ним начал работать 1 день назад) мало знаю про то как там работают эвенты и т.п
 
Еще бы в либу добавить бы проверку на флаг PVP по координатам и мире =)
 
Назад
Верх Низ