私はMinecraftプラグインをコーディングしています。ここ は私のコードです:Minecraftプラグインコーディング:コマンドは引数のintを変更しません
public class ItemGiver extends JavaPlugin {
public int time;
int show = time/1200;
// Divide by mins by 1200 for ticks
@Override
public void onEnable() {
getLogger().info("ItemGiver enabled.");
timer();
}
@Override
public void onDisable() {
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equalsIgnoreCase("bonustime") && sender instanceof Player) {
Player player = (Player) sender;
if(args.length == 1) {
if(player.hasPermission("bonus.set") || player.isOp()) {
player.sendMessage(ChatColor.DARK_PURPLE + "[Bonus] The bonus delay has been set to " + show + " minute(s)!");
time = Integer.parseInt(args[0].trim()) * 1200;
return true;
}
}
if(args.length != 1) {
player.sendMessage(ChatColor.RED + "Incorrect Syntax.");
}
}
return false;
}
@SuppressWarnings("deprecation")
public void timer()
{
this.getServer().getScheduler().scheduleAsyncRepeatingTask(this,new Runnable()
{
public void run()
{
for(Player player : Bukkit.getServer().getOnlinePlayers())
{
player.getInventory().addItem(new ItemStack(Material.COBBLESTONE, 32));
player.getInventory().addItem(new ItemStack(Material.IRON_INGOT, 1));
player.giveExpLevels(2);
player.sendMessage(ChatColor.DARK_PURPLE + "[Bonus] You have received your bonus! Next bonus in " + show + " minutes!");
}
}
}
, time, time);
}
}
問題は、私はそれぞれの「ボーナス寄付を」遅延させるための変更時間を作るしようとしていますonCommand
ブール値、である、time = Interger.parseInt(arg[0].trim());
が実際に値を変更しないように見えます時間の?申し訳ありませんが、愚かな質問のように見えるかもしれません。
のために求めているあなたはショー 'の値を期待しています「時間」を変えたときに変更する?割り当てはそのようには機能しません。それが現れて、それはゼロに初期化されます( 'time'はゼロに初期化され、ゼロで除算されたゼロはまだゼロです)ので、そのままです。 – Sam
私は..私は両方の時間を期待していて、変化するように見せていました。どのようにしてゼロから初期化しないのですか?それともそうする方法はありますか?もう一度申し訳ありませんが、私はこれについてかなり新しいです。 – BlackSmoked
同じ情報に近い新しい質問を作成するのではなく、前の質問を編集する – Kerooker