2017-07-27 7 views
0

現在、私の友人とMinecraftサーバーを作成していますが、修正できないようなエラーが出ています。私は/ hatコマンドを作っているので、プレイヤーはアイテムやブロックを頭に置くことができます。だから私はそれを作るようにして、彼らが彼らの頭の上に置いた後に彼らの手からアイテムを取り除くようにしています。しかし、私は私のコードはここで空気項目についてnew ItemStack()コンストラクターItemStack(Material、int)が未定義です

The constructor ItemStack(Material, int) is undefined 

をこれを取得する:あなたはそれを修正することができれば、 `

import org.bukkit.ItemStack; 
import net.minecraft.server.v1_8_R3.Material; 

//{Class definition and other methods} 

@Override 
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { 
    Player user = (Player) sender; 
    if(sender instanceof Player){ 
     ItemStack userItem = new ItemStack(user.getItemInHand()); 
     if(!userItem.equals(Material.AIR)){  
      user.getInventory().setHelmet(userItem); 
      ItemStack a = new ItemStack(Material.AIR, 1); // Error happens here 
      user.getInventory().setItemInHand(a); 
     } else { 
      user.sendMessage(ChatColor.RED+"Put an item in your hand"); 
     } 


    } 
    return true; 
} 

、それをいただければ幸いです。あなたの問題とどのようなコメントで議論されたために

+1

最新バージョンのBukkitを使用していない可能性はありますか?どのバージョンを使用していますか? – Armaiti

+0

私は、サーバーのjarファイルであるBukkit APIとしてspigotmc-1.8.8-R0.1を使用しています – SSync

+2

正しいItemStackタイプとMaterialタイプを使用しているかどうか確認してください。間違った場所からインポートしている可能性があります – Kerooker

答えて

0

あなたはちょうど間違ったことを言いました。

if(!userItem.equals(Material.AIR)){  
     user.getInventory().setHelmet(userItem); 
     ItemStack a = new ItemStack(Material.AIR, 1); // Error happens here 
     user.getInventory().setItemInHand(a); 
    } else { 
     user.sendMessage(ChatColor.RED+"Put an item in your hand"); 
    } 

の交換: 代わり

import net.minecraft.server.v1_8_R3.Material; 

をインポートするあなたは

import org.bukkit.Material; 

それとも、簡単な回避策をインポートする必要があります

両方の方法でこの問題を解決する必要があります。

アイテムスロットをヌルに設定することは、大気に設定することとほぼ同じです。

2

、解決策は、あなたの輸入をダブルチェックして、あなたはがBukkitのAPIから両方ItemStackMaterialを輸入していることを確認することです。代わりにあなたがやっていたとして、この動作のためにnet.minecraft.server.vXXから何をインポートする

import org.bukkit.Material; 
import org.bukkit.inventory.ItemStack; 

関連する問題