-
-
Notifications
You must be signed in to change notification settings - Fork 47
Expand file tree
/
Copy pathCommandInfo.java
More file actions
106 lines (85 loc) · 3.37 KB
/
CommandInfo.java
File metadata and controls
106 lines (85 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package com.bgsoftware.wildstacker.command.commands;
import com.bgsoftware.wildstacker.Locale;
import com.bgsoftware.wildstacker.WildStackerPlugin;
import com.bgsoftware.wildstacker.api.objects.StackedBarrel;
import com.bgsoftware.wildstacker.api.objects.StackedSpawner;
import com.bgsoftware.wildstacker.command.ICommand;
import com.bgsoftware.wildstacker.objects.WStackedBarrel;
import com.bgsoftware.wildstacker.objects.WStackedSpawner;
import com.bgsoftware.wildstacker.utils.legacy.Materials;
import com.bgsoftware.wildstacker.utils.names.CustomNames;
import com.google.common.collect.Sets;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public final class CommandInfo implements ICommand {
@Override
public String getLabel() {
return "info";
}
@Override
public String getUsage() {
return "stacker info";
}
@Override
public String getPermission() {
return "wildstacker.info";
}
@Override
public String getDescription() {
return "Shows information about a spawner.";
}
@Override
public int getMinArgs() {
return 1;
}
@Override
public int getMaxArgs() {
return 1;
}
@Override
public void perform(WildStackerPlugin plugin, CommandSender sender, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Only players can perform this command.");
return;
}
Player pl = (Player) sender;
Block targetBlock = pl.getTargetBlock(getMaterials("AIR", "WATER", "STATIONARY_WATER"), 10);
if (targetBlock != null && targetBlock.getType() == Materials.SPAWNER.toBukkitType()) {
StackedSpawner stackedSpawner = WStackedSpawner.of(targetBlock);
Locale.SPAWNER_INFO_HEADER.send(sender);
Locale.SPAWNER_INFO_TYPE.send(sender, CustomNames.getSpawnerCustomName(stackedSpawner.getSpawnedType()));
Locale.SPAWNER_INFO_AMOUNT.send(sender, stackedSpawner.getStackAmount());
Locale.SPAWNER_INFO_UPGRADE.send(sender, stackedSpawner.getUpgrade().getName());
Locale.SPAWNER_INFO_FOOTER.send(sender);
return;
} else if (plugin.getSystemManager().isStackedBarrel(targetBlock)) {
StackedBarrel stackedBarrel = WStackedBarrel.of(targetBlock);
Locale.BARREL_INFO_HEADER.send(sender);
Locale.BARREL_INFO_TYPE.send(sender, CustomNames.getBarrelCustomName(stackedBarrel.getBarrelItem(1)));
Locale.BARREL_INFO_AMOUNT.send(sender, stackedBarrel.getStackAmount());
Locale.BARREL_INFO_FOOTER.send(sender);
return;
}
Locale.STACK_INFO_INVALID.send(sender);
}
@Override
public List<String> tabComplete(WildStackerPlugin plugin, CommandSender sender, String[] args) {
return new ArrayList<>();
}
private Set<Material> getMaterials(String... materials) {
Set<Material> materialsSet = Sets.newHashSet();
for (String material : materials) {
try {
materialsSet.add(Material.valueOf(material));
} catch (IllegalArgumentException ignored) {
}
}
return materialsSet;
}
}