spigotでconfigからListを読み込み

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.299992)

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:
    - また来てね
    - 再起動するけど許して(´・ω・`)
コマンド最高!
工業化最高!
modding最高!
1.2.5がメインかも
コード: 全て選択
プライベート鯖の鯖主。
ibuki2003
ID:c58fdb2f
水から上がったとこ
 
記事: 7
登録日時: 2014年1月04日(土) 15:27
お住まい: 横浜

Return to 質問:開発・制作関連

x