-3
我目前遇到一些麻烦,此代码:需要一些PUB/SUB Jedis帮助Bukkit
public class ChatPlugin extends JavaPlugin implements Listener{
private static ChatPlugin instance;
private final static String CHANNEL = "chat";
private JedisPool jedisPool;
private ChatChannel chatChannel;
@Override
public void onEnable()
{
instance = this;
saveDefaultConfig();
this.jedisPool = new JedisPool(new JedisPoolConfig(), getConfig().getString("redis-host"), 6379, 0,getConfig().getString("redis-password"));
this.chatChannel = new ChatChannel();
this.jedisPool.getResource().subscribe(this.chatChannel, new String[]{"chat"});
Bukkit.getPluginManager().registerEvents(this, this);
getCommand("chat").setExecutor(this);
}
@Override
public void onDisable()
{
instance = null;
this.chatChannel.unsubscribe();
this.jedisPool.destroy();
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("chat"))
{
getJedis().publish(CHANNEL, args[0]);
sender.sendMessage(ChatColor.GREEN + "Sent!");
}
return true;
}
public Jedis getJedis(){
return jedisPool.getResource();
}
public static ChatPlugin getInstance() {
return instance;
}
public class ChatChannel extends JedisPubSub {
@Override
public void onMessage(String channel, String message) {
new BukkitRunnable(){
@Override
public void run() {
Bukkit.broadcastMessage(message);
}
}.runTask(ChatPlugin.getInstance());
}
}
}
这是我第一次用Redis的PUB/SUB功能的工作,和我不真的不知道发生了什么。没有堆栈跟踪,只是当插件启用时,它会冻结。是的,我知道这是因为我在主线程上执行它,但即使我运行它异步(我有)它仍然不起作用。
希望有人能帮助! 谢谢
你应该对你的标题更加具体,而不是说你需要一些已经与帖子关联的标签列表。此外,你应该把你的代码放在这里;不是它的链接。 – ChiefTwoPencils
你知道我每次使用这个论坛时,总是有人在说些什么。你能帮我吗?如果你至少要纠正我给我一些关于我的代码的建议。而且,这个班级非常大,请原谅我不知道该怎么做。至于标题,你想要我放什么?我制作我的标题,以便其他人可以在需要帮助时找到此请求。你会喜欢它'Redis Jedis PUB/SUB不工作没有错误bukkit'吗?谁会去搜索接近那个的东西?相反,如果他们搜索“PUB/SUB Jedis Bukkit”,它会出现。 @ChiefTwoPencils – stargate
要添加,@ChiefTwoPencils。如果你只是批评最简单的东西,我不知道你为什么会问这个问题?请向我解释这些意见将如何帮助我实现我的目标?顺便说一下,我编辑了代码以更好地满足您的需求,因为您知道,您是需要帮助的人!我可能违反评论规则两次,但这个文本框有一个字符限制!哇,我只是双贴,举报我! – stargate