java - 如何将变量值添加到java中另一个变量的名称?
问题描述
我正在尝试制作一个我的世界插件。我希望它为每个玩家创建变量。我在循环中使用“for”。我正在尝试将播放器的名称添加到变量的名称中。任何人都可以帮忙吗?
String name = "";
for (Player p : Bukkit.getOnlinePlayers()) {
name = p.getName();
int cheatdetection+name = 0;
int looking = (Math.round(p.getLocation().getPitch()) + 270) % 360;
int currentlooking = looking;
try {
Thread.sleep(10);
} catch (InterruptedException e) {
if(looking > currentlooking+20 || looking < currentlooking-20) {
cheatdetection+name++;
}
}
if(cheatdetection >= 10) {
Bukkit.getBanList(Type.NAME).addBan(p.getName(), "You have been banned for using Baritone", todate1, "HackMiner Detection");
p.kickPlayer("HackMiner Detection");
}
}
解决方案
听起来您想要一个地图,每个玩家都有一把钥匙。Map 在一个变量(键)和另一个变量(值)之间创建关联。使用 put(key, value) 方法设置值,并使用 'get(key)' 检索它们
// Create an Integer counter for every player, initialized to zero.
Map<Player, Integer> playerCheatCounter = new HashMap<>();
for (Player p : Bukkit.getOnlinePlayers()) {
playerCheatCounter.put(p, 0);
}
// Now to use it:
for (Player p : Bukkit.getOnlinePlayers()) {
int looking = p.getPitch();
Thread.sleep(10)
int currentlyLooking = p.getPitch();
if (looking > currentlyLooking + 20) {
// Increment counter for the current player
playerCheatCounter.put(p, 1 + playerCheatCounter.get(p));
// Check the stored value for the current player
if (playerCheatCounter.get(p) > 10) {
// Ban player
}
}
}
编辑:修正了一些语法错误
推荐阅读
- c++ - 这种错误的原因是什么:将“功能”重新定义为不同类型的符号
- python - 旋转包含字符串的 Pandas 数据框 - 仅在第一次添加列,否则在任何列中添加值
- java - Spring Boot JPA - ManyToOne 关系导致额外的 sql
- javascript - 当我将变量传递给函数并在内部修改时,变量不会改变
- c++ - C/C++ 在 x86 应用程序中使用 x64 结构参数导入 WinAPI 函数
- java - 为 jdk 8 编译时,maven-javadoc-plugin 在 jdk 11 上失败
- emacs - 删除返回文件名的后缀
- shell - 在shell中循环浮动值增量
- git - Jenkins not recognizing the git sub-directory
- c - 程序无法加载共享库 GCC