Java 此错误代表什么以及如何修复它?
我是jython/PythonBukkit插件程序员,我遇到了一个奇怪的错误。。我正在尝试用Python重新编码一些已经用Java完成的事情。。。下面是代码的java部分:Java 此错误代表什么以及如何修复它?,java,python,exception,jython,Java,Python,Exception,Jython,我是jython/PythonBukkit插件程序员,我遇到了一个奇怪的错误。。我正在尝试用Python重新编码一些已经用Java完成的事情。。。下面是代码的java部分: HashMap<Player, String> channelList = new HashMap<Player, String>(); public void useChannel(Player p, String format, String channel){ if(ch
HashMap<Player, String> channelList = new HashMap<Player, String>();
public void useChannel(Player p, String format, String channel){
if(channel == "main"){
Bukkit.broadcastMessage(format);
} else {
Player[] online = Bukkit.getOnlinePlayers();
for(int a = 0; a <= online.length - 1; a++){
if(channelList.get(online[a]) == channel){
online[a].sendMessage("*" + format);
}
}
}
}
@EventHandler
public void onChat(AsyncPlayerChatEvent event){
event.setCancelled(true);
String channel = event.getMessage().substring(0, 1);
String userChannel = "";
switch(channel){
case "!": userChannel = "spanish";
case "?": userChannel = "french";
case "@": userChannel = "dutch";
case "$": userChannel = "spanish";
default: userChannel = "main";
}
useChannel(event.getPlayer(), event.getFormat(), userChannel);
}
总而言之,我试图将上面的java代码“重新编码”到python中,但我得到了一些奇怪的错误
谢谢你的回答!:)
p.S.服务器出现错误后冻结。。。如果您需要更多信息,请留言…这是我的错误,对不起。我使用了错误的事件
我使用的是AsyncPlayerChatEvent而不是常规的PlayerChatEvent…在
onAsyncPlayerChatEvent
中,什么是value
和switch
?@Vlad不管怎样,我刚刚意识到每当我使用该事件时,它都会抛出相同的错误?你知道那个错误是怎么说的吗,因为没有任何痕迹,PyException
有一个关联的,但我不知道如何使用它。最简单的方法是,您可以将所有内容包装在一个try
语句中,并在末尾添加一个Exception,e:print e.message
。@Vlad这样尝试过:但返回相同的错误。如果您想以e
的身份访问异常,您需要Exception,e
而不是Exception
。
channelList = HashMap()
def useChannel(self):
format = event.player.AsyncPlayerChatEvent.getFormat()
if(channel == "main"):
Bukkit.broadcastMessage(format)
else:
online = Bukkit.getOnlinePlayers()
b = online.lenght - 1
a = 0
for a in a <= b:
if channelList.get(online[a]) == channel:
online[a].sendMessage("* %s"%format)
def balkanChannel(self):
userChannel = "balkan"
return userChannel
def germanChannel(self):
userChannel = "german"
return userChannel
@hook.event("player.AsyncPlayerChatEvent", "HIGHEST")
def onAsyncPlayerChatEvent(event):
event.setCancelled(1)
channel = event.getMessage().substring(0, 1)
userChannel = ""
try:
options = {
'!': pyplugin.balkanChannel,
'$': pyplugin.germanChannel}
if value in switch:
switch[value]()
else:
pass
except KeyError:
userChannel = "main"
pyplugin.useChannel(event.getPlayer(), event.getFormat(), userChannel)
14:38:59 [SEVERE] java.util.logging.ErrorManager: 5
>
Exception: org.python.core.PyException thrown from the UncaughtExceptionHandler
in thread "Connection #1 read thread"