2014-04-06 72 views
0

我正在製作一個Craftbukkit插件,它在播放器計數列表中有一條消息,如HIVE-MC或Omega Realm。我在Ecplise編碼並使用ProtocolLib v3.2.0和Craftbukkit 1.7.2 R0.3。我對java很陌生,不太瞭解它。我知道一切都是進口的。使用ProtocolLibrary PacketAdapter時發生錯誤()

到目前爲止,這裏都是進口的方法,代碼和錯誤

方法:

import java.io.File; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 

import org.bukkit.plugin.java.JavaPlugin; 

import com.comphenix.protocol.PacketType; 
import com.comphenix.protocol.ProtocolLibrary; 
import com.comphenix.protocol.events.ListenerOptions; 
import com.comphenix.protocol.events.ListenerPriority; 
import com.comphenix.protocol.events.PacketAdapter; 
import com.comphenix.protocol.wrappers.WrappedGameProfile; 

代碼:

private List<WrappedGameProfile> message = new ArrayList<WrappedGameProfile>(); 

public void onEnable() { 
    if(!new File(getDataFolder(),"RESET.FILE").exists()){ 
     try { 
      getConfig().set("PCMessage", 
        Arrays.asList(new String[]{"First Line", "Second Line"})); 
      new File(getDataFolder(),"RESET.FILE").createNewFile(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 
    saveConfig(); 

    for (String str : getConfig().getStringList("PCMessage")) 
     message.add(new WrappedGameProfile("1", str)); 



    ProtocolLibrary 
    .getProtocolManager() 
    .addPacketListener(
      new PacketAdapter(
        this,ListenerPriority.NORMAL, 
      Arrays.asList(new PacketType[] {PacketType.Status.Server.OUT_SERVER_INFO}), 
      new ListenerOptions[] { ListenerOptions.ASYNC })); { 

    } 
} 

錯誤:

enter image description here

Cannot instantiate the type PacketAdapter

回答

0

正如你將在Javadocs爲PacketAdapeter看到,它被聲明爲:

public abstract class PacketAdapter implements PacketListener 

abstract意味着該類不是一個完整的類,並且必須作爲一個完整的類或anonymous class,它不能被實例化。你需要找到PacketAdapter的一個子類,或者自己創建一個。

欲瞭解更多信息,請參閱Java教程Abstract Methods and Classes