66import io .th0rgal .oraxen .OraxenPlugin ;
77import io .th0rgal .oraxen .api .OraxenItems ;
88import io .th0rgal .oraxen .items .ItemBuilder ;
9+ import io .th0rgal .oraxen .items .OraxenMeta ;
910import io .th0rgal .oraxen .utils .AdventureUtils ;
1011import io .th0rgal .oraxen .utils .logs .Logs ;
1112import net .kyori .adventure .audience .Audience ;
1213
1314import java .util .Map ;
1415
16+ import org .bukkit .inventory .ItemStack ;
17+ import org .bukkit .inventory .meta .ItemMeta ;
18+
1519public class ItemInfoCommand {
1620
1721 CommandAPICommand getItemInfoCommand () {
1822 return new CommandAPICommand ("iteminfo" )
1923 .withPermission ("oraxen.command.iteminfo" )
20- .withArguments (new StringArgument ("itemid" ).replaceSuggestions (ArgumentSuggestions .strings (OraxenItems .getItemNames ())))
24+ .withArguments (new StringArgument ("itemid" )
25+ .replaceSuggestions (ArgumentSuggestions .strings (OraxenItems .getItemNames ())))
2126 .executes ((commandSender , args ) -> {
2227 String argument = (String ) args .get ("itemid" );
2328 Audience audience = OraxenPlugin .get ().getAudience ().sender (commandSender );
@@ -28,17 +33,50 @@ CommandAPICommand getItemInfoCommand() {
2833 } else {
2934 ItemBuilder ib = OraxenItems .getItemById (argument );
3035 if (ib == null )
31- audience .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<red>No item found with ID</red> <dark_red>" + argument ));
32- else sendItemInfo (audience , ib , argument );
36+ audience .sendMessage (AdventureUtils .MINI_MESSAGE
37+ .deserialize ("<red>No item found with ID</red> <dark_red>" + argument ));
38+ else
39+ sendItemInfo (audience , ib , argument );
3340 }
3441 });
3542 }
3643
3744 private void sendItemInfo (Audience sender , ItemBuilder builder , String itemId ) {
45+ ItemStack item = builder .build ();
46+ ItemMeta meta = item .getItemMeta ();
47+
3848 sender .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<dark_aqua>ItemID: <aqua>" + itemId ));
39- sender .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<dark_green>CustomModelData: <green>" + builder .getOraxenMeta ().getCustomModelData ()));
40- sender .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<dark_green>Material: <green>" + builder .getReferenceClone ().getType ()));
41- sender .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<dark_green>Model Name: <green>" + builder .getOraxenMeta ().getModelName ()));
49+ sender .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<dark_green>Material: <green>" + item .getType ()));
50+
51+ // Basic meta info
52+ if (meta != null ) {
53+ sender .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<dark_green>==== Item Meta ====" ));
54+ if (meta .hasCustomModelData ()) {
55+ sender .sendMessage (AdventureUtils .MINI_MESSAGE
56+ .deserialize ("<dark_green>CustomModelData: <green>" + meta .getCustomModelData ()));
57+ }
58+ if (meta .hasItemModel ()) {
59+ sender .sendMessage (AdventureUtils .MINI_MESSAGE
60+ .deserialize ("<dark_green>ItemModel: <green>" + meta .getItemModel ()));
61+ }
62+ if (meta .hasDisplayName ()) {
63+ sender .sendMessage (AdventureUtils .MINI_MESSAGE
64+ .deserialize ("<dark_green>DisplayName: <green>" + meta .getDisplayName ()));
65+ }
66+ }
67+
68+ // OraxenMeta info
69+ OraxenMeta oraxenMeta = builder .getOraxenMeta ();
70+ if (oraxenMeta != null ) {
71+ sender .sendMessage (AdventureUtils .MINI_MESSAGE .deserialize ("<dark_green>==== Oraxen Meta ====" ));
72+ sender .sendMessage (AdventureUtils .MINI_MESSAGE
73+ .deserialize ("<dark_green>ModelName: <green>" + oraxenMeta .getModelName ()));
74+ if (oraxenMeta .hasPackInfos ()) {
75+ sender .sendMessage (AdventureUtils .MINI_MESSAGE
76+ .deserialize ("<dark_green>ModelPath: <green>" + oraxenMeta .getGeneratedModelPath ()));
77+ }
78+ }
79+
4280 Logs .newline ();
4381 }
4482}
0 commit comments