Skip to content

Commit 7169b85

Browse files
authored
Merge pull request #55 from AutoPluginsDev/develop
1.6.0
2 parents 5e2e464 + 58b39e3 commit 7169b85

File tree

8 files changed

+243
-47
lines changed

8 files changed

+243
-47
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>fr</groupId>
88
<artifactId>AutoCommand</artifactId>
9-
<version>1.5.10</version>
9+
<version>1.6.0</version>
1010
<packaging>jar</packaging>
1111

1212
<repositories>

src/main/java/fr/lumi/Commandes/CommandRunnerCommand.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public List<String> onTabComplete(CommandSender sender, Command cmd, String alia
8282
if (args.length == 3) l.add("addCommand");
8383
if (args.length == 3) l.add("removeCommand");
8484
if (args.length == 3) l.add("setDailyExecutionTime");
85+
if (args.length == 3) l.add("trigger");
8586

8687
if (args.length == 4) {
8788
if (Objects.equals(args[2], "setMessage")) {
@@ -241,6 +242,17 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
241242
acmd.saveInConfig(plugin.getCommandsConfig(), plugin);
242243
sender.sendMessage(plugin.getUt().replacePlaceHoldersForPlayer(plugin.getLangConfig().getString("CommandEdited"), acmd, (Player) player));
243244
}
245+
246+
if (Objects.equals(args[2], "trigger")) {
247+
248+
if (args.length == 3) {
249+
acmd.setTrigger("");
250+
} else
251+
acmd.setTime(args[3]);
252+
acmd.saveInConfig(plugin.getCommandsConfig(), plugin);
253+
sender.sendMessage(plugin.getUt().replacePlaceHoldersForPlayer(plugin.getLangConfig().getString("CommandEdited"), acmd, (Player) player));
254+
}
255+
244256
}
245257

246258

@@ -296,8 +308,9 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
296308
cmd.setacmdID("acmd" + plugin.getcommandList().size());
297309
plugin.executeCommand(cmd);
298310

299-
}
300311

312+
}
313+
sender.sendMessage(plugin.getUt().replacePlaceHoldersForPlayerPlgVar("Command not found, try /acmdhelp for more information."));
301314

302315
return true;
303316
}

src/main/java/fr/lumi/Main.java

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import fr.lumi.FileVerifiers.ConfigFileVerification;
1010
import fr.lumi.FileVerifiers.LangFileVerification;
1111
import fr.lumi.Util.*;
12+
import fr.lumi.events.ACMDEventWatcher;
1213
import org.bukkit.ChatColor;
1314
import org.bukkit.configuration.file.FileConfiguration;
1415
import org.bukkit.configuration.file.YamlConfiguration;
@@ -64,6 +65,9 @@ public boolean isPapiPresent() {
6465
// TODO: implement condition system
6566
ConditionVerifier amcdVerifier = new ConditionVerifier(this);
6667
dailyCommandExecuter executer;
68+
69+
ACMDEventWatcher eventWatcher;
70+
6771
CommandEditor acmdGUIEditor;
6872

6973
public CommandEditor getAcmdGUIEditor() {
@@ -278,6 +282,8 @@ public boolean Load() {
278282
Objects.requireNonNull(this.getCommand("acmdTime")).setExecutor(new CommandRunnerTime(this));
279283
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("ConsolePrefix") + "&e-Loading " + getCommandsConfig().getKeys(false).size() + " AutoComands-"));
280284

285+
286+
281287
//loading the commands in the plugin
282288
if (!loadCommandsTimeTable())
283289
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("ConsolePrefix") + "&6No AutoComands to execute"));
@@ -291,6 +297,11 @@ public boolean Load() {
291297
getServer().getPluginManager().registerEvents(acmdGUIEditor, this);
292298
Objects.requireNonNull(this.getCommand("acmdEditor")).setExecutor(new CommandRunnerEditor(this, acmdGUIEditor));
293299

300+
// register the event Listener "ACMDEventWatcher"
301+
eventWatcher = new ACMDEventWatcher(this);
302+
Bukkit.getPluginManager().registerEvents(eventWatcher, this);
303+
304+
294305
if (getConfig().getBoolean("DisplayAcmdInConsole"))
295306
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("ConsolePrefix") + " &e-------------------------------------------------"));
296307
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("ConsolePrefix") + " &aLoaded"));
@@ -362,25 +373,4 @@ public long convertToTick(long seconds) {
362373
return (long) seconds * 20;
363374
}
364375

365-
public static void getRessourceFile(File file, String resource, Main plugin) {
366-
try {
367-
if (!file.exists()) {
368-
369-
file.createNewFile();
370-
InputStream inputStream = plugin.getResource(resource);
371-
OutputStream outputStream = new FileOutputStream(file);
372-
byte[] buffer = new byte[1024];
373-
int bytesRead;
374-
while ((bytesRead = inputStream.read(buffer)) != -1) {
375-
outputStream.write(buffer, 0, bytesRead);
376-
}
377-
inputStream.close();
378-
outputStream.flush();
379-
outputStream.close();
380-
}
381-
} catch (IOException e) {
382-
e.printStackTrace();
383-
}
384-
YamlConfiguration.loadConfiguration(file);
385-
}
386376
}

src/main/java/fr/lumi/Util/CommandEditor.java

Lines changed: 146 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,24 @@
2222
public class CommandEditor implements Listener {
2323
private int LastOpened;
2424
private Inventory GUI_ChooseACMD;
25+
private Inventory GUI_Triggers;
26+
private ArrayList<Inventory> GUI_Commands;
2527
private String waitForChat;
2628
private ArrayList<Inventory> editorsListe;
2729
private final Main plugin;
30+
private int commandToModify;
2831

2932
public CommandEditor(Main plg) {
3033
plugin = plg;
34+
commandToModify = -1;
3135

3236

3337
createGUI_ChoosingACMD();
3438
reloadGUI_ChoosingACMD();
3539

40+
createTriggerMenu();
41+
reloadTriggerMenu();
42+
3643
createEditGui();
3744
reloadAllEditGUI();
3845
waitForChat = "";
@@ -100,7 +107,6 @@ public void openACMDEditor(Player p,int nb) {
100107
LastOpened = nb;
101108
}
102109

103-
104110
/*
105111
* Event handler for the inventory click event
106112
* Responsible of the click event in the inventory and the actions to be taken
@@ -133,9 +139,58 @@ public void GuiClickEvent(InventoryClickEvent e) {
133139
reloadGUI_ChoosingACMD();
134140
openchoosing(p);
135141
}
136-
}
137-
//menu edit
138-
if (editorsListe.contains(e.getClickedInventory())) {
142+
}else if ( e.getClickedInventory().equals(GUI_Triggers)){
143+
e.setCancelled(true);
144+
switch (slot){
145+
case 3:
146+
plugin.getcommandList().get(LastOpened).setTrigger("onPlayerJoin");
147+
openLast(((Player) e.getWhoClicked()).getPlayer());
148+
break;
149+
case 4:
150+
plugin.getcommandList().get(LastOpened).setTrigger("onPlayerQuit");
151+
openLast(((Player) e.getWhoClicked()).getPlayer());
152+
break;
153+
case 5:
154+
plugin.getcommandList().get(LastOpened).setTrigger("onServerEnable");
155+
openLast(((Player) e.getWhoClicked()).getPlayer());
156+
break;
157+
}
158+
plugin.getcommandList().get(LastOpened).saveInConfig(plugin.getCommandsConfig(),plugin);
159+
closeInventory(p);
160+
reloadAllEditGUI();
161+
openACMDEditor(p,LastOpened);
162+
} /*else if ( e.getClickedInventory().equals(GUI_Commands)){
163+
e.setCancelled(true);
164+
165+
if( slot < 53){
166+
if (e.isRightClick()){
167+
autocommand acmd = plugin.getcommandList().get(LastOpened);
168+
acmd.removeCommand(slot);
169+
acmd.saveInConfig(plugin.getCommandsConfig(),plugin);
170+
closeInventory(p);
171+
openACMDEditor(p,LastOpened);
172+
}else if (e.isLeftClick()){
173+
waitForChat = "command";
174+
commandToModify = slot;
175+
176+
closeInventory(p);
177+
}
178+
179+
}
180+
181+
switch (slot){
182+
case 53:
183+
waitForChat = "command";
184+
commandToModify = -1;
185+
p.sendMessage(plugin.getUt().replacePlaceHoldersForPlayerPlgVar("&4Type the command in the chat (type exit to exit) :"));
186+
closeInventory(p);
187+
break;
188+
}
189+
plugin.getcommandList().get(LastOpened).saveInConfig(plugin.getCommandsConfig(),plugin);
190+
closeInventory(p);
191+
openACMDEditor(p,LastOpened);
192+
} */else if (editorsListe.contains(e.getClickedInventory())) {
193+
//menu edit
139194
e.setCancelled(true);
140195

141196
autocommand acmd = plugin.getcommandList().get(editorsListe.indexOf(e.getClickedInventory()));
@@ -216,6 +271,15 @@ public void GuiClickEvent(InventoryClickEvent e) {
216271

217272
p.sendMessage(plugin.getUt().replacePlaceHoldersForPlayerPlgVar("&4Type the name in the chat (type exit to exit) :"));
218273
closeInventory(p);
274+
break;
275+
case 10:
276+
277+
//p.sendMessage(plugin.getUt().replacePlaceHoldersForPlayerPlgVar("&4Type the trigger in the chat (possible values: onPlayerJoin, onPlayerQuit, onServerEnable)(type exit to exit) :"));
278+
279+
closeInventory(p);
280+
p.openInventory(GUI_Triggers);
281+
break;
282+
219283
}
220284
acmd.saveInConfig(plugin.getCommandsConfig(), plugin);
221285
reloadAllEditGUI();
@@ -238,14 +302,18 @@ public void onChat(AsyncPlayerChatEvent e) {
238302
reloadAllEditGUI();
239303
reloadGUI_ChoosingACMD();
240304

241-
242-
plugin.getServer().getScheduler().callSyncMethod(plugin, () -> {
243-
openACMDEditor(e.getPlayer(), LastOpened);
244-
return null;
245-
});
305+
openLast(e.getPlayer());
246306
}
247307
}
248308

309+
310+
private void openLast(Player p ){
311+
plugin.getServer().getScheduler().callSyncMethod(plugin, () -> {
312+
openACMDEditor(p, LastOpened);
313+
return null;
314+
});
315+
}
316+
249317
@EventHandler
250318
public void onInventoryClose(InventoryCloseEvent e) {
251319
if (e.getInventory() == null) return;
@@ -335,6 +403,8 @@ public void updateACMDWithValue(String val, Player p) {
335403
acmd.setName(val);
336404
p.sendMessage(plugin.getUt().replacePlaceHoldersForPlayerPlgVar("&aName modified with succes"));
337405
clearLock(p);
406+
407+
338408
}
339409
acmd.saveInConfig(plugin.getCommandsConfig(), plugin);
340410
}
@@ -347,6 +417,61 @@ public void createGUI_ChoosingACMD() {
347417
GUI_ChooseACMD = Bukkit.createInventory(null, 54, "§2§l§oACMD editor");
348418
fillMainMenu();
349419
}
420+
421+
public void createTriggerMenu() {
422+
GUI_Triggers = Bukkit.createInventory(null, 9, "§2§l§oSelect a new trigger");
423+
fillTriggerMenu();
424+
}
425+
426+
public void reloadTriggerMenu(){
427+
GUI_Triggers.clear();
428+
fillTriggerMenu();
429+
}
430+
431+
/*public void createCommandMenu(autocommand acmd) {
432+
GUI_Commands = Bukkit.createInventory(null, 54, "§2§l§oSelect a new command");
433+
fillCommandMenu(acmd);
434+
}*/
435+
436+
/*public void reloadCommandMenu(autocommand acmd){
437+
GUI_Commands.clear();
438+
fillCommandMenu(acmd);
439+
}*/
440+
441+
/*public void fillCommandMenu(autocommand acmd){
442+
for (int i = 0; i < 54; i++) {
443+
new UIItem.ItemBuilder(Material.GRAY_STAINED_GLASS_PANE, "§8").setItem(GUI_Commands, i);
444+
}
445+
446+
for (int i = 0; i < acmd.getCommands().size(); i++) {
447+
ArrayList<String> lore = new ArrayList<String>();
448+
lore.add("§c§lleft Click to delete the command");
449+
lore.add("§c§lright Click to modify the command");
450+
new UIItem.ItemBuilder(Material.COMMAND_BLOCK, "§6§l" + acmd.getCommands().get(i)).setItem(GUI_Commands, i);
451+
}
452+
453+
new UIItem.ItemBuilder(Material.COMMAND_BLOCK, "§6§lAdd a minecraft command")
454+
.lore("§dAdd a new command to the list")
455+
.setItem(GUI_Commands, 53);
456+
}*/
457+
458+
459+
public void fillTriggerMenu(){
460+
for (int i = 0; i < 8; i++) {
461+
new UIItem.ItemBuilder(Material.GRAY_STAINED_GLASS_PANE, "§8").setItem(GUI_Triggers, i);
462+
}
463+
new UIItem.ItemBuilder(Material.GREEN_CONCRETE, "§6§lOnPlayerJoin")
464+
.lore("§dTriggers when a player joins the server")
465+
.setItem(GUI_Triggers, 3);
466+
new UIItem.ItemBuilder(Material.GREEN_CONCRETE, "§6§lOnPlayerQuit")
467+
.lore("§dTriggers when a player leaves the server")
468+
.setItem(GUI_Triggers, 4);
469+
new UIItem.ItemBuilder(Material.GREEN_CONCRETE, "§6§lOnServerEnable")
470+
.lore("§dTriggers when the server is enabled")
471+
.setItem(GUI_Triggers, 5);
472+
}
473+
474+
350475
public void fillMainMenu(){
351476
for (int i = 0; i < 54; i++) {
352477
new UIItem.ItemBuilder(Material.GRAY_STAINED_GLASS_PANE, "§8").setItem(GUI_ChooseACMD, i);
@@ -382,13 +507,13 @@ public Inventory fillGUI_EditACMD(autocommand acmd, Inventory gui) {
382507
lore = new ArrayList<String>();
383508
lore.add(acmd.isActive() ? "§aEnabled" : "§cDisabled");
384509

385-
new UIItem.ItemBuilder(Material.LEVER, eActive").lore(lore).setItem(gui, 1);
510+
new UIItem.ItemBuilder(Material.LEVER, eActivate the autoCommand").lore(lore).setItem(gui, 1);
386511

387512
// Running
388513
lore = new ArrayList<String>();
389514
lore.add(acmd.isRunning() ? "§aRunning" : "§cStopped");
390515

391-
new UIItem.ItemBuilder(Material.STONE_BUTTON, "§eRun").lore(lore).setItem(gui, 2);
516+
new UIItem.ItemBuilder(Material.STONE_BUTTON, "§eRun the autoCommand").lore(lore).setItem(gui, 2);
392517

393518
// Period
394519
lore = new ArrayList<String>();
@@ -403,15 +528,15 @@ public Inventory fillGUI_EditACMD(autocommand acmd, Inventory gui) {
403528
lore.add("§a" + acmd.getCycleInSec());
404529
}
405530

406-
new UIItem.ItemBuilder(Material.CLOCK, ePeriod").lore(lore).setItem(gui, 3);
531+
new UIItem.ItemBuilder(Material.CLOCK, eChange the Period").lore(lore).setItem(gui, 3);
407532

408533
// Delay
409-
new UIItem.ItemBuilder(Material.CLOCK, eDelay")
534+
new UIItem.ItemBuilder(Material.CLOCK, eChange the Delay")
410535
.lore("§a" + acmd.getDelay() + " tick").
411536
setItem(gui, 4);
412537

413538
// Daily execution
414-
new UIItem.ItemBuilder(Material.SUNFLOWER, eDaily execution").lore("§a" + acmd.getTime()).setItem(gui, 5);
539+
new UIItem.ItemBuilder(Material.SUNFLOWER, eChange the Daily execution hour").lore("§a" + acmd.getTime()).setItem(gui, 5);
415540

416541

417542
// Commands
@@ -430,18 +555,20 @@ public Inventory fillGUI_EditACMD(autocommand acmd, Inventory gui) {
430555

431556
lore.add("§a to remove a command with its CommandID §7)");
432557

433-
new UIItem.ItemBuilder(Material.COMMAND_BLOCK, eCommands").lore(lore).setItem(gui, 6);
558+
new UIItem.ItemBuilder(Material.COMMAND_BLOCK, eAdd a minecraft command").lore(lore).setItem(gui, 6);
434559

435560

436561
// RepeatTime
437-
new UIItem.ItemBuilder(Material.COMPARATOR, eRepeat Task").lore("§a" + acmd.getRepetition()).setItem(gui, 7);
562+
new UIItem.ItemBuilder(Material.COMPARATOR, eModify number of Repetition").lore("§a" + acmd.getRepetition()).setItem(gui, 7);
438563

439564
// Message
440-
new UIItem.ItemBuilder(Material.WRITABLE_BOOK, eMessage").lore("§a" + acmd.getmessage()).setItem(gui, 8);
565+
new UIItem.ItemBuilder(Material.WRITABLE_BOOK, eModify the message").lore("§a" + acmd.getmessage()).setItem(gui, 8);
441566

442567

443568
// Name
444-
new UIItem.ItemBuilder(Material.ITEM_FRAME, "§eName").lore("§a" + acmd.getName()).setItem(gui, 9);
569+
new UIItem.ItemBuilder(Material.ITEM_FRAME, "§eModify Name").lore("§a" + acmd.getName()).setItem(gui, 9);
570+
571+
new UIItem.ItemBuilder(Material.BELL, "§eSelect a new trigger").lore("§a" + acmd.getTrigger()).setItem(gui, 10);
445572

446573
// Delete button
447574
new UIItem.ItemBuilder(Material.RED_CONCRETE, "§4§lX §4DELETE THIS ACMD")
@@ -460,6 +587,7 @@ public Inventory fillGUI_EditACMD(autocommand acmd, Inventory gui) {
460587
}
461588
}
462589

590+
//reloadCommandMenu(acmd);
463591

464592
return gui;
465593
}

0 commit comments

Comments
 (0)