【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

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

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by オリゼリ » 2016年7月27日(水) 22:56

コード: 全て選択
Bukkit.getScoreboardManager().getNewScoreboard();

を使用してプレイヤー個人にスコアボードを作っているのですがリログするとスコアボードの情報が無くなってしまいます。
リログしても消えないようにするにはどうしたらよいでしょうか?

ログインしたときはこんな感じで書いています
コード: 全て選択
   @EventHandler
   public void onPlayerJoin(PlayerJoinEvent event) {
      Player player = event.getPlayer();
      if(event.getPlayer().hasPlayedBefore()){
         Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
         player.setScoreboard(sb);
         Objective obj = sb.getObjective("syousai");
         obj.setDisplaySlot(DisplaySlot.SIDEBAR);

      }
      else{
         Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
         player.setScoreboard(sb);
         Objective obj = sb.getObjective("syousai");
         if ( obj == null ) {
             obj = sb.registerNewObjective("syousai", "");
             obj.setDisplayName(ChatColor.AQUA + "test");
         }
         obj.setDisplaySlot(DisplaySlot.SIDEBAR);
         obj.getScore(ChatColor.GREEN + "aaaa").setScore(1);
      }
   }
質問の仕方とか直したほうがいいよってことがあったら教えていただければ嬉しいです
オリゼリ
ID:e76ccee0
大工さん
 
記事: 45
登録日時: 2015年4月29日(水) 20:13

  • (PostNo.278874)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Lemon18 » 2016年7月28日(木) 10:05

オリゼリ さんが書きました:
コード: 全て選択
Bukkit.getScoreboardManager().getNewScoreboard();

を使用してプレイヤー個人にスコアボードを作っているのですがリログするとスコアボードの情報が無くなってしまいます。
リログしても消えないようにするにはどうしたらよいでしょうか?


Bukkit.getScoreboardManager().getNewScoreboard();をすると新しいスコアボードを生成するので中身が初期化されてしまいます。
プレイヤー個人のスコアボードを取得するにはPlayer#getScoreboard()で出来ます。
(ログアウトした後もスコアボードが保持されているかはわかりませんが。)
:D
Lemon18
ID:b66be5f3
石掘り
 
記事: 85
登録日時: 2015年6月05日(金) 22:42

  • (PostNo.278891)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by うましゅー » 2016年7月28日(木) 14:07

自鯖の為に最近Pluginを作り始めました。
現在コマンド入力後、看板とドアを右クリックすると二つの座標をHashMapに保存するものを作ろうかと思っています。
しかし看板は
コード: 全て選択
      Block block = event.getClickedBlock();
      if(block.getType() != Material.SIGN_POST
         && block.getType() != Material.WALL_SIGN)
      return;

を使って壁に張り付いた看板、地面に置いた看板以外はreturnを返す形で対処したのですがこちらと同じように
コード: 全て選択
            if(block.getType() != Material.WOODEN_DOOR
               && block.getType() != Material.IRON_DOOR
               && block.getType() != Material.SPRUCE_DOOR
               && block.getType() != Material.BIRCH_DOOR
               && block.getType() != Material.JUNGLE_DOOR
               && block.getType() != Material.ACACIA_DOOR
               && block.getType() != Material.DARK_OAK_DOOR)
            return;

を使うと指摘ができませんでした。
Materialでのドア指定は開いてるドア、閉じてるドアなどの指摘があるのでしょうか?
ニコニコ生放送にて生主をしています。
ついでにPluginも作ってます(新米)
アバター
うましゅー
ID:50149204
大工さん
 
記事: 49
登録日時: 2013年3月30日(土) 09:23

  • (PostNo.278894)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by リオン » 2016年7月28日(木) 14:35

そういう時は途中で変数の中身や処理を確認してみるといいと思います。
まず処理ですが
コード: 全て選択
         if(block.getType() != Material.WOODEN_DOOR
               && block.getType() != Material.IRON_DOOR
               && block.getType() != Material.SPRUCE_DOOR
               && block.getType() != Material.BIRCH_DOOR
               && block.getType() != Material.JUNGLE_DOOR
               && block.getType() != Material.ACACIA_DOOR
               && block.getType() != Material.DARK_OAK_DOOR) {
            Bukkit.broadcastMessage(ChatColor.RED + "扉じゃない");
            return;
         }
         Bukkit.broadcastMessage(ChatColor.BLUE + "扉を検出");

このように実行されているかを確認します。
こちらで試したところ鉄扉以外は正常に動きました。

次に鉄扉は「扉じゃない」と出たので「Bukkit.broadcastMessage(event.getClickedBlock().getType().name())」で何故違ったか確認しました。
結果鉄扉のブロックとしてのTypeは「IRON_DOOR_BLOCK」であり、「IRON_DOOR」が間違いであるということがわかりました。
追記、どうでもいいかも
確認してみたら鉄ドアと、オークのドア以外は「○○○_DOOR_ITEM」でアイテムのTypeになるのに
鉄ドアは「IRON_DOOR」、オークの扉は「WOOD_DOOR」でアイテムのTypeになるみたいですね。
ほかのドアは後から追加されたから微妙に違うのかな?
アバター
リオン
ID:67545616
木を殴ってる
 
記事: 24
登録日時: 2013年5月13日(月) 11:58

  • (PostNo.278910)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by オリゼリ » 2016年7月28日(木) 18:28

Lemon18 さんが書きました:
オリゼリ さんが書きました:
コード: 全て選択
Bukkit.getScoreboardManager().getNewScoreboard();

を使用してプレイヤー個人にスコアボードを作っているのですがリログするとスコアボードの情報が無くなってしまいます。
リログしても消えないようにするにはどうしたらよいでしょうか?


Bukkit.getScoreboardManager().getNewScoreboard();をすると新しいスコアボードを生成するので中身が初期化されてしまいます。
プレイヤー個人のスコアボードを取得するにはPlayer#getScoreboard()で出来ます。
(ログアウトした後もスコアボードが保持されているかはわかりませんが。)

再度ログインしても今までとは変わらずスコアボードが消えてしまします。
スコアボード情報を保存しないといけないと思います、やり方教えていただけないでしょうか?
質問の仕方とか直したほうがいいよってことがあったら教えていただければ嬉しいです
オリゼリ
ID:e76ccee0
大工さん
 
記事: 45
登録日時: 2015年4月29日(水) 20:13

  • (PostNo.278912)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by King(qpwakaba) » 2016年7月28日(木) 18:51

オリゼリ さんが書きました:
Lemon18 さんが書きました:
オリゼリ さんが書きました:
コード: 全て選択
Bukkit.getScoreboardManager().getNewScoreboard();

を使用してプレイヤー個人にスコアボードを作っているのですがリログするとスコアボードの情報が無くなってしまいます。
リログしても消えないようにするにはどうしたらよいでしょうか?


Bukkit.getScoreboardManager().getNewScoreboard();をすると新しいスコアボードを生成するので中身が初期化されてしまいます。
プレイヤー個人のスコアボードを取得するにはPlayer#getScoreboard()で出来ます。
(ログアウトした後もスコアボードが保持されているかはわかりませんが。)

再度ログインしても今までとは変わらずスコアボードが消えてしまします。
スコアボード情報を保存しないといけないと思います、やり方教えていただけないでしょうか?


スコアボード情報を保存するというより、スコアボードに設定する値を保存しておくという考えのほうが良いでしょう。
つまり、スコアボードを設定する際に必要な値全てをなんらかのコンフィグに保存しておけばよいのです。
以下サイン
調べて見つからないことを質問して、「そのくらい調べろ」と言われたら それは調べが足りないとき。

投稿画面のBBコード挿入ボタン を追加するユーザースクリプト作りました。良かったらどうぞ。
https://greasyfork.org/ja/scripts/18657
最大描画距離を64チャンクまで伸ばすMod作ってます。
viewtopic.php?t=30697
アバター
King(qpwakaba)
ID:2b4c87e8
ダイヤモンド掘り
 
記事: 823
登録日時: 2013年3月26日(火) 10:25

  • (PostNo.278943)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by うましゅー » 2016年7月29日(金) 01:19

リオン さんが書きました:そういう時は途中で変数の中身や処理を確認してみるといいと思います。
以下略…


なるほど。確かに変更してできました。

ですがプラグインを作っていくうちにまたわからなくなったことがあるので質問させていただきます。
ドアが開いた時にドアを閉じる処理を行いたいと思っています。
多分ドアが開いたときのEventやドアが閉じた際のEventがあると思いますがどのように行えばいいのでしょうか?
また、レッドストーン信号でも開かないようにしたいです。
ニコニコ生放送にて生主をしています。
ついでにPluginも作ってます(新米)
アバター
うましゅー
ID:50149204
大工さん
 
記事: 49
登録日時: 2013年3月30日(土) 09:23

  • (PostNo.278947)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by mozow470 » 2016年7月29日(金) 05:33

うましゅー さんが書きました:
リオン さんが書きました:そういう時は途中で変数の中身や処理を確認してみるといいと思います。
以下略…


なるほど。確かに変更してできました。

ですがプラグインを作っていくうちにまたわからなくなったことがあるので質問させていただきます。
ドアが開いた時にドアを閉じる処理を行いたいと思っています。
多分ドアが開いたときのEventやドアが閉じた際のEventがあると思いますがどのように行えばいいのでしょうか?
また、レッドストーン信号でも開かないようにしたいです。

Playerがドアが開いたときのイベントはPlayerInteractEventで検知できます.
(バニラではPlayer以外がドアを開ける行為は多分ないと思うので)
アバター
mozow470
ID:e61ed3bf
木を殴ってる
 
記事: 13
登録日時: 2015年6月28日(日) 14:30

  • (PostNo.278950)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by リオン » 2016年7月29日(金) 07:54

APIを確認してみましたが、ドアを開けた時、閉めた時のイベントは存在しないみたいです。
mozow470さんが行っているようにPlayerが扉を操作した時は「PlayerInteractEvent」を
レッドストーン出力で扉を操作した場合は「BlockRedstoneEvent」を使用できると思います。

扉が空いてるかの確認は非推奨になってますが、ドアを取得して「Door」型にキャストして、
「isOpen」を使えば取得出来ると思います。
アバター
リオン
ID:67545616
木を殴ってる
 
記事: 24
登録日時: 2013年5月13日(月) 11:58

  • (PostNo.278957)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Lemon18 » 2016年7月29日(金) 09:21

うましゅー さんが書きました:ドアが開いた時にドアを閉じる処理を行いたいと思っています。


BlockPhysicsEventでできるかもしれません。
:D
Lemon18
ID:b66be5f3
石掘り
 
記事: 85
登録日時: 2015年6月05日(金) 22:42

  • (PostNo.279041)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by うましゅー » 2016年7月30日(土) 01:37

またまた質問すみません…

現在看板を右クリックして看板の内容を変更してから指定時間経過したら看板の内容を元に戻すことを試しているのですが、
スケジューラーを使おうとして試したところ、カウントを止めることができません。
コード: 全て選択
   public static void onEnable(final Player rp, final Calendar cal, final Location sloc, Block block, final Sign sign) {
      BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
      scheduler.scheduleSyncRepeatingTask(Main.main, new Runnable() {
         @Override
         public void run() {
            if(Main.d.containsKey(sloc)){ //HashMap内に座標が保存されているか
               if(Main.day.get(sloc).before(Calendar.getInstance())){//予定日が経過した場合
                  sign.setLine(1, "join");
                  sign.update();
                  rp.sendMessage("期間が過ぎました。");
                                                //指定していた内容に戻す動作

                  Main.pl.remove(sloc);
                  Main.pl.values().remove(rp);
                  Main.day.remove(sloc);
                  Main.day.values().remove(cal);
                                                //HashMapのデータを消す動作
                    }
                 }else {
                  Main.pl.remove(sloc);
                  Main.pl.values().remove(rp);
                  Main.day.remove(sloc);
                  Main.day.values().remove(cal);
                                                //HashMap内にデータがない場合にデータを消す動作
               }
               }
           }, 0L, 20L);
       }
}


システム自体はきちんとできているのですが、countが止まらなく看板を壊したにも関わらず看板を置きHashMapの登録をすると動いてしまいます。
スケジューラーの止め方はどう行えばいいのでしょうか…
ニコニコ生放送にて生主をしています。
ついでにPluginも作ってます(新米)
アバター
うましゅー
ID:50149204
大工さん
 
記事: 49
登録日時: 2013年3月30日(土) 09:23

  • (PostNo.279050)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by ゴッキー » 2016年7月30日(土) 03:13

走ったときに体力が徐々に減って、歩いたり立ち止まった時に体力が徐々に増える
ということをしたいのですがうまく動きません。
どうすればよいでしょうか?

コード: 全て選択
public class onEventHandler implements Listener{
   
   @EventHandler
   public void onMove(PlayerMoveEvent e){
      Player player=e.getPlayer();
      
      Bukkit.getScheduler().scheduleSyncDelayedTask(this.pl,new Runnable(){
         @Override
         public void run(){
            if(player.isSprinting()){
               player.sendMessage("Run");
               player.setFoodLevel(player.getFoodLevel()-2);
            }else if(!(player.isSprinting())){
               player.sendMessage("Walk");
               player.setFoodLevel(player.getFoodLevel()+1);
            }
         }
      },20L);
   }
}
ゴッキー
ID:e9a3ceb3
木を殴ってる
 
記事: 17
登録日時: 2013年12月16日(月) 22:33

  • (PostNo.279073)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Lemon18 » 2016年7月30日(土) 13:29

うましゅー さんが書きました:スケジューラーの止め方はどう行えばいいのでしょうか…


スケジューラーをキャンセルするには、cancelTask()の引数にscheduleSyncRepeatingTask()の返り値を入れれば出来ます。
(前にも他の方に書きましたが、BukkitRunnableの方がオススメです。)

ちなみにドアの件はどうなったんでしょうか...
:D
Lemon18
ID:b66be5f3
石掘り
 
記事: 85
登録日時: 2015年6月05日(金) 22:42

  • (PostNo.279074)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Lemon18 » 2016年7月30日(土) 13:33

ゴッキー さんが書きました:走ったときに体力が徐々に減って、歩いたり立ち止まった時に体力が徐々に増える
ということをしたいのですがうまく動きません。


PlayerMoveEventでは動かない時は呼び出されないので自動で回復してくれなくなります。
なので、BukkitRunnableのrunTaskTimer()を使って、ループさせて判定すればよいのではないでしょうか?
:D
Lemon18
ID:b66be5f3
石掘り
 
記事: 85
登録日時: 2015年6月05日(金) 22:42

  • (PostNo.279114)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by オリゼリ » 2016年7月31日(日) 01:11

King(qpwakaba) さんが書きました:
オリゼリ さんが書きました:
Lemon18 さんが書きました:
オリゼリ さんが書きました:
コード: 全て選択
Bukkit.getScoreboardManager().getNewScoreboard();

を使用してプレイヤー個人にスコアボードを作っているのですがリログするとスコアボードの情報が無くなってしまいます。
リログしても消えないようにするにはどうしたらよいでしょうか?


Bukkit.getScoreboardManager().getNewScoreboard();をすると新しいスコアボードを生成するので中身が初期化されてしまいます。
プレイヤー個人のスコアボードを取得するにはPlayer#getScoreboard()で出来ます。
(ログアウトした後もスコアボードが保持されているかはわかりませんが。)

再度ログインしても今までとは変わらずスコアボードが消えてしまします。
スコアボード情報を保存しないといけないと思います、やり方教えていただけないでしょうか?


スコアボード情報を保存するというより、スコアボードに設定する値を保存しておくという考えのほうが良いでしょう。
つまり、スコアボードを設定する際に必要な値全てをなんらかのコンフィグに保存しておけばよいのです。

返事が遅くなってすみません。
今プラグインに別の設定としてConfigを使用しています、なので別のconfigを作って保存できるようにしたいです。
そのやり方を教えていただけないでしょうか?
それと出来ればコンフィグにプレイヤーごとのスコアボードの値を保存する方法を教えてくれますか?
質問の仕方とか直したほうがいいよってことがあったら教えていただければ嬉しいです
オリゼリ
ID:e76ccee0
大工さん
 
記事: 45
登録日時: 2015年4月29日(水) 20:13

  • (PostNo.279123)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Lemon18 » 2016年7月31日(日) 08:13

オリゼリ さんが書きました:今プラグインに別の設定としてConfigを使用しています、なので別のconfigを作って保存できるようにしたいです。
そのやり方を教えていただけないでしょうか?
それと出来ればコンフィグにプレイヤーごとのスコアボードの値を保存する方法を教えてくれますか?


viewtopic.php?f=21&t=30708

プレイヤーごとに保存したいのならpathを"プレイヤーのUUID.keyの名前"みたいにするか、コンフィグをプレイヤーごとに作ればできると思います。
:D
Lemon18
ID:b66be5f3
石掘り
 
記事: 85
登録日時: 2015年6月05日(金) 22:42

  • (PostNo.279690)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by デルタ » 2016年8月06日(土) 02:53

各4チームに分かれて戦うプラグインを作成しています
今のところ3チームですが 1試合目は何事もなく終わりますが2試合目始めようとするとRED TEAMの場合 Lives値が一瞬だけ正常になりますが0になります
どうすればいいでしょうか。
コード: 全て選択
public class Smash extends JavaPlugin implements Listener{

   public void onEnable(){
      getServer().getPluginManager().registerEvents(this,this);
      getCommand("SuperSmashMobs").setExecutor(this);
      saveDefaultConfig();
   }
   BukkitTask a ;
   public boolean onCommand(final CommandSender sender, Command cmd, String label, String[] args)
   {
      if(cmd.getName().equalsIgnoreCase("ssm"))
      {
         if(args.length == 1)
         {
            if(args[0].equals("red"))
            {
               //コンフィグの一覧にプレイヤーの名前が存在していない場合

               if(!getConfig().getStringList("redplayer").contains(sender.getName()))
               {
                  if(!getConfig().getStringList("yellowplayer").contains(sender.getName()))
               {
               if(!getConfig().getStringList("blueplayer").contains(sender.getName()))
               {
                  if(getConfig().getInt("SuperSmashMobs.Player.Max")<5){
                     if(getConfig().getBoolean("SuperSmashMobs.Game.RED",true)){
                        getConfig().set("SuperSmashMobs.Game.RED",false);
                  //一覧にプレイヤー名を追加
                        getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) + 1);
                        getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0)*0 + 3);
                        saveConfig();
                        sender.sendMessage("§5貴方は§cリンゴに加入しました");
                  List<String> l = getConfig().getStringList("redplayer");
                  l.add(sender.getName());
                  getConfig().set("redplayer", l);
                  List<String> loc = getConfig().getStringList("redloc");
                  Location lo = ((Player)sender).getLocation();
                  loc.add(sender.getName()+","+lo.getWorld().getName()+","+lo.getX()+","+lo.getY()+","+lo.getZ()+","+lo.getYaw()+","+lo.getPitch());
                  getConfig().set("redloc", loc);
                  saveConfig();
               }
                  }
               }
               }else{
                  sender.sendMessage("§cすでに加入しています");
            }
         }
      }

         }
      }
      //青チームの設定
      if(args.length == 1)
      {
         if(args[0].equals("blue"))
         {
            //コンフィグの一覧にプレイヤーの名前が存在していない場合


            if(!getConfig().getStringList("blueplayer").contains(sender.getName()))
            {
               if(!getConfig().getStringList("redplayer").contains(sender.getName()))
            {
               if(!getConfig().getStringList("yellowplayer").contains(sender.getName()))
               {
               if(getConfig().getInt("SuperSmashMobs.Player.Max")<5){
                  if(getConfig().getBoolean("SuperSmashMobs.Game.BLUE",true)){
                     getConfig().set("SuperSmashMobs.Game.BLUE",false);
                     getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) + 1);
               getConfig().set("SSM.Blue.Lives", getConfig().getInt("SSM.Blue.Lives", 0)*0 + 3);
               saveConfig();
               sender.sendMessage("§5貴方は§bブルーベリーに加入しました");
               //一覧にプレイヤー名を追加
               List<String> l = getConfig().getStringList("blueplayer");
               l.add(sender.getName());
               getConfig().set("blueplayer", l);
               List<String> loc = getConfig().getStringList("blueloc");
               Location lo = ((Player)sender).getLocation();
               loc.add(sender.getName()+","+lo.getWorld().getName()+","+lo.getX()+","+lo.getY()+","+lo.getZ()+","+lo.getYaw()+","+lo.getPitch());
               getConfig().set("blueloc", loc);
               saveConfig();
                  }
               }
            }
            }else{
               sender.sendMessage("§bすでに加入しています");
         }
      }
   }
      }
      if(args.length == 1)
      {
         if(args[0].equals("yellow"))
         {
            //コンフィグの一覧にプレイヤーの名前が存在していない場合
            if(!getConfig().getStringList("blueplayer").contains(sender.getName()))
            {
               if(!getConfig().getStringList("redplayer").contains(sender.getName()))
               {
            if(!getConfig().getStringList("yellowplayer").contains(sender.getName()))
            {
               if(getConfig().getInt("SuperSmashMobs.Player.Max")<5){
                  if(getConfig().getBoolean("SuperSmashMobs.Game.YELLOW",true)){
                     getConfig().set("SuperSmashMobs.Game.YELLOW",false);
               //一覧にプレイヤー名を追加
                     getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) + 1);
                     getConfig().set("SSM.Yellow.Lives", getConfig().getInt("SSM.Yellow.Lives", 0)*0 + 3);
                     saveConfig();
                     sender.sendMessage("§5貴方は§eバナナに加入しました");
               List<String> l = getConfig().getStringList("yellowplayer");
               l.add(sender.getName());
               getConfig().set("yellowplayer", l);
               List<String> loc = getConfig().getStringList("yellowloc");
               Location lo = ((Player)sender).getLocation();
               loc.add(sender.getName()+","+lo.getWorld().getName()+","+lo.getX()+","+lo.getY()+","+lo.getZ()+","+lo.getYaw()+","+lo.getPitch());
               getConfig().set("yellowloc", loc);
                  }
               }
            }
            }else{
               sender.sendMessage("§eすでに加入しています");
            }
            }
      }
   }
                  if(args.length == 1)
                  {
            if(args[0].equals("start"))
            {
               if(getConfig().getInt("SuperSmashMobs.Player.Max")>=2){
                  if(getConfig().getBoolean("SuperSmashMobs.Game.Start",true)){
                     for(@SuppressWarnings("unused") Player player:Bukkit.getOnlinePlayers()){
                  sender.sendMessage("2名以上参加しましたゲームカウントを始めます");
                  getConfig().set("SuperSmashMobs.Game.Start",false);
                  getConfig().set("SuperSmashMobs.Game.COUNT",true);
                       saveConfig();
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        ActionBarAPI.sendActionBarToAllPlayers("§a§lSuperSmashMobsが始まります : §5§l10");
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                          }
                     }
                  }, 20);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        ActionBarAPI.sendActionBarToAllPlayers("§a§lSuperSmashMobsが始まります : §5§l9");
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                          }
                     }
                  }, 40);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        ActionBarAPI.sendActionBarToAllPlayers("§a§lSuperSmashMobsが始まります : §5§l8");
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                          }
                     }
                  }, 60);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        ActionBarAPI.sendActionBarToAllPlayers("§a§lSuperSmashMobsが始まります : §5§l7");
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                          }
                     }
                  }, 80);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        ActionBarAPI.sendActionBarToAllPlayers("§a§lSuperSmashMobsが始まります : §5§l6");
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                          }
                     }
                  }, 100);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     @SuppressWarnings("deprecation")
                     public void run()
                     {

                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                              TitleAPI.sendFullTitle(player, 60, 60, 60, "§5§lSuperSmashMobs", "§a5");
                          }
                     }
                  }, 120);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     @SuppressWarnings("deprecation")
                     public void run()
                     {
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                              TitleAPI.sendFullTitle(player, 1, 60, 60, "§5§lSuperSmashMobs", "§a4");
                          }
                     }
                  }, 140);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     @SuppressWarnings("deprecation")
                     public void run()
                     {
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                              TitleAPI.sendFullTitle(player, 1, 60, 60, "§5§lSuperSmashMobs", "§a3");
                          }
                     }
                  }, 160);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     @SuppressWarnings("deprecation")
                     public void run()
                     {
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                              TitleAPI.sendFullTitle(player, 1, 60, 60, "§5§lSuperSmashMobs", "§a2");
                          }
                     }
                  }, 180);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     @SuppressWarnings("deprecation")
                     public void run()
                     {
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.NOTE_PIANO, 90, 1);
                              TitleAPI.sendFullTitle(player, 1, 60, 60, "§5§lSuperSmashMobs", "§a1");
                          }
                     }
                  }, 200);
                      Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     @SuppressWarnings("deprecation")
                     public void run()
                     {
                        for(Player player:Bukkit.getOnlinePlayers()){
                              player.playSound(player.getLocation(), Sound.LEVEL_UP, 90, 1);
                              TitleAPI.sendFullTitle(player, 1, 60, 60, "§5§lSuperSmashMobs", "§6§lStart");
                              if(getConfig().getStringList("redplayer").contains(player.getName())){
                                       player.teleport(SMASHA());
                                       getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0)*0 + 3);
                                       saveConfig();
                           }
                        }
                              for(Player player2:Bukkit.getOnlinePlayers()){
                                    player2.playSound(player2.getLocation(), Sound.LEVEL_UP, 90, 1);
                                    TitleAPI.sendFullTitle(player2, 1, 60, 60, "§5§lSuperSmashMobs", "§6§lStart");

                              if(getConfig().getStringList("blueplayer").contains(player2.getName())){
                                 player2.teleport(SMASHB());
                                 getConfig().set("SSM.Blue.Lives", getConfig().getInt("SSM.Blue.Lives", 0)*0 + 3);
                                 saveConfig();
                           }
                                    }
                              for(Player player3:Bukkit.getOnlinePlayers()){
                                    player3.playSound(player3.getLocation(), Sound.LEVEL_UP, 90, 1);
                                    TitleAPI.sendFullTitle(player3, 1, 60, 60, "§5§lSuperSmashMobs", "§6§lStart");

                              if(getConfig().getStringList("yellowplayer").contains(player3.getName())){
                                 getConfig().set("SSM.Yellow.Lives", getConfig().getInt("SSM.Yellow.Lives", 0)*0 + 3);
                                 saveConfig();
                                 player3.teleport(SMASHC());
                           }
                                    }

                     }
                  }, 220);
                      a = new BukkitRunnable(){
                         int gametimer;
                         public void run(){
                            if(gametimer<99999){
                               if(getConfig().getInt("SuperSmashMobs.Player.Max", 0)==1){
                                  cancel();
                                  if(getConfig().getInt("SSM.Red.Lives")>=1)
                                        {
                                     cancel();
                                     getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0) * 0);
                                     for(Player p:Bukkit.getOnlinePlayers()){
                                        if(getConfig().getStringList("redplayer").contains(p.getName())){
                                           if(getConfig().getBoolean("SuperSmashMobs.Game.COUNT",true)){
                                              getConfig().set("SuperSmashMobs.Game.COUNT",false);
                                           Bukkit.broadcastMessage("§7§l[§6§lSuperSmashMobs§7§l] §cWinner §7§l[§c§lRed§7§l] §a§l" + p.getName());
                                           getConfig().set("SuperSmashMobs.Game.Start",true);

                                           List<String> l = getConfig().getStringList("redplayer");
                                           l.remove(p.getName());
                                           getConfig().set("redplayer", l);
                                           saveConfig();
                                           p.sendMessage("§5§lSmashMobs§7を退出しました");
                                           //装備をnull(空=なし)にする
                                           p.getInventory().clear();
                                           p.getInventory().setArmorContents(null);
                                           p.updateInventory();
                                           getConfig().set("SuperSmashMobs.Game.RED",true);
                                           for(String s : getConfig().getStringList("redloc"))
                                           {
                                           String[] ss = s.split(",");
                                           //テレポート
                                           ((Player)p).teleport(new Location(Bukkit.getWorld(ss[1]),Double.parseDouble(ss[2]),Double.parseDouble(ss[3]),Double.parseDouble(ss[4]),Float.parseFloat(ss[5]),Float.parseFloat(ss[6])));
                                           List<String> la = getConfig().getStringList("redloc");
                                           la.remove(s);
                                           getConfig().set("redloc", la);
                                           getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
                                           saveConfig();

                                     cancel();
                                           }
                                        }
                                     }
                                        }
                               }
                            }
                            }
                         }
                         }.runTaskTimer(this, 3L, 3L);
                         new BukkitRunnable(){
                            int gametimer;
                            public void run(){
                         if(gametimer<99999){
                            if(getConfig().getInt("SuperSmashMobs.Player.Max", 0)==1){
                               cancel();
                               if(getConfig().getInt("SSM.Blue.Lives")>=1)
                                     {
                                  cancel();
                                  getConfig().set("SSM.Blue.Lives", getConfig().getInt("SSM.Blue.Lives", 0) * 0);
                                  for(Player p:Bukkit.getOnlinePlayers()){
                                          if(getConfig().getStringList("blueplayer").contains(p.getName())){
                                           if(getConfig().getBoolean("SuperSmashMobs.Game.COUNT",true)){
                                              getConfig().set("SuperSmashMobs.Game.COUNT",false);
                                           Bukkit.broadcastMessage("§7§l[§6§lSuperSmashMobs§7§l] §cWinner §7§l[§b§lBlue§7§l] §a§l" + p.getName());
                                           getConfig().set("SuperSmashMobs.Game.Start",true);
                                           saveConfig();

                                           List<String> l = getConfig().getStringList("blueplayer");
                                           l.remove(p.getName());
                                           getConfig().set("blueplayer", l);
                                           saveConfig();
                                           p.sendMessage("§5§lSmashMobs§7を退出しました");
                                           //装備をnull(空=なし)にする
                                           p.getInventory().clear();
                                           p.getInventory().setArmorContents(null);
                                           p.updateInventory();
                                           getConfig().set("SuperSmashMobs.Game.BLUE",true);
                                           for(String s : getConfig().getStringList("blueloc"))
                                           {
                                           String[] ss = s.split(",");
                                           //テレポート
                                           ((Player)p).teleport(new Location(Bukkit.getWorld(ss[1]),Double.parseDouble(ss[2]),Double.parseDouble(ss[3]),Double.parseDouble(ss[4]),Float.parseFloat(ss[5]),Float.parseFloat(ss[6])));
                                           List<String> la = getConfig().getStringList("blueloc");
                                           la.remove(s);
                                           getConfig().set("blueloc", la);
                                           getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
                                           saveConfig();

                                     cancel();
                  }
                     }
                                  }

                     }
                  }

                            }
            }
                         }
   }.runTaskTimer(this, 3L, 3L);
   new BukkitRunnable(){
      int gametimer;
      public void run(){
   if(gametimer<99999){
      if(getConfig().getInt("SuperSmashMobs.Player.Max", 0)==1){
         cancel();
         if(getConfig().getInt("SSM.Yellow.Lives")>=1)
               {
            cancel();
            getConfig().set("SSM.Yellow.Lives", getConfig().getInt("SSM.Yellow.Lives", 0) * 0);
            for(Player p:Bukkit.getOnlinePlayers()){
                     if(getConfig().getStringList("yellowplayer").contains(p.getName())){
                        if(getConfig().getBoolean("SuperSmashMobs.Game.COUNT",true)){
                           getConfig().set("SuperSmashMobs.Game.COUNT",false);
                     Bukkit.broadcastMessage("§7§l[§6§lSuperSmashMobs§7§l] §cWinner §7§l[§e§lYellow§7§l] §a§l" + p.getName());
                     getConfig().set("SuperSmashMobs.Game.Start",true);
                     saveConfig();

                     List<String> l = getConfig().getStringList("yellowplayer");
                     l.remove(p.getName());
                     getConfig().set("yellowplayer", l);
                     saveConfig();
                     p.sendMessage("§5§lSmashMobs§7を退出しました");
                     //装備をnull(空=なし)にする
                     p.getInventory().clear();
                     p.getInventory().setArmorContents(null);
                     p.updateInventory();
                     getConfig().set("SuperSmashMobs.Game.YELLOW",true);
                     for(String s : getConfig().getStringList("yellowloc"))
                     {
                     String[] ss = s.split(",");
                     //テレポート
                     ((Player)p).teleport(new Location(Bukkit.getWorld(ss[1]),Double.parseDouble(ss[2]),Double.parseDouble(ss[3]),Double.parseDouble(ss[4]),Float.parseFloat(ss[5]),Float.parseFloat(ss[6])));
                     List<String> la = getConfig().getStringList("yellowloc");
                     la.remove(s);
                     getConfig().set("yellowloc", la);
                     getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
                     saveConfig();
                     cancel();
}
   }
            }

   }
}

}
   }
   }
}.runTaskTimer(this, 3L, 3L);




                     }}}}
                  }if(args.length == 1)
                  {
                     if(args[0].equals("redspawn")){
                     Player p = (Player)sender;
                     p.sendMessage("§5SuperSmashMobs§7-§lチームカラー§cRED§7のスポーン地点を設定しました");

                     getConfig().set("smashr."+".world", ((Player)sender).getLocation().getWorld().getName());
                     getConfig().set("smashr."+".x", ((Player)sender).getLocation().getX());
                     getConfig().set("smashr."+".y", ((Player)sender).getLocation().getY());
                     getConfig().set("smashr."+".z", ((Player)sender).getLocation().getZ());
                     getConfig().set("smashr."+".yaw", ((Player)sender).getLocation().getYaw());
                     getConfig().set("smashr."+".pitch", ((Player)sender).getLocation().getPitch());
                     saveConfig();
                  }
                  }
                     if(args.length == 1)
                     {
                        if(args[0].equals("bluespawn")){
                        Player p = (Player)sender;
                        p.sendMessage("§5SuperSmashMobs§7-§lチームカラー§bBLUE§7のスポーン地点を設定しました");

                        getConfig().set("smashb."+".world", ((Player)sender).getLocation().getWorld().getName());
                        getConfig().set("smashb."+".x", ((Player)sender).getLocation().getX());
                        getConfig().set("smashb."+".y", ((Player)sender).getLocation().getY());
                        getConfig().set("smashb."+".z", ((Player)sender).getLocation().getZ());
                        getConfig().set("smashb."+".yaw", ((Player)sender).getLocation().getYaw());
                        getConfig().set("smashb."+".pitch", ((Player)sender).getLocation().getPitch());
                        saveConfig();
                     }
                     }
                        if(args.length == 1)
                        {
                           if(args[0].equals("yellowspawn")){
                           Player p = (Player)sender;
                           p.sendMessage("§5SuperSmashMobs§7-§lチームカラー§eYELLOW§7のスポーン地点を設定しました");

                           getConfig().set("smashc."+".world", ((Player)sender).getLocation().getWorld().getName());
                           getConfig().set("smashc."+".x", ((Player)sender).getLocation().getX());
                           getConfig().set("smashc."+".y", ((Player)sender).getLocation().getY());
                           getConfig().set("smashc."+".z", ((Player)sender).getLocation().getZ());
                           getConfig().set("smashc."+".yaw", ((Player)sender).getLocation().getYaw());
                           getConfig().set("smashc."+".pitch", ((Player)sender).getLocation().getPitch());
                           saveConfig();
                        }
      }if(args.length == 1)
      {
         if(args[0].equals("quit")){
            if(getConfig().getStringList("redplayer").contains(sender.getName())){
               List<String> l = getConfig().getStringList("redplayer");
               l.remove(sender.getName());
               getConfig().set("redplayer", l);
               saveConfig();
               sender.sendMessage("§5§lSmashMobs§7を退出しました");
               //装備をnull(空=なし)にする
               Player p = (Player) sender;
               p.getInventory().clear();
               p.getInventory().setArmorContents(null);
               p.updateInventory();
               getConfig().set("SuperSmashMobs.Game.RED",true);
               for(String s : getConfig().getStringList("redloc"))
               {
               String[] ss = s.split(",");
               //テレポート
               ((Player)sender).teleport(new Location(Bukkit.getWorld(ss[1]),Double.parseDouble(ss[2]),Double.parseDouble(ss[3]),Double.parseDouble(ss[4]),Float.parseFloat(ss[5]),Float.parseFloat(ss[6])));
               List<String> la = getConfig().getStringList("redloc");
               la.remove(s);
               getConfig().set("redloc", la);
               getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0)*0);
               getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
               saveConfig();
               }
            }
            if(getConfig().getStringList("blueplayer").contains(sender.getName())){
               List<String> l = getConfig().getStringList("blueplayer");
               l.remove(sender.getName());
               getConfig().set("blueplayer", l);
               saveConfig();
               sender.sendMessage("§5§lSmashMobs§7を退出しました");
               //装備をnull(空=なし)にする
               Player p = (Player) sender;
               p.getInventory().clear();
               p.getInventory().setArmorContents(null);
               p.updateInventory();
               getConfig().set("SuperSmashMobs.Game.BLUE",true);
               for(String s : getConfig().getStringList("blueloc"))
               {
               String[] ss = s.split(",");
               //テレポート
               ((Player)sender).teleport(new Location(Bukkit.getWorld(ss[1]),Double.parseDouble(ss[2]),Double.parseDouble(ss[3]),Double.parseDouble(ss[4]),Float.parseFloat(ss[5]),Float.parseFloat(ss[6])));
               List<String> la = getConfig().getStringList("blueloc");
               la.remove(s);
               getConfig().set("blueloc", la);
               getConfig().set("SSM.Blue.Lives", getConfig().getInt("SSM.Blue.Lives", 0)*0);
               getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
               saveConfig();
               }
            }
            if(getConfig().getStringList("yellowplayer").contains(sender.getName())){
               List<String> l = getConfig().getStringList("yellowplayer");
               l.remove(sender.getName());
               getConfig().set("yellowplayer", l);
               saveConfig();
               sender.sendMessage("§5§lSmashMobs§7を退出しました");
               //装備をnull(空=なし)にする
               Player p = (Player) sender;
               p.getInventory().clear();
               p.getInventory().setArmorContents(null);
               p.updateInventory();
               getConfig().set("SuperSmashMobs.Game.RED",true);
               getConfig().set("SuperSmashMobs.Game.YELLOW",true);
               getConfig().set("SuperSmashMobs.Game.BLUE",true);
               for(String s : getConfig().getStringList("yellowloc"))
               {
               String[] ss = s.split(",");
               //テレポート
               ((Player)sender).teleport(new Location(Bukkit.getWorld(ss[1]),Double.parseDouble(ss[2]),Double.parseDouble(ss[3]),Double.parseDouble(ss[4]),Float.parseFloat(ss[5]),Float.parseFloat(ss[6])));
               List<String> la = getConfig().getStringList("yellowloc");
               la.remove(s);
               getConfig().set("yellowloc", la);
               getConfig().set("SSM.Yellow.Lives", getConfig().getInt("SSM.Yellow.Lives", 0)*0);
               getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
               saveConfig();
               }
            }
         }
      }
      return false;
   }
   @EventHandler
   public void QuitServef(PlayerQuitEvent e){
      final Player p = e.getPlayer();
       PlayerQuit(p);
   }

     @EventHandler
       public void PlayerJoin(PlayerJoinEvent e) {


           final Player p = e.getPlayer();
           new BukkitRunnable(){

              public void run(){


                   ScoreboardManager manager = Bukkit.getScoreboardManager();
                   final Scoreboard board = manager.getNewScoreboard();
                   final Objective objective = board.registerNewObjective("test", "dummy");

                   objective.setDisplaySlot(DisplaySlot.SIDEBAR);
                   objective.setDisplayName(ChatColor.AQUA + (ChatColor.BOLD +  "SuperSmashMobs"));

                   Score score1 = objective.getScore(ChatColor.GREEN + "参加者");
                   score1.setScore(getConfig().getInt("SuperSmashMobs.Player.Max"));

                   Score score2= objective.getScore(ChatColor.RED + "リンゴ");
                   score2.setScore(getConfig().getInt("SSM.Red.Lives"));
                   Score score3= objective.getScore(ChatColor.BLUE + "ブルーベリー");
                   score3.setScore(getConfig().getInt("SSM.Blue.Lives"));
                   Score score4= objective.getScore(ChatColor.YELLOW + "バナナ");
                   score4.setScore(getConfig().getInt("SSM.Yellow.Lives"));
                   Score score5= objective.getScore(ChatColor.GREEN + "アボカド");
                   score5.setScore(getConfig().getInt("GreenPlayer.Life"));
                   Score score6= objective.getScore("§c§lGem :");
                   score6.setScore(getConfig().getInt("Gem." + p.getName() + ".Point"));


                   p.setScoreboard(board);

               }
           }.runTaskTimer(this, 3L, 3L);
}
      @EventHandler
      public void onDeath(PlayerRespawnEvent event)
      {
         //コンフィグのリストにプレイヤーの名前が存在していたら
         if(getConfig().getStringList("redplayer").contains(event.getPlayer().getName()))
         {

               if(getConfig().getInt("SSM.Red.Lives", 0) >=1){
                  getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0)-1);
               saveConfig();
               //リスポーンする場所を設定
               creeperkit(event.getPlayer());
               event.getPlayer().sendMessage("§c赤スポーンを検知しました");
               event.setRespawnLocation(SMASHA());
            //インベントリを設定
            event.getPlayer().updateInventory();
               }
               if(getConfig().getInt("SSM.Red.Lives", 0) ==0){
                  getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
                  getConfig().set("SuperSmashMobs.Game.RED",true);
                  saveConfig();
                  Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        List<String> l = getConfig().getStringList("redplayer");
                        l.remove(event.getPlayer().getName());
                        getConfig().set("redplayer", l);
                        saveConfig();
                          }

                  }, 20);
            }
         }
      }
         @EventHandler
         public void onDeath2(PlayerRespawnEvent event)
         {
         if(getConfig().getStringList("blueplayer").contains(event.getPlayer().getName()))
         {

               if(getConfig().getInt("SSM.Blue.Lives", 0) >=1){
                  getConfig().set("SSM.Blue.Lives", getConfig().getInt("SSM.Blue.Lives", 0)-1);
               saveConfig();
               creeperkit(event.getPlayer());
               //リスポーンする場所を設定
               event.setRespawnLocation(SMASHB());
               event.getPlayer().sendMessage("§b青スポーンを検知しました");
            //インベントリを設定
            event.getPlayer().updateInventory();
               }
               if(getConfig().getInt("SSM.Blue.Lives", 0) ==0){
                  getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
                  getConfig().set("SuperSmashMobs.Game.BLUE",true);

                  saveConfig();
                  Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        List<String> l = getConfig().getStringList("blueplayer");
                        l.remove(event.getPlayer().getName());
                        getConfig().set("blueplayer", l);
                        saveConfig();
                          }

                  }, 20);

            }
                                }
                             }
         @EventHandler
         public void onDeath3(PlayerRespawnEvent event)
         {
         if(getConfig().getStringList("yellowplayer").contains(event.getPlayer().getName()))
         {

               if(getConfig().getInt("SSM.Yellow.Lives", 0) >=1){
                  getConfig().set("SSM.Yellow.Lives", getConfig().getInt("SSM.Yellow.Lives", 0)-1);
               saveConfig();
               creeperkit(event.getPlayer());
               //リスポーンする場所を設定
               event.setRespawnLocation(SMASHC());
               event.getPlayer().sendMessage("§e黄スポーンを検知しました");

            //インベントリを設定
            event.getPlayer().updateInventory();
               }
               if(getConfig().getInt("SSM.Yellow.Lives", 0) ==0){
                  getConfig().set("SuperSmashMobs.Player.Max", getConfig().getInt("SuperSmashMobs.Player.Max", 0) - 1);
                  getConfig().set("SuperSmashMobs.Game.YELLOW",true);
                  saveConfig();
                  Bukkit.getScheduler().runTaskLater(this, new Runnable()
                  {
                     public void run()
                     {
                        List<String> l = getConfig().getStringList("yellowplayer");
                        l.remove(event.getPlayer().getName());
                        getConfig().set("yellowplayer", l);
                        saveConfig();
                          }

                  }, 20);
            }
                                                    }
                                                 }

public void PlayerQuit(Player player){
   Player p = player;
   if(getConfig().getStringList("redplayer").contains(p.getName()))
   {
   List<String> l = getConfig().getStringList("redplayer");
   l.remove(p.getName());
   getConfig().set("redplayer", l);
   saveConfig();
   Bukkit.broadcastMessage("§cREDTEAMが脱落しました");
   //装備をnull(空=なし)にする
   p.getInventory().clear();
   p.getInventory().setArmorContents(null);
   p.updateInventory();
   getConfig().set("SuperSmashMobs.Game.RED",true);
   saveConfig();
   getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0)*0);
   saveConfig();
}
   if(getConfig().getStringList("blueplayer").contains(p.getName()))
   {
   List<String> l = getConfig().getStringList("blueplayer");
   l.remove(p.getName());
   getConfig().set("blueplayer", l);
   saveConfig();
   Bukkit.broadcastMessage("§bBLUETEAMが脱落しました");
   //装備をnull(空=なし)にする
   p.getInventory().clear();
   p.getInventory().setArmorContents(null);
   p.updateInventory();
   getConfig().set("SuperSmashMobs.Game.BLUE",true);
   saveConfig();
   getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0)*0);
   saveConfig();
   }
   if(getConfig().getStringList("yellowplayer").contains(p.getName()))
   {
   List<String> l = getConfig().getStringList("yellowplayer");
   l.remove(p.getName());
   getConfig().set("yellowplayer", l);
   saveConfig();
   Bukkit.broadcastMessage("§eYELLOWTEAMが脱落しました");
   //装備をnull(空=なし)にする
   p.getInventory().clear();
   p.getInventory().setArmorContents(null);
   p.updateInventory();
   getConfig().set("SuperSmashMobs.Game.YELLOW",true);
   saveConfig();
   getConfig().set("SSM.Red.Lives", getConfig().getInt("SSM.Red.Lives", 0)*0);
   saveConfig();
   }
}
public void creeperkit(Player player){
   Player p = player;

      Bukkit.getScheduler().runTaskLater(this, new Runnable()
      {
         public void run()
         {
            if(p.getInventory().getItem(0).getItemMeta().getDisplayName().equals("Throw Nitoro")){
      if(getConfig().getInt("SSM.Red.Lives", 0) >0){
      MobDisguise mob = new MobDisguise(DisguiseType.CREEPER);
      mob.getWatcher().setCustomName(p.getName());
      mob.getWatcher().setCustomNameVisible(true);
      DisguiseAPI.disguiseToAll(p, mob);
      p.sendMessage("クリーパー読み込み完了");
      ItemStack ThrowBlock = new ItemStack(Material.STONE_SWORD,1,(short)0);
      ItemMeta ThrowBlockmeta = ThrowBlock.getItemMeta();
      ThrowBlockmeta.setDisplayName("Throw Nitoro");
      List<String>ThrowBlockl = new ArrayList<String>();
      ThrowBlockl.add("§a§lダメージ: 4 §7§l* 自分の目の前に火薬を飛ばし爆発させます");
      ThrowBlockmeta.setLore(ThrowBlockl);
      ThrowBlock.setItemMeta(ThrowBlockmeta);

      ItemStack TELEPORT = new ItemStack(Material.IRON_AXE,1,(short)0);
      ItemMeta TELEPORTmeta = TELEPORT.getItemMeta();
      ThrowBlockmeta.setDisplayName("Bomb");
      List<String>TELEPORTl = new ArrayList<String>();
      TELEPORTl.add("§a§lダメージ: 4~8 ");
      TELEPORTmeta.setLore(TELEPORTl);
      TELEPORT.setItemMeta(ThrowBlockmeta);
      p.getLocation().getWorld().playSound(p.getLocation(), Sound.CREEPER_HISS, 1, 1);

      p.getInventory().setItem(0, ThrowBlock);
      p.getInventory().setItem(1, TELEPORT);
         }
            }
         }
      }, 1);
      Bukkit.getScheduler().runTaskLater(this, new Runnable()
      {
         public void run()
         {
            if(p.getInventory().getItem(0).getItemMeta().getDisplayName().equals("Throw Block")){
      if(getConfig().getInt("SSM.Red.Lives", 0) >0){
         MobDisguise mob = new MobDisguise(DisguiseType.ENDERMAN);
         mob.getWatcher().setCustomName(p.getName());
         mob.getWatcher().setCustomNameVisible(true);
         DisguiseAPI.disguiseToAll(p, mob);

         p.sendMessage("エンダーマン読み込み完了");
         ItemStack ThrowBlock = new ItemStack(Material.IRON_SWORD,1,(short)0);
         ItemMeta ThrowBlockmeta = ThrowBlock.getItemMeta();
         ThrowBlockmeta.setDisplayName("Throw Block");
         List<String>ThrowBlockl = new ArrayList<String>();
         ThrowBlockl.add("§a§lダメージ: 6");
         ThrowBlockmeta.setLore(ThrowBlockl);
         ThrowBlock.setItemMeta(ThrowBlockmeta);
         p.getLocation().getWorld().playSound(p.getLocation(), Sound.ENDERMAN_SCREAM, 1, 1);

         ItemStack TELEPORT = new ItemStack(Material.IRON_AXE,1,(short)0);
         ItemMeta TELEPORTmeta = TELEPORT.getItemMeta();
         ThrowBlockmeta.setDisplayName("Teleport");
         List<String>TELEPORTl = new ArrayList<String>();
         TELEPORTl.add("§a§l高い位置にテレポート");
         TELEPORTmeta.setLore(TELEPORTl);
         TELEPORT.setItemMeta(ThrowBlockmeta);
         p.getLocation().getWorld().playSound(p.getLocation(), Sound.ENDERMAN_SCREAM, 1, 1);

         p.getInventory().setItem(0, ThrowBlock);
         p.getInventory().setItem(1, TELEPORT);
         }
            }
         }
      }, 1);
      Bukkit.getScheduler().runTaskLater(this, new Runnable()
      {
         public void run()
         {
            if(p.getInventory().getItem(0).getItemMeta().getDisplayName().equals("Throw Nitoro")){
      if(getConfig().getInt("SSM.Blue.Lives", 0) >0){
      MobDisguise mob = new MobDisguise(DisguiseType.CREEPER);
      mob.getWatcher().setCustomName(p.getName());
      mob.getWatcher().setCustomNameVisible(true);
      DisguiseAPI.disguiseToAll(p, mob);
      p.sendMessage("クリーパー読み込み完了");
      ItemStack ThrowBlock = new ItemStack(Material.STONE_SWORD,1,(short)0);
      ItemMeta ThrowBlockmeta = ThrowBlock.getItemMeta();
      ThrowBlockmeta.setDisplayName("Throw Nitoro");
      List<String>ThrowBlockl = new ArrayList<String>();
      ThrowBlockl.add("§a§lダメージ: 4 §7§l* 自分の目の前に火薬を飛ばし爆発させます");
      ThrowBlockmeta.setLore(ThrowBlockl);
      ThrowBlock.setItemMeta(ThrowBlockmeta);

      ItemStack TELEPORT = new ItemStack(Material.IRON_AXE,1,(short)0);
      ItemMeta TELEPORTmeta = TELEPORT.getItemMeta();
      ThrowBlockmeta.setDisplayName("Bomb");
      List<String>TELEPORTl = new ArrayList<String>();
      TELEPORTl.add("§a§lダメージ: 4~8 ");
      TELEPORTmeta.setLore(TELEPORTl);
      TELEPORT.setItemMeta(ThrowBlockmeta);
      p.getLocation().getWorld().playSound(p.getLocation(), Sound.CREEPER_HISS, 1, 1);

      p.getInventory().setItem(0, ThrowBlock);
      p.getInventory().setItem(1, TELEPORT);
         }
            }
         }
      }, 1);
      Bukkit.getScheduler().runTaskLater(this, new Runnable()
      {
         public void run()
         {
            if(p.getInventory().getItem(0).getItemMeta().getDisplayName().equals("Throw Block")){
      if(getConfig().getInt("SSM.Blue.Lives", 0) >0){
         MobDisguise mob = new MobDisguise(DisguiseType.ENDERMAN);
         mob.getWatcher().setCustomName(p.getName());
         mob.getWatcher().setCustomNameVisible(true);
         DisguiseAPI.disguiseToAll(p, mob);

         p.sendMessage("エンダーマン読み込み完了");
         ItemStack ThrowBlock = new ItemStack(Material.IRON_SWORD,1,(short)0);
         ItemMeta ThrowBlockmeta = ThrowBlock.getItemMeta();
         ThrowBlockmeta.setDisplayName("Throw Block");
         List<String>ThrowBlockl = new ArrayList<String>();
         ThrowBlockl.add("§a§lダメージ: 6");
         ThrowBlockmeta.setLore(ThrowBlockl);
         ThrowBlock.setItemMeta(ThrowBlockmeta);
         p.getLocation().getWorld().playSound(p.getLocation(), Sound.ENDERMAN_SCREAM, 1, 1);

         ItemStack TELEPORT = new ItemStack(Material.IRON_AXE,1,(short)0);
         ItemMeta TELEPORTmeta = TELEPORT.getItemMeta();
         ThrowBlockmeta.setDisplayName("Teleport");
         List<String>TELEPORTl = new ArrayList<String>();
         TELEPORTl.add("§a§l高い位置にテレポート");
         TELEPORTmeta.setLore(TELEPORTl);
         TELEPORT.setItemMeta(ThrowBlockmeta);
         p.getLocation().getWorld().playSound(p.getLocation(), Sound.ENDERMAN_SCREAM, 1, 1);

         p.getInventory().setItem(0, ThrowBlock);
         p.getInventory().setItem(1, TELEPORT);
         }
            }
         }
      }, 1);
      Bukkit.getScheduler().runTaskLater(this, new Runnable()
      {
         public void run()
         {
            if(p.getInventory().getItem(0).getItemMeta().getDisplayName().equals("Throw Nitoro")){
      if(getConfig().getInt("SSM.Yellow.Lives", 0) >0){
      MobDisguise mob = new MobDisguise(DisguiseType.CREEPER);
      mob.getWatcher().setCustomName(p.getName());
      mob.getWatcher().setCustomNameVisible(true);
      DisguiseAPI.disguiseToAll(p, mob);
      p.sendMessage("クリーパー読み込み完了");
      ItemStack ThrowBlock = new ItemStack(Material.STONE_SWORD,1,(short)0);
      ItemMeta ThrowBlockmeta = ThrowBlock.getItemMeta();
      ThrowBlockmeta.setDisplayName("Throw Nitoro");
      List<String>ThrowBlockl = new ArrayList<String>();
      ThrowBlockl.add("§a§lダメージ: 4 §7§l* 自分の目の前に火薬を飛ばし爆発させます");
      ThrowBlockmeta.setLore(ThrowBlockl);
      ThrowBlock.setItemMeta(ThrowBlockmeta);

      ItemStack TELEPORT = new ItemStack(Material.IRON_AXE,1,(short)0);
      ItemMeta TELEPORTmeta = TELEPORT.getItemMeta();
      ThrowBlockmeta.setDisplayName("Bomb");
      List<String>TELEPORTl = new ArrayList<String>();
      TELEPORTl.add("§a§lダメージ: 4~8 ");
      TELEPORTmeta.setLore(TELEPORTl);
      TELEPORT.setItemMeta(ThrowBlockmeta);
      p.getLocation().getWorld().playSound(p.getLocation(), Sound.CREEPER_HISS, 1, 1);

      p.getInventory().setItem(0, ThrowBlock);
      p.getInventory().setItem(1, TELEPORT);
         }
            }
         }
      }, 1);
      Bukkit.getScheduler().runTaskLater(this, new Runnable()
      {
         public void run()
         {
            if(p.getInventory().getItem(0).getItemMeta().getDisplayName().equals("Throw Block")){
      if(getConfig().getInt("SSM.Yellow.Lives", 0) >0){
         MobDisguise mob = new MobDisguise(DisguiseType.ENDERMAN);
         mob.getWatcher().setCustomName(p.getName());
         mob.getWatcher().setCustomNameVisible(true);
         DisguiseAPI.disguiseToAll(p, mob);

         p.sendMessage("エンダーマン読み込み完了");
         ItemStack ThrowBlock = new ItemStack(Material.IRON_SWORD,1,(short)0);
         ItemMeta ThrowBlockmeta = ThrowBlock.getItemMeta();
         ThrowBlockmeta.setDisplayName("Throw Block");
         List<String>ThrowBlockl = new ArrayList<String>();
         ThrowBlockl.add("§a§lダメージ: 6");
         ThrowBlockmeta.setLore(ThrowBlockl);
         ThrowBlock.setItemMeta(ThrowBlockmeta);
         p.getLocation().getWorld().playSound(p.getLocation(), Sound.ENDERMAN_SCREAM, 1, 1);

         ItemStack TELEPORT = new ItemStack(Material.IRON_AXE,1,(short)0);
         ItemMeta TELEPORTmeta = TELEPORT.getItemMeta();
         ThrowBlockmeta.setDisplayName("Teleport");
         List<String>TELEPORTl = new ArrayList<String>();
         TELEPORTl.add("§a§l高い位置にテレポート");
         TELEPORTmeta.setLore(TELEPORTl);
         TELEPORT.setItemMeta(ThrowBlockmeta);
         p.getLocation().getWorld().playSound(p.getLocation(), Sound.ENDERMAN_SCREAM, 1, 1);

         p.getInventory().setItem(0, ThrowBlock);
         p.getInventory().setItem(1, TELEPORT);
         }
            }
         }
      }, 1);
   }
Location SMASHA()
{
      return new Location(Bukkit.getWorld(getConfig().getString("smashr."+".world")),
            Double.parseDouble(getConfig().getString("smashr."+".x")),Double.parseDouble(getConfig().getString("smashr."+".y")),Double.parseDouble(getConfig().getString("smashr."+".z"))
            ,Float.parseFloat(getConfig().getString("smashr."+".yaw")),Float.parseFloat(getConfig().getString("smashr."+".pitch")));
}
Location SMASHB()
{
      return new Location(Bukkit.getWorld(getConfig().getString("smashb."+".world")),
            Double.parseDouble(getConfig().getString("smashb."+".x")),Double.parseDouble(getConfig().getString("smashb."+".y")),Double.parseDouble(getConfig().getString("smashb."+".z"))
            ,Float.parseFloat(getConfig().getString("smashb."+".yaw")),Float.parseFloat(getConfig().getString("smashb."+".pitch")));
}
Location SMASHC()
{
      return new Location(Bukkit.getWorld(getConfig().getString("smashc."+".world")),
            Double.parseDouble(getConfig().getString("smashc."+".x")),Double.parseDouble(getConfig().getString("smashc."+".y")),Double.parseDouble(getConfig().getString("smashc."+".z"))
            ,Float.parseFloat(getConfig().getString("smashc."+".yaw")),Float.parseFloat(getConfig().getString("smashc."+".pitch")));
}
}
デルタ
ID:81dee2b3
 

  • (PostNo.280052)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by うましゅー » 2016年8月09日(火) 19:19

プレイヤーがプレイヤーを殴ったときとプレイヤーがプレイヤーに殴られたときの処理を書きたいのですが、どのように書けばいいのでしょうか?
ニコニコ生放送にて生主をしています。
ついでにPluginも作ってます(新米)
アバター
うましゅー
ID:50149204
大工さん
 
記事: 49
登録日時: 2013年3月30日(土) 09:23

  • (PostNo.280054)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by リオン » 2016年8月09日(火) 19:46

プレイヤーがプレイヤーを殴ったときとプレイヤーがプレイヤーに殴られたときの処理を書きたいのですが、どのように書けばいいのでしょうか?

できるだけ自分でAPIを見て探してください。
今回のはイベントで可能なのでページ内検索で「event」などの言葉で調べて、使えそうなものを見つけてください。

調べてもみつからなかったら見てください。
「EntityDamageByEntityEvent」というイベントで可能です。
「getDamager()」でダメージを与えたエンティティを、
「getEntity()」でダメージが与えられたエンティティを取得できます。
アバター
リオン
ID:67545616
木を殴ってる
 
記事: 24
登録日時: 2013年5月13日(月) 11:58

  • (PostNo.281142)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Eyth » 2016年8月22日(月) 07:52

コンフィグに書かれた内容を取得するにはどうしたらいいでしょうか
例 プレイヤー名: 数値
このプレイヤー名のところが記述してあった場合、その名前をリストに登録して保存したいのですが
getString()では指定したものしか取得することができず
書いてあるものを取得する方法がわかりません。
だれか教えていただけないでしょうか。
説明下手ですみません
Eyth
ID:f86fe74b
 

1つ前へ次へ

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

x