我正在尝试在配置中将 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);
}
答案 0 :(得分:1)
您可以通过以下方式获取配置中的浮点值:
float explosionPower = this.getConfig.getFloat("path");
路径就在配置中,所以使用上面的代码,在配置中它看起来像这样:
path: 10
path
应更改为power
或explosionPower
。
您很可能希望在主文件中执行此操作。此外,您不必使用float literal
,因此您可以使用10.0f
代替10
,而不是9.2f
,而不是9.2
。 1}}。以下是您的代码示例:
@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);
}
}
答案 1 :(得分:0)
您可以将float作为字符串写入配置,然后将其作为字符串读取,并使用Float.valueOf(String s);
将其转换为float。这是一个例子:
float explosionPower = Float.valueOf(yourConfig.getString("pathtolong"));