1

私は、いくつかの方法と、週に 1 回使用できるアクション/「コマンド」に対する応答 (スパム防止) に取り組もうとしています。私の唯一の問題は、Java 時間を 1 週間に設定する方法です。これは私が持っているものです:

public static long displayTime;

方法:

    public static boolean setDisplayName(Player player, String displayName) {
    synchronized (cachedNames) {
        if((SerializableFilesManager.containsPlayer(Utils.formatPlayerNameForProtocol(displayName)) || cachedNames.contains(displayName) || !cachedNames.add(displayName)))
            return false;
        if(player.hasDisplayName())
            cachedNames.remove(player.getDisplayName());
    }
    displayTime = System.currentTimeMillis() + (1000*60*60);
    String displayname = player.getDisplayName();
    player.setDisplayName(displayName);
    FriendChatsManager.refreshChat(player);
    Highscores.highscores(player, displayname);
    player.getAppearence().generateAppearenceData();
    return true;
}

public static String convertToTime() {
    String time = "You have to wait "+(getTime() == 0 ? "few more seconds" :      getTime()+" minutes")+" to change your display name again!";
    return time;
}

public static int getTime() {
    return (int) (displayTime-System.currentTimeMillis()/60000);
}    

「週」の時間に変更しようとしているのは、displayTime = System.currentTimeMillis() + (1000*60*60); です。. (1000*60*60) は 24 時間だと思いますが、正しいですか? これが私の唯一の問題です。これが解決されると、ユーザーは週に 1 回だけコマンドを使用できるようになります。コマンドはここにあります:

case "setdisplay":
            if (DisplayNames.displayTime > System.currentTimeMillis()) {
                player.getPackets().sendGameMessage(DisplayNames.convertToTime());
                return true;
            }
            if (!player.isDonator() && !player.isExtremeDonator()) {
                player.getPackets().sendGameMessage(
                        "You do not have the privileges to use this.");
                return true;
            }

DisplayNamesは、メソッドとすべてが入っているクラスです。すべての助けに感謝します。これはばかげた質問だと確信しています:P.

〜デレク

4

2 に答える 2

1

クラスを使用できますCalendar。日付を追加するなど、日付を変更するメソッドがあります。そして、日付に変換できます。それは時間に関する私の問題のほとんどを解決します。それがあなたにとってもうまくいくことを願っています。

于 2013-09-11T15:32:42.613 に答える