22
22
public class CommandEditor implements Listener {
23
23
private int LastOpened ;
24
24
private Inventory GUI_ChooseACMD ;
25
+ private Inventory GUI_Triggers ;
26
+ private ArrayList <Inventory > GUI_Commands ;
25
27
private String waitForChat ;
26
28
private ArrayList <Inventory > editorsListe ;
27
29
private final Main plugin ;
30
+ private int commandToModify ;
28
31
29
32
public CommandEditor (Main plg ) {
30
33
plugin = plg ;
34
+ commandToModify = -1 ;
31
35
32
36
33
37
createGUI_ChoosingACMD ();
34
38
reloadGUI_ChoosingACMD ();
35
39
40
+ createTriggerMenu ();
41
+ reloadTriggerMenu ();
42
+
36
43
createEditGui ();
37
44
reloadAllEditGUI ();
38
45
waitForChat = "" ;
@@ -100,7 +107,6 @@ public void openACMDEditor(Player p,int nb) {
100
107
LastOpened = nb ;
101
108
}
102
109
103
-
104
110
/*
105
111
* Event handler for the inventory click event
106
112
* Responsible of the click event in the inventory and the actions to be taken
@@ -133,9 +139,58 @@ public void GuiClickEvent(InventoryClickEvent e) {
133
139
reloadGUI_ChoosingACMD ();
134
140
openchoosing (p );
135
141
}
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
139
194
e .setCancelled (true );
140
195
141
196
autocommand acmd = plugin .getcommandList ().get (editorsListe .indexOf (e .getClickedInventory ()));
@@ -216,6 +271,15 @@ public void GuiClickEvent(InventoryClickEvent e) {
216
271
217
272
p .sendMessage (plugin .getUt ().replacePlaceHoldersForPlayerPlgVar ("&4Type the name in the chat (type exit to exit) :" ));
218
273
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
+
219
283
}
220
284
acmd .saveInConfig (plugin .getCommandsConfig (), plugin );
221
285
reloadAllEditGUI ();
@@ -238,14 +302,18 @@ public void onChat(AsyncPlayerChatEvent e) {
238
302
reloadAllEditGUI ();
239
303
reloadGUI_ChoosingACMD ();
240
304
241
-
242
- plugin .getServer ().getScheduler ().callSyncMethod (plugin , () -> {
243
- openACMDEditor (e .getPlayer (), LastOpened );
244
- return null ;
245
- });
305
+ openLast (e .getPlayer ());
246
306
}
247
307
}
248
308
309
+
310
+ private void openLast (Player p ){
311
+ plugin .getServer ().getScheduler ().callSyncMethod (plugin , () -> {
312
+ openACMDEditor (p , LastOpened );
313
+ return null ;
314
+ });
315
+ }
316
+
249
317
@ EventHandler
250
318
public void onInventoryClose (InventoryCloseEvent e ) {
251
319
if (e .getInventory () == null ) return ;
@@ -335,6 +403,8 @@ public void updateACMDWithValue(String val, Player p) {
335
403
acmd .setName (val );
336
404
p .sendMessage (plugin .getUt ().replacePlaceHoldersForPlayerPlgVar ("&aName modified with succes" ));
337
405
clearLock (p );
406
+
407
+
338
408
}
339
409
acmd .saveInConfig (plugin .getCommandsConfig (), plugin );
340
410
}
@@ -347,6 +417,61 @@ public void createGUI_ChoosingACMD() {
347
417
GUI_ChooseACMD = Bukkit .createInventory (null , 54 , "§2§l§oACMD editor" );
348
418
fillMainMenu ();
349
419
}
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
+
350
475
public void fillMainMenu (){
351
476
for (int i = 0 ; i < 54 ; i ++) {
352
477
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) {
382
507
lore = new ArrayList <String >();
383
508
lore .add (acmd .isActive () ? "§aEnabled" : "§cDisabled" );
384
509
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 );
386
511
387
512
// Running
388
513
lore = new ArrayList <String >();
389
514
lore .add (acmd .isRunning () ? "§aRunning" : "§cStopped" );
390
515
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 );
392
517
393
518
// Period
394
519
lore = new ArrayList <String >();
@@ -403,15 +528,15 @@ public Inventory fillGUI_EditACMD(autocommand acmd, Inventory gui) {
403
528
lore .add ("§a" + acmd .getCycleInSec ());
404
529
}
405
530
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 );
407
532
408
533
// Delay
409
- new UIItem .ItemBuilder (Material .CLOCK , "§eDelay " )
534
+ new UIItem .ItemBuilder (Material .CLOCK , "§eChange the Delay " )
410
535
.lore ("§a" + acmd .getDelay () + " tick" ).
411
536
setItem (gui , 4 );
412
537
413
538
// 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 );
415
540
416
541
417
542
// Commands
@@ -430,18 +555,20 @@ public Inventory fillGUI_EditACMD(autocommand acmd, Inventory gui) {
430
555
431
556
lore .add ("§a to remove a command with its CommandID §7)" );
432
557
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 );
434
559
435
560
436
561
// 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 );
438
563
439
564
// 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 );
441
566
442
567
443
568
// 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 );
445
572
446
573
// Delete button
447
574
new UIItem .ItemBuilder (Material .RED_CONCRETE , "§4§lX §4DELETE THIS ACMD" )
@@ -460,6 +587,7 @@ public Inventory fillGUI_EditACMD(autocommand acmd, Inventory gui) {
460
587
}
461
588
}
462
589
590
+ //reloadCommandMenu(acmd);
463
591
464
592
return gui ;
465
593
}
0 commit comments