2016-07-08 2 views
0

프로그래밍에 익숙하지 않지만 새로운 기능의 플러그인을 만드는 데 익숙합니다. 비디오를 시청할 때 신뢰할 수있는 비디오가 제공되므로 튜토리얼을 매우 철저히 따릅니다. 그 사람은 아무런 문제가 전혀 없었습니다. (Youtube video on developing minecraft plugins), 그래서 나는 솔루션에 대한 연구를했지만 항상 코드를 통한 라인을 만들었습니다.getItemInHand가 횡단되어있는 이유 (아래 이미지 참조)

Eclipse는 다음과 같은 옵션을 제공합니다. @SuppressWarnings ("deprecation") : 코드를 계속 사용할 수있게하지만 그 사용법은 필요 없습니다.

기본적으로 내 질문은 코드를 통과하는 선이 필요하며이를 제거하는 방법을 찾는 방법입니다.

Main 클래스 :

package com.jc1; 

import org.bukkit.Material; 

import org.bukkit.command.Command; 

import org.bukkit.command.CommandSender; 

import org.bukkit.entity.Player; 

import org.bukkit.inventory.ItemStack; 

import org.bukkit.permissions.Permission; 

import org.bukkit.plugin.PluginManager; 

import org.bukkit.plugin.java.JavaPlugin; 

public class Core extends JavaPlugin 
{ 
    public Permission pPermission = new Permission("playerAbilities.allowed"); 

@Override 
public void onEnable() 
{ 
    new BlockListener(this); 
    PluginManager pm = getServer().getPluginManager(); 
    pm.addPermission(pPermission); 
} 
@Override 
public void onDisable() 
{ 

} 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) 
{ 
    if(cmd.getName().equalsIgnoreCase("giveitems") && sender instanceof Player) 
    { 
     Player p = (Player) sender; 

     if(p.hasPermission("playerAbilities.allowed")) 
     { 
      p.setItemInHand(new ItemStack(Material.DIAMOND_BOOTS)); 

     } 
     return true; 

    } 
    return false; 
    } 

} 

차 클래스 :

package com.jc1; 

import org.bukkit.entity.Player; 

import org.bukkit.event.EventHandler; 

import org.bukkit.event.Listener; 

import org.bukkit.event.block.BlockPlaceEvent; 

public class BlockListener implements Listener 
{ 
    public BlockListener(Core plugin) 
    { 
     plugin.getServer().getPluginManager().registerEvents(this, plugin); 
    } 

    @EventHandler 
    public void onBlockPlace(BlockPlaceEvent e) 
    { 
     Player p = e.getPlayer(); 

     if(!p.hasPermission("playerAbilities.allowed")) 
     { 
      e.setCancelled(true); 

     } 
    } 
} 

답변

2

더 이상 사용하지 않는 것이 좋습니다 가장 가능성이 교체되는 것을 의미을되지 않습니다 방법 다른 방법으로.

은 (는) 더 이상 권장되지 않는의 메소드가 의도 한대로 작동 할 수 있습니다.


방법에 대한 간단한 검색 계시 (this) 문서, 진술 :

플레이어는 특정 손의 방법을 사용하여 현재 지배 결투 수 있습니다 대신

받는 referes하는 @see 참고 자료 : getItemInMainHand()getItemInOffHand().

+0

그래서 나는 이미 그 문서를 가지고 있고 내 연구에서 getItemInMainHand()를 사용해 보았지만 사용 가능한 방법으로 인식되지 않았습니다. –

+0

나는 그것을 많이 보지 못한다. –

+0

아마도 사용중인 라이브러리를 업데이트해야 할 수도 있습니다. – Deximus

0

사용이 :

player.getInventory().getItemInMainHand() 

대신 :이 도움이

player.getItemInHand() 

희망! : D