我试图在config 中将float explosionPower 设置为10F,这样我就可以通过插件轻松更改它。我该怎么做?
代码:
@EventHandler
@SuppressWarnings("deprecation")
public void onPlayerInteractBlock(PlayerInteractEvent event) {
Player player = event.getPlayer();
float explosionPower = 10F;
if (player.getItemInHand().getType() == Material.DIAMOND_SWORD) {
player.getWorld().strikeLightning(player.getTargetBlock(null, 50).getLocation());
player.getWorld().createExplosion(player.getTargetBlock(null, 50).getLocation(), explosionPower);
}
最佳答案
您可以通过以下方式在配置中获取 float 的值:
float explosionPower = this.getConfig.getFloat("path");
路径是它在配置中的位置,所以使用上面的代码,在配置中它看起来像这样:
path: 10
path
应更改为 power
或 explosionPower
之类的内容。
您很可能希望在主文件中执行此操作。此外,您不必使用 float literal
,因此您可以只使用 10
而不是放置 10.0f
,而不是 9.2f
,你可以只使用9.2
。这是您的代码示例:
@EventHandler
@SuppressWarnings("deprecation")
public void onPlayerInteractBlock(PlayerInteractEvent event) {
Player player = event.getPlayer();
float explosionPower = this.getConfig.getFloat("power"); //this is what we changed
if(player.getItemInHand().getType() == Material.DIAMOND_SWORD) {
player.getWorld().strikeLightning(player.getTargetBlock(null, 50).getLocation());
player.getWorld().createExplosion(player.getTargetBlock(null, 50).getLocation(), explosionPower);
}
}
然而,使用上面的代码,配置看起来像:
power: 10
此外,为了使您的代码更好,这里是它的重做版本:
@EventHandler
@SuppressWarnings("deprecation")
public void onPlayerInteractBlock(PlayerInteractEvent event){
Player player = event.getPlayer();
if (player.getItemInHand().getType().equals(Material.DIAMOND_SWORD)){
float explosionPower = this.getConfig.getFloat("power");
player.getWorld().strikeLightning(player.getTargetBlock(null, 50).getLocation());
player.getWorld().createExplosion(player.getTargetBlock(null, 50).getLocation(), explosionPower);
}
}
关于java - 如何在配置中设置爆炸威力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951770/