1010
1111import com .projectkorra .projectkorra .command .PKCommand ;
1212
13+ import me .simplicitee .project .items .BendingItem .Usage ;
1314import me .simplicitee .project .items .gui .ItemGui ;
1415import net .md_5 .bungee .api .ChatColor ;
1516
@@ -18,7 +19,7 @@ public class ItemCommand extends PKCommand {
1819 private ItemGui gui ;
1920
2021 public ItemCommand () {
21- super ("item" , "/bending item <give <item> [player] / list / gui>" , "Do many things with bending items!" , new String [] {"item" });
22+ super ("item" , "/bending item <give <item> [player] / list / gui / stats <item> >" , "Do many things with bending items!" , new String [] {"item" });
2223 gui = new ItemGui (ItemManager .listItems ());
2324 }
2425
@@ -29,7 +30,9 @@ public void execute(CommandSender sender, List<String> args) {
2930 }
3031
3132 if (args .get (0 ).equalsIgnoreCase ("give" )) {
32- if (args .size () < 2 ) {
33+ if (!hasPermission (sender , "give" )) {
34+ return ;
35+ } else if (args .size () < 2 ) {
3336 sender .sendMessage (ChatColor .RED + "Not enough arguments!" );
3437 return ;
3538 }
@@ -61,7 +64,9 @@ public void execute(CommandSender sender, List<String> args) {
6164
6265 sender .sendMessage (ItemManager .listItems ().stream ().map ((b ) -> "- " + ChatColor .BOLD + b .getInternalName () + ChatColor .RESET + " [" + b .getDisplayName () + ChatColor .RESET + "]" ).collect (Collectors .toList ()).toArray (new String [0 ]));
6366 } else if (args .get (0 ).equalsIgnoreCase ("gui" )) {
64- if (!(sender instanceof Player )) {
67+ if (!hasPermission (sender , "gui" )) {
68+ return ;
69+ } else if (!(sender instanceof Player )) {
6570 sender .sendMessage (ChatColor .RED + "Player only command!" );
6671 return ;
6772 } else if (args .size () > 1 ) {
@@ -98,6 +103,35 @@ public void execute(CommandSender sender, List<String> args) {
98103 stats .add ("Usage: " + item .getUsage ().toString ());
99104 stats .addAll (item .listMods ());
100105 sender .sendMessage (stats .toArray (new String [0 ]));
106+ } else if (args .get (0 ).equalsIgnoreCase ("equip" )) {
107+ if (!hasPermission (sender , "equip" )) {
108+ return ;
109+ } else if (!(sender instanceof Player )) {
110+ sender .sendMessage (ChatColor .RED + "Player only command!" );
111+ return ;
112+ } else if (args .size () > 1 ) {
113+ sender .sendMessage (ChatColor .RED + "Too many arguments!" );
114+ return ;
115+ }
116+
117+ Player player = (Player ) sender ;
118+ BendingItem item = ItemManager .get (player .getInventory ().getItemInMainHand ());
119+
120+ if (item == null ) {
121+ sender .sendMessage (ChatColor .RED + "Invalid bending item!" );
122+ return ;
123+ } else if (item .getUsage () != Usage .HOLDING ) {
124+ sender .sendMessage (ChatColor .RED + "Can only equip items used by HOLDING!" );
125+ return ;
126+ }
127+
128+ if (!ItemManager .equipped (player )) {
129+ sender .sendMessage (ChatColor .GREEN + "Equipped" );
130+ ItemManager .equip (player , item );
131+ } else {
132+ sender .sendMessage (ChatColor .GREEN + "Unequipped" );
133+ ItemManager .unequip (player );
134+ }
101135 } else {
102136 sender .sendMessage (ChatColor .RED + "Unknown argument given!" );
103137 return ;
0 commit comments