Rand vom Block

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

Rand vom Block

Beitragvon D3SOX » Sa 14. Jan 2017, 23:16

Hallo Community,

ich verzweifle schon seit mehreren Stunden einen Check zu machen, ob ein Spieler auf einem Block steht.
Das Problem ist dass die Methode so funktionieren soll, dass sie auch true zurückgeben soll, wenn man auch gerade noch so minimal auf dem Block steht (Am Rand).

Bitte um Hilfe!

Danke im Voraus.

MfG
Benutzeravatar
D3SOX
 
Beiträge: 17
Registriert: Fr 3. Apr 2015, 14:08

Re: Rand vom Block

Beitragvon Knadda » Mo 30. Jan 2017, 23:28

Probiere es mal damit:

Code: Alles auswählen
  1.    @SuppressWarnings("deprecation")
  2.    public static boolean isOnBlock(final Player p, final Material type, final byte data) {
  3.       try {
  4.          final String version = Bukkit.getServer().getClass().getPackage().getName().substring(23);
  5.          final Class<?> entityClass = Class.forName("net.minecraft.server."+version+".Entity");
  6.          final Class<?> cpClass = Class.forName("org.bukkit.craftbukkit."+version+".entity.CraftPlayer");
  7.          final Field field = entityClass.getDeclaredField("width");
  8.          field.setAccessible(true);
  9.          final float width = (float) field.get(cpClass.getDeclaredMethod("getHandle").invoke(p));
  10.          final Location loc = p.getLocation().clone().add((-width)/2F,-1.0,(-width)/2F);
  11.          final Block[] blocks = new Block[]{loc.getBlock(), loc.clone().add(width,0.0,0.0).getBlock(), loc.clone().add(0.0,0.0,width).getBlock(), loc.clone().add(width,0.0,width).getBlock()};
  12.          for (final Block block : blocks) {
  13.             if (block.getType() == type && (data == -1 || data == block.getData())) {
  14.                return true;
  15.             }
  16.          }
  17.       } catch (final Exception e) {
  18.          e.printStackTrace();
  19.       }
  20.       return false;
  21.    }


Hab ich getestet und müsste auch bei dir gehen.
Benutzeravatar
Knadda
 
Beiträge: 42
Registriert: Mo 1. Aug 2016, 07:06


Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 3 Gäste

cron