spigotでconfigからListを読み込み

フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999

返信する

:
不正プログラムによるアクセスを防ぐため、reCaptcha 認証コードの入力を強制しています。表示されている 2 つのワードをテキストフィールドにご入力ください。

BBCode: OFF
スマイリー: OFF
トピックのレビュー
   

ファイルを添付します

展開ビュー トピックのレビュー: spigotでconfigからListを読み込み

spigotでconfigからListを読み込み

投稿記事 by ibuki2003 » 2017年4月07日(金) 11:46

spigotのプラグイン開発をしています。
プラグイン内容:
configからメッセージを読み込み、一言メッセージを入れて全員kickする
config.ymlでStringListを作って読み込み、ランダムに抜き出しているのですが
6項目を超えたときに(多分そうだと思います。確実ではない)jarの中に入ったconfig.ymlを読み込むようになってしまいます。
どこがおかしいのか教えてください

kickmessage.java
コード: 全て選択
package jp.ddo.ibuki2003.kickmessage;

import java.util.Collection;
import java.util.List;
import java.util.Random;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

import net.md_5.bungee.api.ChatColor;

public class kickmessage extends JavaPlugin implements Listener{
   Random rnd = new Random();
   List<String> Messages;
   String CloseMessage;
   int l;
   FileConfiguration conf;
   
   public void onEnable (){ //run when loaded this plugin
      saveDefaultConfig();
      conf=getConfig();
   }
   public void onDisable (){ //run when unloaded this plugin
      
   }
   
   @Override
   public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
      if (cmd.getName().equalsIgnoreCase("kickall")) {
                   // プレイヤーが コマンドを実行すると、この部分の処理が実行されます...
            Collection <Player> players = (Collection <Player>)getServer().getOnlinePlayers();
            
            Messages = conf.getStringList("messages");
            CloseMessage = conf.getString("CloseMessage");
            l = Messages.size();
            
            for(Player player:players){
               player.kickPlayer(CloseMessage+"\n"+ChatColor.translateAlternateColorCodes('&', Messages.get(rnd.nextInt(l))));
            }
      }
      return false;
   }

}


plugin.yml
コード: 全て選択
name: kickmessage
version: 1
main: jp.ddo.ibuki2003.kickmessage.kickmessage

permissions:
  kickmessage.command:
    description: kickmessage's command runnable

commands:
  kickall:
    description: kick all players.
    permission: kickmessage.command
    usage: /<command>


config.yml(標準)
コード: 全て選択
CloseMessage:
    サーバーが終了しました。
messages:
    - また来てね
    - 再起動するけど許して(´・ω・`)

ページトップ

x