2016-11-02 6 views
2

私はminecraftのbukkitプログラミングに取り掛かっていますが、何らかの理由でブロック電源を設定しようとしています。 私はブロックの下にレッドストーントーチを置いてはいけません。Bukkit:ブロック電源を設定する

データをアクティブなレバーに変更しようとしました。 私を助けることができる人がいれば、してください。私が試した

コード:

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

電源を投入しようとしているブロックはありますか? – Kerooker

+0

私はHAY_BLOCKの電源を入れたい 他のブロックもOKです(一部のブロックでのみ動作している場合) – Gomze

+0

なぜhay_blockに電源を供給する必要がありますか? Redstone Powerが必要なブロックではありません – Kerooker

答えて

1

は残念ながら、それは直接給電可能ブロックではありませんブロックに電力を供給することはできません。その後、あなたはあなたのブロックは、(例えばonInteractEvent)近くのブロックに電源を供給したいとき

を検出し、ブロックに電源を送る:

しかし、あなたはそれは電源が入っていますふりをするいくつかのトリックを行うことができます。

@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 
} } 
関連する問題