2016-11-02 5 views
2

Ich versuche, in Bukkit Programmierung für Minecraft zu bekommen, aber aus irgendeinem Grund bin ich fest mit dem Versuch, einen Block mit Strom versorgt. Ich möchte keine Redstone-Fackel unter den Block stellen.Bukkit: Setzen Sie einen Block mit Strom

Ich habe versucht, die Daten zu einem aktiven Hebel zu ändern. Wenn es jemanden gibt, der mir helfen kann, bitte.

Code I versucht:

Block n = my block; 
Block block = your lever; 
Lever l = (Lever) block; 
l.setPowered(true); //toggles on 
n.setData(l.getData()); 
+0

Welche Art von Block möchten Sie antreiben? – Kerooker

+0

Ich möchte ein HAY_BLOCK einschalten Andere Blöcke sind auch in Ordnung (Wenn das nur mit einigen Blöcken funktioniert) – Gomze

+0

Warum genau müssen Sie einen hay_block einschalten? Es ist kein Block, der Redstone Power benötigt. – Kerooker

Antwort

1

Leider ist es nicht möglich ist, einen Block an die Macht, die direkt kein Powerable-Block ist.

Sie können jedoch ein paar Tricks zu tun, ist es mit Strom versorgt:

erkennen, wenn Sie Ihren Block an der Macht in der Nähe Blöcke werden sollen (zB onInteractEvent) und dann Strom zu den Blöcken senden.

@EventHandler 
public void onInteractEvent(PlayerInteractEvent e) { 
Block interacted = e.getClickedBlock(); 
//Check if this is the block you want 

Block block= interacted.getRelative(BlockFace.UP, 1); //Can be changed to any block face, and any distance 


switch(block.getType()) { 
case LEVER: 
case REDSTONE: 
case DISPENSER: 
case POWERED_RAILS: 
case whatever other blocks can be powered: 
{ 
     block.setData(block.getData() | 0x8); // sets the 0x8 bit to the data, making it powered 
} }