связка с worldguard?

Версия Minecraft
1.7.10
235
3
21
вечер(ночь) добрый
возможно ли сделать проверку на наличие региона через мод (совмещаться потом будет через термос)
если да, то как? просто юзануть wg как бибилиотеку или же через рефлексию по именам обращаться?
 
1,159
38
544
Может это и не совсем тот ответ, что ты хочешь видеть, но ты не пробовал этот гайд?
 

Icosider

Kotliner
Администратор
3,601
99
664
Нельзя просто взять и юзать классы плагина в модах и наоборот.
Не соглашусь, это баккит -> фордж нельзя, а вот использовать модовые классы в плагинах можно(сам данным вопросом интересовался, gamerForEa сказал, что там можно)
 

jopi

Попрошайка
1,421
30
260
Олдокод с 1.5.2, не факт что заработает на версиях выше но на 1.5.2 выполняет свои функции отлично.
без лишних плагинов и пакетов.
Ниже описан конкретно код на проверку может ли сломаться блок или может ли нанестись урон от игрока1 к игроку2
WorldGuard использует евенты бакита которые вызываются ниже и уже через себя проводит есть ли на территории регион и тп, если чето не так, то евент отменяется и возвращается false.

shitcode:
package test;

import java.lang.reflect.InvocationTargetException;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;

public final class CallEventBukkit {
   public static final boolean CallBlockBreakEvent(EntityPlayer player, World world, int x, int y, int z) {
      Player bukkitPlayer;
      org.bukkit.World bukkitWorld;
      try {
         bukkitWorld = (org.bukkit.World)world.getClass().getMethod("getWorld", new Class[0]).invoke(world, new Object[0]);
         bukkitPlayer = (Player)player.getClass().getMethod("getBukkitEntity", new Class[0]).invoke(player, new Object[0]);
      } catch (NoSuchMethodException var8) {
         System.out.println("[Bukkit Utils]: Could not invoke Bukkit methods! Are you running a vanilla Minecraft server?");
         var8.printStackTrace();
         return false;
      } catch (InvocationTargetException var9) {
         System.out.println("[Bukkit Utils]: Something went wrong inside Bukkit!");
         var9.printStackTrace();
         return false;
      } catch (Exception var10) {
         System.out.println("[Bukkit Utils]: Unknown exception!");
         var10.printStackTrace();
         return false;
      }

      BlockBreakEvent event = new BlockBreakEvent(bukkitWorld.getBlockAt(x, y, z), bukkitPlayer);
      Bukkit.getServer().getPluginManager().callEvent(event);
      return event.isCancelled();
   }

   public static final boolean CallBlockCanAttackEvent(EntityPlayer player, EntityPlayer target) {
      Player bukkitPlayer;
      Player bukkitPlayerTarget;
      try {
         bukkitPlayer = (Player)player.getClass().getMethod("getBukkitEntity", new Class[0]).invoke(player, new Object[0]);
         bukkitPlayerTarget = (Player)player.getClass().getMethod("getBukkitEntity", new Class[0]).invoke(target, new Object[0]);
      } catch (NoSuchMethodException var5) {
         System.out.println("[Bukkit Utils]: Could not invoke Bukkit methods! Are you running a vanilla Minecraft server?");
         var5.printStackTrace();
         return false;
      } catch (InvocationTargetException var6) {
         System.out.println("[Bukkit Utils]: Something went wrong inside Bukkit!");
         var6.printStackTrace();
         return false;
      } catch (Exception var7) {
         System.out.println("[Bukkit Utils]: Unknown exception!");
         var7.printStackTrace();
         return false;
      }

      EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(bukkitPlayer, bukkitPlayerTarget, DamageCause.ENTITY_ATTACK, 1);
      Bukkit.getServer().getPluginManager().callEvent(event);
      return event.isCancelled();
   }
}
 
Сверху