- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将损坏者名称作为键添加,将受害者名称作为值添加到名为damageCheck。这一切都在 EntityDamageByEntityEvent
中完成。然而,当我尝试存储受害者和破坏者时,一切都出错了。
代码:
private HashMap<String, String> damageCheck = new HashMap<String, String>();
@EventHandler
public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
if(event.getEntity() instanceof Player || event.getDamager() instanceof Player) {
Player victim = (Player) event.getEntity();
Player damager = (Player) event.getDamager();
String victimName = victim.getDisplayName(); // getting the victim name
String damagerName = damager.getDisplayName(); // getting the damager name
Bukkit.getServer().broadcastMessage("");
Bukkit.getServer().broadcastMessage(victim.getDisplayName() + " is the victim!");
Bukkit.getServer().broadcastMessage(damager.getDisplayName() + " is the damager!");
Bukkit.getServer().broadcastMessage("");
try {
if(!damageCheck.containsKey(damagerName)) {
damageCheck.put(victimName, damagerName);
Bukkit.getServer().broadcastMessage("");
Bukkit.getServer().broadcastMessage(damageCheck.get(victimName) + " is victim!");
Bukkit.getServer().broadcastMessage(damageCheck.get(damagerName) + " is damager!");
Bukkit.getServer().broadcastMessage("");
} else if(damageCheck.containsKey(damagerName)) {
damageCheck.replace(damagerName, damagerName, damagerName);
Bukkit.getServer().broadcastMessage("");
Bukkit.getServer().broadcastMessage(damageCheck.get(victimName) + " is victim!");
Bukkit.getServer().broadcastMessage(damageCheck.get(damagerName) + " is damager!");
Bukkit.getServer().broadcastMessage("");
}
} catch (NullPointerException e) {
// do nothing lol
}
} else {
Bukkit.getServer().broadcastMessage("There is no entity or damager!");
}
}
第一条消息是正确的。 GetSparked 是受害者,Fendyk 是破坏者。但是在第二条消息中,当尝试从 HashMap 中获取名称时,它输出了错误的值。
编辑:我改变了damageCheck.put(victimName, DamagerName);到damageCheck.put(damagerName,victimName);
但现在它给受害者null(第一次击中),这是为什么?
最佳答案
所以,我正在测试一种全新的方法,因为我不太明白你指的是什么,无论如何,这就是代码,我认为这就是你真正需要的
不需要 new HashMap <String, String>
private HashMap<String, String> damageCheck = new HashMap<>();
代码:
@EventHandler
public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
if(!(event.getDamager() instanceof Player) || !(event.getEntity() instanceof Player) ) return;
String damagerName = event.getDamager().getName();
String victimName = event.getEntity().getName();
damageCheck.put(victimName, damagerName);
Bukkit.broadcastMessage(ChatColor.GRAY + "" + ChatColor.STRIKETHROUGH + "-------------[ X ]-------------");
Bukkit.broadcastMessage(ChatColor.DARK_AQUA + damagerName + ChatColor.GRAY + " is the damager");
Bukkit.broadcastMessage(ChatColor.DARK_AQUA + victimName + ChatColor.GRAY + " is the victim");
Bukkit.broadcastMessage(ChatColor.GRAY + "" + ChatColor.STRIKETHROUGH + "-------------[ X ]-------------");
Bukkit.getLogger().info(damageCheck.toString());
}
从 HashMap 中删除实体数据尽管有时不准确
@EventHandler
public void onEntityDeathEvent(EntityDeathEvent event){
damageCheck.remove(event.getEntity().getName());
damageCheck.remove(event.getEntity().getKiller().getName());
}
您只能删除对玩家的检查,它适用于任何实体 只需删除
if(!(event.getDamager() instanceof Player) || !(event.getEntity() instanceof Player) ) return;
关于java - Bukkit/Spigot API : Mapping damager and Victim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43287732/
我有奇怪的死锁图,其中 MSSQL Server 2008 选择的受害者不是死锁循环的一部分。 这个死锁在 select 和 insert 之间。 死锁资源是一个表,其中所有 select 都需要 w
我记录了一个 ASP.NET 应用程序抛出的异常。 Message: Transaction (Process ID 56) was deadlocked on lock | communicatio
我正在尝试将损坏者名称作为键添加,将受害者名称作为值添加到名为damageCheck。这一切都在 EntityDamageByEntityEvent 中完成。然而,当我尝试存储受害者和破坏者时,一切都
什么是 intel 机器中的 VIctim 缓存? 我们可以禁用它吗?使用 gcc 或使用 bios 或在 linux 中? 最佳答案 来自 wiki :- A victim cache is a c
据我了解,反射型 XSS 的流程是这样的: 用户点击恶意链接、提交恶意表单或访问恶意网站 上述操作会导致恶意脚本运行,该脚本会告诉浏览器向另一台服务器发送 HTTP 请求,并将攻击负载作为 URI 中
我有一个大的数据集,看起来像下面的图片,其中还包含列“月”和“年”。我尝试使用线性回归模型来预测每月的受害者总数,但我不知道如何获得受害者总数Datafram。感谢您的帮助!。我试着去适应维克特的年龄
我有一个如下图所示的LLAGAR数据集,其中也包含列“月”和“年”。我试着用线性回归模型来预测每月的总受害者人数,但我不知道如何得到总受害者数据报。感谢您的帮助!。我试着去适应维克特的年龄和月份,但我
我是一名优秀的程序员,十分优秀!