Skip to content

Commit b112a02

Browse files
author
Adrian Lübke
committed
Added new features and autocompletion for some commands
1 parent 8e03af2 commit b112a02

File tree

12 files changed

+250
-110
lines changed

12 files changed

+250
-110
lines changed

Diff for: src/main/java/play/ai/dragonrealm/geiloutils/commands/kits/CommandGeiloKit.java

+126-14
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,24 @@
33
import net.minecraft.command.CommandBase;
44
import net.minecraft.command.CommandException;
55
import net.minecraft.command.ICommandSender;
6+
import net.minecraft.entity.player.EntityPlayer;
67
import net.minecraft.server.MinecraftServer;
78
import net.minecraft.server.management.PlayerProfileCache;
9+
import net.minecraft.util.math.BlockPos;
810
import net.minecraft.util.text.ITextComponent;
911
import net.minecraft.util.text.TextComponentString;
1012
import play.ai.dragonrealm.geiloutils.config.ConfigurationManager;
1113
import play.ai.dragonrealm.geiloutils.config.kits.Kit;
1214
import play.ai.dragonrealm.geiloutils.config.kits.KitItem;
1315
import play.ai.dragonrealm.geiloutils.config.permissions.Permission;
16+
import play.ai.dragonrealm.geiloutils.utils.ArrayUtils;
17+
import play.ai.dragonrealm.geiloutils.utils.ItemUtils;
1418
import play.ai.dragonrealm.geiloutils.utils.KitUtils;
19+
import play.ai.dragonrealm.geiloutils.utils.PermissionUtils;
20+
21+
import javax.annotation.Nullable;
22+
import java.util.ArrayList;
23+
import java.util.List;
1524

1625
public class CommandGeiloKit extends CommandBase{
1726

@@ -25,10 +34,36 @@ public String getUsage(ICommandSender sender) {
2534
return "Manage your kits";
2635
}
2736

37+
@Override
38+
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos){
39+
List<String> tmpList = new ArrayList<String>();
40+
EntityPlayer player;
41+
if(sender instanceof EntityPlayer) {
42+
player = (EntityPlayer) sender;
43+
}
44+
45+
if(args.length == 1) {
46+
tmpList.add("addPermission");
47+
tmpList.add("addItem");
48+
tmpList.add("delPermission");
49+
tmpList.add("delItem");
50+
tmpList.add("create");
51+
tmpList.add("list");
52+
tmpList.add("delete");
53+
tmpList.add("info");
54+
55+
return ArrayUtils.startsWith(tmpList, args[0]);
56+
}
57+
58+
//TODO: Tab Completion
59+
60+
return tmpList;
61+
}
62+
2863
@Override
2964
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
3065
ITextComponent msg;
31-
if(args.length == 2 && args[0].equals("create") && !args[1].equals(null)) {
66+
if(args.length == 2 && args[0].equals("create") && !args[1].equals("")) {
3267
if(KitUtils.doesKitExist(args[1])) {
3368
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "This kit already exists");
3469
sender.sendMessage(msg);
@@ -44,7 +79,7 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
4479
}
4580
}
4681

47-
if(args.length == 2 && args[0].equals("delete") && !args[1].equals(null)) {
82+
if(args.length == 2 && args[0].equals("delete") && !args[1].equals("")) {
4883
String kit = KitUtils.removeKitByName(args[1]);
4984
if(!kit.equals("")) {
5085
ConfigurationManager.syncFromFields();
@@ -67,31 +102,105 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
67102
}
68103
}
69104

70-
if(args.length == 3 && args[0].equals("addItem") && !args[1].equals(null) && !args[2].equals(null)) {
105+
if(args.length == 5 && args[0].equals("addItem") && !args[1].equals("") && !args[2].equals("")) {
71106
if(KitUtils.doesKitExist(args[1])) {
72-
107+
Kit kit = KitUtils.getKitByName(args[1]);
108+
if(ItemUtils.doesItemExist(args[2])){
109+
if(!KitUtils.doesKitHaveItem(kit, new KitItem(args[2], Integer.parseInt(args[3]), 0))){
110+
kit.getItems().add(new KitItem(args[2], Integer.parseInt(args[3]), Integer.parseInt(args[4])));
111+
KitUtils.updateKit(kit);
112+
113+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Added Item to kit");
114+
sender.sendMessage(msg);
115+
}else{
116+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Kit already has that item");
117+
sender.sendMessage(msg);
118+
}
119+
}else{
120+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find the item '" + args[2] + "'. Try tab completion");
121+
sender.sendMessage(msg);
122+
}
123+
}else{
124+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find kit '" + args[1] + "'. Try /geilokit list");
125+
sender.sendMessage(msg);
73126
}
74127
}
75128

76-
if(args.length == 3 && args[0].equals("addPermission") && !args[1].equals(null) && !args[2].equals(null)) {
129+
if(args.length == 3 && args[0].equals("addPermission") && !args[1].equals("") && !args[2].equals("")) {
77130
if(KitUtils.doesKitExist(args[1])) {
78-
79-
}
131+
if(PermissionUtils.doesPermissionExist(args[2])){
132+
if(!KitUtils.doesKitHavePermission(KitUtils.getKitByName(args[1]), new Permission(args[2]))) {
133+
Kit kit = KitUtils.getKitByName(args[1]);
134+
kit.getPermissionList().add(new Permission(args[2]));
135+
KitUtils.updateKit(kit);
136+
137+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Added permission to kit");
138+
sender.sendMessage(msg);
139+
}else{
140+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Kit already has that permission");
141+
sender.sendMessage(msg);
142+
}
143+
}else{
144+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find permissions '" + args[2] + "'. Try /geiloperm list");
145+
sender.sendMessage(msg);
146+
}
147+
}else{
148+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find kit '" + args[1] + "'. Try /geilokit list");
149+
sender.sendMessage(msg);
150+
}
80151
}
81152

82-
if(args.length == 3 && args[0].equals("removeItem") && !args[1].equals(null) && !args[2].equals(null)) {
153+
if(args.length == 4 && args[0].equals("removeItem") && !args[1].equals("") && !args[2].equals("")) {
83154
if(KitUtils.doesKitExist(args[1])) {
84-
85-
}
155+
Kit kit = KitUtils.getKitByName(args[1]);
156+
if(ItemUtils.doesItemExist(args[2])){
157+
KitItem kitItem = new KitItem(args[2], Integer.parseInt(args[3]), 0);
158+
if(KitUtils.doesKitHaveItem(kit, kitItem)){
159+
KitUtils.updateKit(KitUtils.removeItemFromKit(kit, kitItem));
160+
161+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Removed the item from the Kit");
162+
sender.sendMessage(msg);
163+
}else{
164+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Kit doesn't have that item");
165+
sender.sendMessage(msg);
166+
}
167+
}else{
168+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find item '" + args[2] + "'. Try tab completion");
169+
sender.sendMessage(msg);
170+
}
171+
}else{
172+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find kit '" + args[1] + "'. Try /geilokit list");
173+
sender.sendMessage(msg);
174+
}
86175
}
87176

88-
if(args.length == 3 && args[0].equals("removePermission") && !args[1].equals(null) && !args[2].equals(null)) {
177+
if(args.length == 3 && args[0].equals("removePermission") && !args[1].equals("") && !args[2].equals("")) {
89178
if(KitUtils.doesKitExist(args[1])) {
90-
179+
if(KitUtils.doesKitExist(args[1])) {
180+
if(PermissionUtils.doesPermissionExist(args[2])){
181+
if(KitUtils.doesKitHavePermission(KitUtils.getKitByName(args[1]), new Permission(args[2]))) {
182+
Kit kit = KitUtils.getKitByName(args[1]);
183+
KitUtils.removePermissionFromKit(kit, new Permission(args[2]));
184+
KitUtils.updateKit(kit);
185+
186+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Removed permission from kit");
187+
sender.sendMessage(msg);
188+
}else{
189+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Kit doesn't have that permission");
190+
sender.sendMessage(msg);
191+
}
192+
}else{
193+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find permissions '" + args[2] + "'. Try /geiloperm list");
194+
sender.sendMessage(msg);
195+
}
196+
}else{
197+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find kit '" + args[1] + "'. Try /geilokit list");
198+
sender.sendMessage(msg);
199+
}
91200
}
92201
}
93202

94-
if(args.length == 2 && args[0].equals("info") && !args[1].equals(null)) {
203+
if(args.length == 2 && args[0].equals("info") && !args[1].equals("")) {
95204
if(KitUtils.doesKitExist(args[1])) {
96205
Kit kit = KitUtils.getKitByName(args[1]);
97206
// Beginning
@@ -127,7 +236,10 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
127236
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Items: " + tmp.substring(0, tmp.length() - 1));
128237
sender.sendMessage(msg);
129238
}
130-
}
239+
}else{
240+
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Couldn't find kit");
241+
sender.sendMessage(msg);
242+
}
131243
}
132244
}
133245

Diff for: src/main/java/play/ai/dragonrealm/geiloutils/commands/permissions/CommandGeiloPerm.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
2828
ITextComponent msg;
2929
if(args.length > 0) {
3030
if(args[0].equals("create")) {
31-
if(!args[1].equals(null)) {
31+
3232
if(args.length == 2) {
3333
Permission perm = new Permission(args[1]);
3434
ConfigurationManager.getPermissionsConfig().getPermissions().add(perm);
@@ -40,14 +40,10 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
4040
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Wrong Syntax: /geiloperm create <name>");
4141
sender.sendMessage(msg);
4242
}
43-
}else {
44-
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Wrong Syntax: /geiloperm create <name>");
45-
sender.sendMessage(msg);
46-
}
4743
}
4844

4945
if((args[0].equals("delete") || args[0].equals("remove"))) {
50-
if(args.length == 2 && !args[1].equals(null)) {
46+
if(args.length == 2) {
5147
if(PermissionUtils.doesPermissionExist(args[1])) {
5248
if(!PermissionUtils.removePermission(args[1]).equals("")) {
5349
msg = new TextComponentString(ConfigurationManager.getGeneralConfig().getCommandPrefix() + "Deleted the permission '" + args[1] + "'");

Diff for: src/main/java/play/ai/dragonrealm/geiloutils/commands/ranks/CommandGeiloRank.java

+18-10
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,11 @@ public String getUsage(ICommandSender sender) {
4040

4141
@Override
4242
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos){
43-
//TODO: Make this better (More precise)
43+
//TODO: Add addUser and delUser
4444
List<String> tmpList = new ArrayList<String>();
4545
EntityPlayer player;
4646
if(sender instanceof EntityPlayer) {
4747
player = (EntityPlayer) sender;
48-
}else {
49-
5048
}
5149

5250
if(args.length == 1) {
@@ -59,17 +57,27 @@ public List<String> getTabCompletions(MinecraftServer server, ICommandSender sen
5957
tmpList.add("delete");
6058
tmpList.add("info");
6159

62-
return ArrayUtils.startsWith(tmpList, args[1]);
60+
return ArrayUtils.startsWith(tmpList, args[0]);
6361
}
6462

65-
if(args.length == 2 && (args[1].equals("delete") || args[1].equals("info"))){
66-
tmpList.addAll(ArrayUtils.startsWith(PermissionUtils.getRankNameList(), args[1]));
67-
return tmpList;
63+
if(args.length == 2 && (args[0].equals("delete") || args[0].equals("info"))){
64+
return ArrayUtils.startsWith(PermissionUtils.getRankNameList(), args[1]);
65+
}
66+
67+
if(args.length == 3 && args[0].equals("addPerm")){
68+
return ArrayUtils.startsWith(PermissionUtils.getPermissionNames(), args[2]);
69+
}
70+
71+
if(args.length == 2 && args[0].equals("addPerm")){
72+
return ArrayUtils.startsWith(PermissionUtils.getRankNameList(), args[1]);
73+
}
74+
75+
if(args.length == 3 && args[0].equals("delPerm")){
76+
return ArrayUtils.startsWith(PermissionUtils.getPermissionNamesOfRank(args[1]), args[2]);
6877
}
6978

70-
if(args.length == 2 && args[1].equals("addPerm")){
71-
tmpList.addAll(ArrayUtils.startsWith(PermissionUtils.getPermissionNames(), args[1]));
72-
return tmpList;
79+
if(args.length == 2 && args[0].equals("delPerm")){
80+
return ArrayUtils.startsWith(PermissionUtils.getRankNameList(), args[1]);
7381
}
7482

7583
return tmpList;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package play.ai.dragonrealm.geiloutils.commands.spawn;
2+
3+
import net.minecraft.command.CommandBase;
4+
import net.minecraft.command.CommandException;
5+
import net.minecraft.command.ICommandSender;
6+
import net.minecraft.server.MinecraftServer;
7+
8+
public class GeiloSpawn extends CommandBase {
9+
@Override
10+
public String getName() {
11+
return "geilospawn";
12+
}
13+
14+
@Override
15+
public String getUsage(ICommandSender sender) {
16+
return "Used to spawn mobs";
17+
}
18+
19+
@Override
20+
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
21+
if(args.length == 2 && args[0].equals("list")){
22+
23+
}
24+
}
25+
}

Diff for: src/main/java/play/ai/dragonrealm/geiloutils/config/ConfigurationManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public static void syncFromFields()
117117

118118
private static ConfigGeneral defaultGeneralConfig() {
119119
ConfigGeneral defaultGeneralConfig = new ConfigGeneral();
120-
defaultGeneralConfig.setCommandPrefix("[GeiloUtils]");
120+
defaultGeneralConfig.setCommandPrefix("[GeiloUtils] ");
121121
return defaultGeneralConfig;
122122
}
123123

Diff for: src/main/java/play/ai/dragonrealm/geiloutils/config/kits/KitItem.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
public class KitItem {
44
private String registryName;
55
private int metadata;
6+
private int count;
67

7-
public KitItem(String registryName, int metadata) {
8+
public KitItem(String registryName, int metadata, int count) {
89
this.registryName = registryName;
910
this.metadata = metadata;
11+
this.count = count;
1012
}
1113

1214
public String getRegistryName() {
@@ -21,4 +23,6 @@ public int getMetadata() {
2123
public void setMetadata(int metadata) {
2224
this.metadata = metadata;
2325
}
26+
public int getCount() {return count;}
27+
public void setCount(int count) {this.count = count;}
2428
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package play.ai.dragonrealm.geiloutils.config.spawn;
2+
3+
public class GeiloMob {
4+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package play.ai.dragonrealm.geiloutils.config.spawn;
2+
3+
public class GeiloSpawn {
4+
}

Diff for: src/main/java/play/ai/dragonrealm/geiloutils/utils/ArrayUtils.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66
public class ArrayUtils {
77
public static List<String> startsWith(List<String> initialList, String keyword){
88
List<String> returnList = new ArrayList<String>();
9+
if(keyword.equals("")) return initialList;
10+
911
for(String s : initialList) {
1012
if(s.toLowerCase().startsWith(keyword.toLowerCase())) {
1113
returnList.add(s);
1214
}
1315
}
14-
16+
1517
return returnList;
1618
}
1719
public static String[] listToArray(List<String> initialList)

Diff for: src/main/java/play/ai/dragonrealm/geiloutils/utils/ItemUtils.java

+10-20
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,15 @@
66
import net.minecraftforge.fml.common.registry.ForgeRegistries;
77

88
public class ItemUtils {
9-
public static Item getItemFromMod(String name)
10-
{
11-
Collection<Item> itemCollection = ForgeRegistries.ITEMS.getValuesCollection();
12-
for (Item item : itemCollection) {
13-
if (item.getRegistryName().toString().equals(name)) {
14-
return item;
15-
}
16-
}
17-
return null;
18-
}
9+
public static Item getItemFromMod(String registryName) {
10+
return ForgeRegistries.ITEMS.getValuesCollection().stream().filter(item -> item.getRegistryName().toString().equals(registryName)).findFirst().orElse(null);
11+
}
12+
13+
public static boolean doesItemExist(String registryName){
14+
return (getItemFromMod(registryName) != null);
15+
}
1916

20-
public static Item getItemFromUnlocalized(String name)
21-
{
22-
Collection<Item> itemCollection = ForgeRegistries.ITEMS.getValuesCollection();
23-
for (Item item : itemCollection) {
24-
if (item.getUnlocalizedName().toString().equals(name)) {
25-
return item;
26-
}
27-
}
28-
return null;
29-
}
17+
public static Item getItemFromUnlocalized(String name) {
18+
return ForgeRegistries.ITEMS.getValuesCollection().stream().filter(item -> item.getUnlocalizedName().equals(name)).findFirst().orElse(null);
19+
}
3020
}

0 commit comments

Comments
 (0)