Fix Loader Redstone #89
@ -3,12 +3,15 @@ package de.steamwar.bausystem.world;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.block.data.Powerable;
|
import org.bukkit.block.data.Powerable;
|
||||||
|
import org.bukkit.block.data.type.Switch;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
class AutoLoader_15 {
|
class AutoLoader_15 {
|
||||||
|
|
||||||
private AutoLoader_15() {
|
private AutoLoader_15() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,10 +33,32 @@ class AutoLoader_15 {
|
|||||||
Powerable powerable = (Powerable) data;
|
Powerable powerable = (Powerable) data;
|
||||||
powerable.setPowered(active);
|
powerable.setPowered(active);
|
||||||
block.setBlockData(powerable);
|
block.setBlockData(powerable);
|
||||||
block.getState().update(true);
|
|
||||||
|
if (data instanceof Switch){
|
||||||
|
Switch swtch = (Switch) data;
|
||||||
|
Block relative;
|
||||||
|
switch(swtch.getFace()){
|
||||||
|
case FLOOR:
|
||||||
|
relative = block.getRelative(BlockFace.DOWN);
|
||||||
|
break;
|
||||||
|
case CEILING:
|
||||||
|
relative = block.getRelative(BlockFace.UP);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
relative = block.getRelative(swtch.getFacing());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
updateBlock(relative);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void updateBlock(Block block) {
|
||||||
|
BlockData data = block.getBlockData();
|
||||||
|
block.setType(Material.BARRIER, true);
|
||||||
|
block.setBlockData(data, true);
|
||||||
|
}
|
||||||
|
|
||||||
static void onPlayerInteract(IAutoLoader loader, PlayerInteractEvent event) {
|
static void onPlayerInteract(IAutoLoader loader, PlayerInteractEvent event) {
|
||||||
if (event.getAction() != Action.RIGHT_CLICK_BLOCK && event.getAction() != Action.PHYSICAL)
|
if (event.getAction() != Action.RIGHT_CLICK_BLOCK && event.getAction() != Action.PHYSICAL)
|
||||||
return;
|
return;
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren