java - 登录到我的世界服务器时出现整数问题
问题描述
我正在制作一个用于日志记录的插件(authme 对我不起作用),它将向您发送 5 条消息以警告您有关日志记录,然后它会踢你。一切正常,但 int i 将在这 6 之后。我知道,我可以将 i 设置为 1,但是如果有更多玩家登录,我该怎么办?
int i = 1;
void waitForLogin(String message, Player p) {
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 60);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 120);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 180);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 240);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 300);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 360);
}
void justDoIt(String message, Player p) {
if (may_loggin.contains(p)) {
if (i == 6) {
p.kickPlayer(ChatColor.DARK_RED + "Cas vyprsel!");
} else {
p.sendMessage(message);
i++;
}
}
}
解决方案
您可以使用HashMap
带有某种玩家名称或 ID 的 a 作为键。
Map<String. Integer> playerCounter = new HashMap<>():
void waitForLogin(String message, Player p) {
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 60);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 120);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 180);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 240);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 300);
Bukkit.getScheduler().runTaskLater(plugin, () -> justDoIt(message, p), 360);
}
void justDoIt(String message, Player p) {
if (may_loggin.contains(p)) {
if (i == 6) {
p.kickPlayer(ChatColor.DARK_RED + "Cas vyprsel!");
playerCounter.remove(p.getName());
} else {
p.sendMessage(message);
playerCounter.put(p.getName(), playerCounter.getOrDefault(p.getName(), 0) + 1);
}
}
}
代替。.getName()
使用玩家类用来标识自己的任何字段。
推荐阅读
- c# - 如何在 Xamarin.iOS 中区分美国英语和英国英语的本地化
- android - 删除顶部的 Xamarin Android 警报对话框空白区域
- python-3.x - 如何以结构化格式将图像中提取的文本存储在 txt/doc 文件中
- android - 在 4G 的 android 中查询相邻小区的 cell-id
- go - Golang - 在方法中测试 HTTP 请求
- docker - 未创建符号链接的 Kubernetes 卷主机路径
- dom - scribd 文档图像和文本模糊 CSS
- hyperledger-fabric - 为什么对等节点加入 Hyperledger 结构中的通道必须要有创世块?
- javascript - onclicked 方法在 window.onload 函数中时未定义
- html - 当我在 <%%> 中设置时,html 代码不会出现