2017-11-28 1 views
0

私はチャットを聞きたい、そして、プレイヤーが乱数を言うなら、それはプレーヤーが勝ったと伝えるだろう。 int結果(乱数)を認識することができません。私の(結果整数)グローバルスタティック変数を作る方法

私はそれをグローバルな静的変数にしなければならないと思いますが、どうすればいいのか分かりません。

コード:

package me.harry.learning; 

import java.util.Random; 
import java.util.logging.Logger; 

import org.bukkit.Bukkit; 
import org.bukkit.ChatColor; 
import org.bukkit.command.Command; 
import org.bukkit.command.CommandSender; 
import org.bukkit.entity.Player; 
import org.bukkit.event.EventHandler; 
import org.bukkit.event.Listener; 
import org.bukkit.event.player.AsyncPlayerChatEvent; 
import org.bukkit.plugin.java.JavaPlugin; 

public class pear extends JavaPlugin implements Listener 
{ 
Logger myLogger = Bukkit.getLogger(); 


@Override 
public void onEnable() 
{ 
    myLogger.info("Giveaway start-up has been successful!"); 
    Bukkit.getServer().getPluginManager().registerEvents(this, this); 
} 

@Override 
public void onDisable() 
{ 
    myLogger.info("Giveaway shut-down has been successful"); 
} 


public boolean onCommand(CommandSender theSender, Command cmd, String commandLabel, String[] args) 
{ 
    if(theSender instanceof Player) 
    { 
     Player player = (Player) theSender; 


     //giveaway {start} {mxnumber} 
     if(player.hasPermission("giveaway.admin")) 
     { 
      if(commandLabel.equalsIgnoreCase("giveaway")) 
      { 
       if(args.length == 2) 
       { 
        if(args[0].equalsIgnoreCase("stop")) 
        { 
         theSender.sendMessage(ChatColor.GREEN + "[Giveaway] " + ChatColor.AQUA + "Giveaway has stopped!"); 
         return false; 
        } 
        else if(args[0].equalsIgnoreCase("start")) 
        { 
         try 
         { 
          int numberStart = 0; 
          int numberEnd = (Integer.parseInt(args[1])); 
          Random random = new Random(); 
          int result = numberStart + random.nextInt(numberEnd); 
          theSender.sendMessage(ChatColor.GREEN + "[Giveaway] " + ChatColor.AQUA + "Giveaway commencing..."); 
          theSender.sendMessage(ChatColor.GREEN + "[Giveaway] " + ChatColor.AQUA + "The winning number is " + result); 
          Bukkit.broadcastMessage(ChatColor.GREEN + (ChatColor.BOLD + "A giveaway has begun ranging from 0 - " + numberEnd)); 
         } 
         catch(NumberFormatException exception) 
         { 
          player.sendMessage(ChatColor.GREEN + "[Giveaway] " + ChatColor.RED + args[1] + ChatColor.AQUA + " is not a valid number!"); 
         } 
        } 
        else player.sendMessage(ChatColor.GREEN + "[Giveaway] " + ChatColor.AQUA + "Unknown Arguments, try /giveaway help"); 
       } 
       else player.sendMessage(ChatColor.GREEN + "[Giveaway] " + ChatColor.AQUA + "Unknown Arguments, try /giveaway help"); 
      } 
      else player.sendMessage(ChatColor.GREEN + "[Giveaway] " + ChatColor.AQUA + "Giveaway 1.0 made by Herry"); 
     } 
     else player.sendMessage(ChatColor.RED + "No Permission"); 
    } 
    return true; 
} 
@EventHandler 
public void onPlayerChat(AsyncPlayerChatEvent winningPlayer) 
{ 
    if(winningPlayer.getMessage().contains(result)) 
    { 
     Bukkit.broadcastMessage(ChatColor.BOLD + (ChatColor.AQUA + "" + winningPlayer + ChatColor.GREEN + " has won the giveaway!")); 
    } 
    } 
} 

誰もが私はおそらくこれを行うことができます方法を知っていますか?明らかに私はストップコマンドが必要なので、コマンドで取り消すことができるループかもしれません。サブコマンドには別のクラスを使用する方が良いでしょうか?私はgiveawayループのためにBukkitRunnableが必要ですか?

答えて

0

Cのように、変数をJavaの関数内で静的にすることはできません。Javaで変数を静的にするには、関数の外で宣言する必要があります。

+0

変数を関数の外に宣言し、それを関数で呼び出しますか? – ilostmyshoes

+0

@ilostmyshoesはい –

関連する問題