Skip to content

Commit af82494

Browse files
Merge pull request #51 from TeamKun/develop
chore: v2.4
2 parents 316ced9 + e6f80e7 commit af82494

File tree

15 files changed

+114
-17
lines changed

15 files changed

+114
-17
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.kunmc.lab</groupId>
88
<artifactId>TeamKunPluginManager</artifactId>
9-
<version>2.3</version>
9+
<version>2.4</version>
1010
<packaging>jar</packaging>
1111

1212
<name>TeamKunPluginManager</name>

src/main/java/net/kunmc/lab/teamkunpluginmanager/TeamKunPluginManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import net.kunmc.lab.teamkunpluginmanager.plugin.KnownPlugins;
77
import net.kunmc.lab.teamkunpluginmanager.plugin.PluginEventListener;
88
import net.kunmc.lab.teamkunpluginmanager.utils.Say2Functional;
9+
import net.kunmc.lab.teamkunpluginmanager.utils.Session;
910
import org.bukkit.Bukkit;
1011
import org.bukkit.configuration.file.FileConfiguration;
1112
import org.bukkit.plugin.java.JavaPlugin;
@@ -21,10 +22,12 @@ public final class TeamKunPluginManager extends JavaPlugin
2122
public static TokenVault vault;
2223
public static Say2Functional functional;
2324
public static boolean enableBuildTree = true;
25+
public static Session session;
2426

2527
@Override
2628
public void onEnable()
2729
{
30+
session = new Session();
2831
saveDefaultConfig();
2932
plugin = this;
3033
config = getConfig();

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandAutoRemove.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.kunmc.lab.teamkunpluginmanager.commands;
22

3+
import net.kunmc.lab.teamkunpluginmanager.TeamKunPluginManager;
34
import net.kunmc.lab.teamkunpluginmanager.plugin.DependencyTree;
45
import net.kunmc.lab.teamkunpluginmanager.plugin.Installer;
56
import net.kunmc.lab.teamkunpluginmanager.utils.Messages;
@@ -15,6 +16,7 @@ public class CommandAutoRemove
1516
{
1617
public static ArrayList<String> onCommand(CommandSender sender, String[] args)
1718
{
19+
1820
if (sender != null && !sender.hasPermission("kpm.autoremove"))
1921
{
2022
sender.sendMessage(ChatColor.RED + "E: 権限がありません!");
@@ -25,6 +27,12 @@ public static ArrayList<String> onCommand(CommandSender sender, String[] args)
2527
if (sender == null)
2628
sender = Installer.dummySender();
2729

30+
if (!TeamKunPluginManager.session.lock())
31+
{
32+
sender.sendMessage(ChatColor.RED + "E: TeamKunPluginManagerが多重起動しています。");
33+
return null;
34+
}
35+
2836
AtomicInteger removed = new AtomicInteger();
2937
sender.sendMessage(ChatColor.LIGHT_PURPLE + "依存関係ツリーを読み込み中...");
3038
ArrayList<String> removables = DependencyTree.unusedPlugins();
@@ -33,6 +41,7 @@ public static ArrayList<String> onCommand(CommandSender sender, String[] args)
3341
sender.sendMessage(ChatColor.RED + "E: 削除可能なプラグインはありません。");
3442
sender.sendMessage(Messages.getStatusMessage(0, removed.get(), 0));
3543
sender.sendMessage(ChatColor.GREEN + "S: 操作が正常に完了しました。");
44+
TeamKunPluginManager.session.unlock();
3645
return rem;
3746
}
3847

@@ -58,6 +67,7 @@ public static ArrayList<String> onCommand(CommandSender sender, String[] args)
5867
});
5968
sender.sendMessage(Messages.getStatusMessage(0, removed.get(), 0));
6069
}
70+
TeamKunPluginManager.session.unlock();
6171
return rem;
6272
}
6373
}

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandClean.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,33 @@ public class CommandClean
1616
{
1717
public static void onCommand(CommandSender sender, String[] args)
1818
{
19-
2019
if (!sender.hasPermission("kpm.clean"))
2120
{
2221
sender.sendMessage(ChatColor.RED + "E: 権限がありません!");
2322
return;
2423
}
2524

26-
2725
if (DependencyTree.isErrors())
2826
{
2927
sender.sendMessage(Messages.getErrorMessage());
3028
sender.sendMessage(ChatColor.RED + "E: エラーが検出されたため、システムが保護されました。");
3129
return;
3230
}
3331

32+
if (!TeamKunPluginManager.session.lock())
33+
{
34+
sender.sendMessage(ChatColor.RED + "E: TeamKunPluginManagerが多重起動しています。");
35+
return;
36+
}
37+
38+
3439
sender.sendMessage(ChatColor.LIGHT_PURPLE + "依存関係ツリーを読み込み中...");
3540

3641
String[] removable = Installer.getRemovableDataDirs();
3742
if (removable.length == 0)
3843
{
3944
sender.sendMessage(ChatColor.RED + "E: 削除可能が項目が見つかりませんでした。");
45+
TeamKunPluginManager.session.unlock();
4046
return;
4147
}
4248

@@ -48,12 +54,14 @@ public static void onCommand(CommandSender sender, String[] args)
4854
if (!args[0].equals("all") && Arrays.stream(removable).noneMatch(s -> args[0].equalsIgnoreCase(s)))
4955
{
5056
sender.sendMessage(ChatColor.RED + "E: プラグインが見つかりませんでした。");
57+
TeamKunPluginManager.session.unlock();
5158
return;
5259
}
5360

5461
if (args.length == 2 && !args[1].equals("no-preserve") && !(sender instanceof Player))
5562
{
5663
sender.sendMessage(ChatColor.RED + "本当に実行する場合、次のコマンドを実行してください: /kpm clean " + args[0] + " no-preserve");
64+
TeamKunPluginManager.session.unlock();
5765
return;
5866
}
5967

@@ -66,6 +74,7 @@ public static void onCommand(CommandSender sender, String[] args)
6674
Installer.clean(args[0]);
6775
sender.sendMessage(Messages.getStatusMessage(0, args[0].equals("all") ? removable.length: 1, 0));
6876
sender.sendMessage(ChatColor.GREEN + "S: 削除に成功しました。");
77+
TeamKunPluginManager.session.unlock();
6978
return;
7079
}
7180

@@ -101,6 +110,7 @@ public static void onCommand(CommandSender sender, String[] args)
101110
if (!(sender instanceof Player))
102111
{
103112
sender.sendMessage(ChatColor.RED + "本当に実行する場合、次のコマンドを実行してください: /kpm clean all no-preserve");
113+
TeamKunPluginManager.session.unlock();
104114
return;
105115
}
106116
sender.sendMessage(ChatColor.RED + "本当に続行しますか? " +
@@ -116,13 +126,15 @@ public static void onCommand(CommandSender sender, String[] args)
116126
{
117127
case "n":
118128
sender.sendMessage(ChatColor.RED + "キャンセルしました。");
129+
TeamKunPluginManager.session.unlock();
119130
break;
120131
case "y":
121132
sender.sendMessage(ChatColor.GREEN + "削除を実行しています...");
122133
Arrays.stream(removable)
123134
.forEach(Installer::clean);
124135
sender.sendMessage(Messages.getStatusMessage(0, removable.length, 0));
125136
sender.sendMessage(ChatColor.GREEN + "S: 削除に成功しました。");
137+
TeamKunPluginManager.session.unlock();
126138
}
127139
}, "y", "n")
128140
);

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandExport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public static void onCommand(CommandSender sender, String[] args)
5252
if (!TeamKunPluginManager.plugin.isTokenAvailable())
5353
{
5454
sender.sendMessage(ChatColor.RED + "E: トークンがセットされていません!");
55-
sender.sendMessage(ChatColor.RED + "/kpm register でトークンをセットしてください。");
55+
sender.sendMessage(ChatColor.RED + "/kpm register でトークンを発行してください。");
5656
return;
5757
}
5858

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandFix.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.kunmc.lab.teamkunpluginmanager.commands;
22

3+
import net.kunmc.lab.teamkunpluginmanager.TeamKunPluginManager;
34
import net.kunmc.lab.teamkunpluginmanager.plugin.DependencyTree;
45
import org.bukkit.ChatColor;
56
import org.bukkit.command.CommandSender;
@@ -14,15 +15,23 @@ public static void onCommand(CommandSender sender, String[] args)
1415
return;
1516
}
1617

18+
if (!TeamKunPluginManager.session.lock())
19+
{
20+
sender.sendMessage(ChatColor.RED + "E: TeamKunPluginManagerが多重起動しています。");
21+
return;
22+
}
23+
1724
sender.sendMessage(ChatColor.LIGHT_PURPLE + "依存関係ツリーを読み込み中...");
1825
if (!DependencyTree.isErrors())
1926
{
2027
sender.sendMessage(ChatColor.RED + "E: エラーは検出されませんでした。");
28+
TeamKunPluginManager.session.unlock();
2129
return;
2230
}
2331

2432
sender.sendMessage(ChatColor.GREEN + "エラーを解決しています...");
2533
DependencyTree.fix();
2634
sender.sendMessage(ChatColor.GREEN + "S: エラーの解決に成功しました。");
35+
TeamKunPluginManager.session.unlock();
2736
}
2837
}

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandImport.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import net.kunmc.lab.teamkunpluginmanager.plugin.compactor.PluginContainer;
1111
import net.kunmc.lab.teamkunpluginmanager.utils.Messages;
1212
import net.kunmc.lab.teamkunpluginmanager.utils.PluginUtil;
13+
import net.kunmc.lab.teamkunpluginmanager.utils.Session;
1314
import net.kunmc.lab.teamkunpluginmanager.utils.URLUtils;
1415
import org.apache.commons.io.FileUtils;
1516
import org.apache.commons.validator.routines.UrlValidator;
@@ -38,10 +39,17 @@ public static void onCommand(CommandSender sender, String[] args)
3839
return;
3940
}
4041

42+
if (!TeamKunPluginManager.session.lock())
43+
{
44+
sender.sendMessage(ChatColor.RED + "E: TeamKunPluginManagerが多重起動しています。");
45+
return;
46+
}
47+
4148
if (args.length < 1)
4249
{
4350
sender.sendMessage(ChatColor.RED + "E: 引数が不足しています!");
4451
sender.sendMessage(ChatColor.RED + "使用法: /kpm import URL");
52+
TeamKunPluginManager.session.unlock();
4553
return;
4654
}
4755

@@ -54,7 +62,7 @@ public static void onCommand(CommandSender sender, String[] args)
5462
{
5563
sender.sendMessage(ChatColor.RED + "E: 第一引数に適切なURLを入力してください。");
5664
sender.sendMessage(Messages.getStatusMessage(add.get(), remove.get(), modify.get()));
57-
65+
TeamKunPluginManager.session.unlock();
5866
return;
5967
}
6068

@@ -74,6 +82,7 @@ public static void onCommand(CommandSender sender, String[] args)
7482
catch (JsonParseException e)
7583
{
7684
sender.sendMessage(ChatColor.RED + "E: JSONファイルが正しくないようです。");
85+
TeamKunPluginManager.session.unlock();
7786
return;
7887
}
7988

@@ -149,6 +158,6 @@ public void run()
149158

150159
sender.sendMessage(ChatColor.GREEN + "S: 正常にインポートしました。");
151160
sender.sendMessage(Messages.getStatusMessage(add.get(), remove.get(), modify.get()));
152-
161+
TeamKunPluginManager.session.unlock();
153162
}
154163
}

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandInstall.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ public class CommandInstall
1010
{
1111
public static void onCommand(CommandSender sender, String[] args)
1212
{
13+
1314
if (!sender.hasPermission("kpm.install"))
1415
{
1516
sender.sendMessage(ChatColor.RED + "E: 権限がありません!");
1617
return;
1718
}
1819

19-
2020
if (args.length < 1)
2121
{
2222
sender.sendMessage(ChatColor.RED + "E: 引数が不足しています!");
@@ -27,16 +27,25 @@ public static void onCommand(CommandSender sender, String[] args)
2727
if (!TeamKunPluginManager.plugin.isTokenAvailable())
2828
{
2929
sender.sendMessage(ChatColor.RED + "E: トークンがセットされていません!");
30-
sender.sendMessage(ChatColor.RED + "/kpm register でトークンをセットしてください。");
30+
sender.sendMessage(ChatColor.RED + "/kpm register でトークンを発行してください。");
31+
TeamKunPluginManager.session.unlock();
3132
return;
3233
}
3334

35+
if (!TeamKunPluginManager.session.lock())
36+
{
37+
sender.sendMessage(ChatColor.RED + "E: TeamKunPluginManagerが多重起動しています。");
38+
return;
39+
}
40+
41+
3442
new BukkitRunnable()
3543
{
3644
@Override
3745
public void run()
3846
{
3947
Installer.install(sender, args[0], false, false, false);
48+
TeamKunPluginManager.session.unlock();
4049
}
4150
}.runTaskAsynchronously(TeamKunPluginManager.plugin);
4251
}

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandRegister.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package net.kunmc.lab.teamkunpluginmanager.commands;
22

33
import net.kunmc.lab.teamkunpluginmanager.TeamKunPluginManager;
4+
import net.kunmc.lab.teamkunpluginmanager.utils.Say2Functional;
45
import org.bukkit.ChatColor;
6+
import org.bukkit.command.BlockCommandSender;
57
import org.bukkit.command.CommandSender;
8+
import org.bukkit.entity.Player;
69

710
public class CommandRegister
811
{
@@ -14,16 +17,22 @@ public static void onCommand(CommandSender sender, String[] args)
1417
return;
1518
}
1619

17-
if (args.length < 1)
20+
if (args.length < 1 && sender instanceof BlockCommandSender)
1821
{
1922
sender.sendMessage(ChatColor.RED + "E: 引数が不足しています!");
2023
sender.sendMessage(ChatColor.RED + "使用法: /kpm register <Token>");
2124
return;
2225
}
2326

27+
if (!TeamKunPluginManager.session.lock())
28+
{
29+
sender.sendMessage(ChatColor.RED + "E: TeamKunPluginManagerが多重起動しています。");
30+
return;
31+
}
32+
2433

2534
TeamKunPluginManager.vault.vault(args[0]);
2635
sender.sendMessage(ChatColor.GREEN + "S: トークンを正常に保管しました!");
27-
36+
TeamKunPluginManager.session.unlock();
2837
}
2938
}

src/main/java/net/kunmc/lab/teamkunpluginmanager/commands/CommandReload.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ public static void onCommand(CommandSender sender, String[] args)
1818
return;
1919
}
2020

21-
2221
if (args.length < 1)
2322
{
2423
sender.sendMessage(ChatColor.RED + "E: 引数が不足しています!");
@@ -34,14 +33,20 @@ public static void onCommand(CommandSender sender, String[] args)
3433
return;
3534
}
3635

36+
if (!TeamKunPluginManager.session.lock())
37+
{
38+
sender.sendMessage(ChatColor.RED + "E: TeamKunPluginManagerが多重起動しています。");
39+
return;
40+
}
41+
3742
new BukkitRunnable()
3843
{
3944
@Override
4045
public void run()
4146
{
4247
PluginUtil.reload(plugin);
4348
sender.sendMessage(ChatColor.GREEN + "S: " + args[0] + " を正常に再読み込みしました。");
44-
49+
TeamKunPluginManager.session.unlock();
4550
}
4651
}.runTaskAsynchronously(TeamKunPluginManager.plugin);
4752
}

0 commit comments

Comments
 (0)