Skip to content

Commit aa97008

Browse files
authored
Add files via upload
1 parent f22db9f commit aa97008

3 files changed

Lines changed: 167 additions & 0 deletions

File tree

src/config.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Toggle: true
2+
Layout: "&7[CM] %player%: %command%"
3+
4+
DisableCommands:
5+
- /login
6+
- /register
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package net.simplyrin.hononet.cm;
2+
3+
import java.util.List;
4+
5+
import org.bukkit.ChatColor;
6+
import org.bukkit.command.Command;
7+
import org.bukkit.command.CommandSender;
8+
import org.bukkit.entity.Player;
9+
import org.bukkit.event.EventHandler;
10+
import org.bukkit.event.Listener;
11+
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
12+
import org.bukkit.plugin.java.JavaPlugin;
13+
14+
import ru.tehkode.permissions.bukkit.PermissionsEx;
15+
16+
/**
17+
* Created by SimplyRin on 2018/02/01.
18+
*/
19+
public class Main extends JavaPlugin implements Listener {
20+
21+
/**
22+
* このプラグインは 2016/11/13 に作成されたプラグインを元に再構成されたものです。
23+
*/
24+
private static Main plugin;
25+
26+
@Override
27+
public void onEnable() {
28+
plugin = this;
29+
if(!plugin.getDescription().getAuthors().contains("SimplyRin")) {
30+
plugin.getServer().getPluginManager().disablePlugin(this);
31+
return;
32+
}
33+
34+
if(plugin.getServer().getPluginManager().getPlugin("PermissionsEx") == null) {
35+
plugin.getLogger().info(this.getPrefix() + "PermissionsEx が見つかりませんでした。プラグインを導入してください。");
36+
plugin.getServer().getPluginManager().disablePlugin(this);
37+
return;
38+
}
39+
40+
plugin.saveDefaultConfig();
41+
plugin.getCommand("cm").setExecutor(this);
42+
plugin.getServer().getPluginManager().registerEvents(this, this);
43+
}
44+
45+
public boolean oncommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
46+
if(!sender.hasPermission("commandmonitoring.use")) {
47+
sender.sendMessage(this.getPrefix() + "§cYou do not have access to this command");
48+
return true;
49+
}
50+
51+
if(args.length > 0) {
52+
if(args[0].equalsIgnoreCase("true") || args[0].equalsIgnoreCase("false")) {
53+
boolean b = Boolean.valueOf(args[0]);
54+
55+
plugin.getConfig().set("Toggle", b);
56+
plugin.saveConfig();
57+
plugin.reloadConfig();
58+
59+
sender.sendMessage(this.getPrefix() + "§aコマンド送信表示を " + (b ? "有効化" : "§c無効化") + " §aしました。");
60+
return true;
61+
}
62+
63+
if(args[0].equalsIgnoreCase("reload")) {
64+
plugin.reloadConfig();
65+
sender.sendMessage(this.getPrefix() + "§aConfig ファイルをリロードしました。");
66+
return true;
67+
}
68+
69+
if(args[0].equalsIgnoreCase("layout")) {
70+
if(args.length > 1) {
71+
String layout = "";
72+
for (int i = 1; i < args.length; i++) {
73+
layout = layout + args[i] + " ";
74+
}
75+
int length = layout.length();
76+
length--;
77+
layout = layout.substring(0, length);
78+
plugin.getConfig().set("Layout", layout);
79+
plugin.saveConfig();
80+
plugin.reloadConfig();
81+
82+
sender.sendMessage(this.getPrefix() + "§aレイアウトを以下に変更しました。");
83+
sender.sendMessage(this.getPrefix() + "§b'§a" + layout + "§b'");
84+
return true;
85+
}
86+
87+
sender.sendMessage(this.getPrefix() + "§cUsage: /cm layout <layout>");
88+
sender.sendMessage(this.getPrefix() + "§a置き換え文字");
89+
sender.sendMessage(this.getPrefix() + "%player: コマンドを送信したプレイヤー名に置き換わります。");
90+
sender.sendMessage(this.getPrefix() + "%command: 送信されたコマンドに置き換えます。");
91+
sender.sendMessage(this.getPrefix() + "%prefix: コマンドを送信したプレイヤーのプレフィックスに置き換わります。");
92+
sender.sendMessage(this.getPrefix() + "%suffix: コマンドを送信したプレイヤーのサフィックスに置き換わります。");
93+
return true;
94+
}
95+
}
96+
97+
sender.sendMessage(this.getPrefix() + "§ccommands:");
98+
sender.sendMessage(this.getPrefix() + "§a/cm true: コマンド送信表示を §b有効化 §aします。");
99+
sender.sendMessage(this.getPrefix() + "§a/cm true: コマンド送信表示を §c無効化 §aします。");
100+
sender.sendMessage(this.getPrefix() + "§a/cm reload: Configファイルをリロードします。");
101+
sender.sendMessage(this.getPrefix() + "§a/cm layout <layout>: コマンド送信時に表示されるレイアウトを変更します。");
102+
return true;
103+
}
104+
105+
@EventHandler
106+
public void oncommand(PlayerCommandPreprocessEvent event) {
107+
Player player = event.getPlayer();
108+
String command = event.getMessage();
109+
110+
String layout = plugin.getConfig().getString("Toggle");
111+
112+
layout = layout.replaceAll("%player", player.getName());
113+
layout = layout.replaceAll("%command", command);
114+
115+
try {
116+
layout = layout.replaceAll("%prefix", PermissionsEx.getUser(player).getGroups()[0].getPrefix());
117+
} catch (Exception e) {
118+
}
119+
120+
try {
121+
layout = layout.replaceAll("%suffix", PermissionsEx.getUser(player).getGroups()[0].getSuffix());
122+
} catch (Exception e) {
123+
}
124+
125+
layout = ChatColor.translateAlternateColorCodes('&', layout);
126+
127+
for(Player target : plugin.getServer().getOnlinePlayers()) {
128+
String[] args = command.split(" ");
129+
List<String> disablecommand = plugin.getConfig().getStringList("DisableCommands");
130+
131+
for (String disable : disablecommand) {
132+
if (args[0].equalsIgnoreCase(disable)) {
133+
return;
134+
}
135+
}
136+
137+
if(!target.hasPermission("commandmonitoring.view")) {
138+
return;
139+
}
140+
141+
if(!plugin.getConfig().getBoolean("Enable")) {
142+
return;
143+
}
144+
145+
target.sendMessage(layout);
146+
}
147+
}
148+
149+
public String getPrefix() {
150+
return "§e[§bCM§e] §f";
151+
}
152+
}

src/plugin.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
main: net.simplyrin.hononet.cm.Main
2+
version: 1.0
3+
name: CommandMonitoring
4+
depend: [PermissionsEx]
5+
author: SimplyRin
6+
7+
commands:
8+
cm:
9+
usage: /cm <args>

0 commit comments

Comments
 (0)