mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
Added Category#setTier()
This commit is contained in:
parent
c975fe234e
commit
bffef56407
@ -31,6 +31,7 @@
|
|||||||
* Added "8 Coal Blocks -> 9 Carbon" recipe to Carbon Press
|
* Added "8 Coal Blocks -> 9 Carbon" recipe to Carbon Press
|
||||||
* Added Tier 2 Auto-Enchanter
|
* Added Tier 2 Auto-Enchanter
|
||||||
* Added Tier 2 Auto-Disenchanter
|
* Added Tier 2 Auto-Disenchanter
|
||||||
|
* (API) Added Category#setTier() to modify a category's position in the guide
|
||||||
|
|
||||||
#### Changes
|
#### Changes
|
||||||
* Renamed "Solar Panel" to "Photovoltaic Cell" to avoid confusions with solar generators
|
* Renamed "Solar Panel" to "Photovoltaic Cell" to avoid confusions with solar generators
|
||||||
|
@ -43,7 +43,7 @@ public class Category implements Keyed {
|
|||||||
protected final List<SlimefunItem> items = new ArrayList<>();
|
protected final List<SlimefunItem> items = new ArrayList<>();
|
||||||
protected final NamespacedKey key;
|
protected final NamespacedKey key;
|
||||||
protected final ItemStack item;
|
protected final ItemStack item;
|
||||||
protected final int tier;
|
protected int tier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a new {@link Category} with the given {@link NamespacedKey} as an identifier
|
* Constructs a new {@link Category} with the given {@link NamespacedKey} as an identifier
|
||||||
@ -104,10 +104,49 @@ public class Category implements Keyed {
|
|||||||
*/
|
*/
|
||||||
public void register(@Nonnull SlimefunAddon addon) {
|
public void register(@Nonnull SlimefunAddon addon) {
|
||||||
Validate.notNull(addon, "The Addon cannot be null");
|
Validate.notNull(addon, "The Addon cannot be null");
|
||||||
|
|
||||||
|
if (isRegistered()) {
|
||||||
|
throw new UnsupportedOperationException("This Category has already been registered!");
|
||||||
|
}
|
||||||
|
|
||||||
this.addon = addon;
|
this.addon = addon;
|
||||||
|
|
||||||
SlimefunPlugin.getRegistry().getCategories().add(this);
|
SlimefunPlugin.getRegistry().getCategories().add(this);
|
||||||
Collections.sort(SlimefunPlugin.getRegistry().getCategories(), Comparator.comparingInt(Category::getTier));
|
sortCategoriesByTier();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the tier of this {@link Category}.
|
||||||
|
* The tier determines the position of this {@link Category} in the {@link SlimefunGuide}.
|
||||||
|
*
|
||||||
|
* @return the tier of this {@link Category}
|
||||||
|
*/
|
||||||
|
public int getTier() {
|
||||||
|
return tier;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This sets the tier of this {@link Category}.
|
||||||
|
* The tier determines the position of this {@link Category} in the {@link SlimefunGuide}.
|
||||||
|
*
|
||||||
|
* @param tier
|
||||||
|
* The tier for this {@link Category}
|
||||||
|
*/
|
||||||
|
public void setTier(int tier) {
|
||||||
|
this.tier = tier;
|
||||||
|
|
||||||
|
// Refresh Category order if already registered.
|
||||||
|
if (isRegistered()) {
|
||||||
|
sortCategoriesByTier();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This refreshes the {@link Category} order.
|
||||||
|
*/
|
||||||
|
private void sortCategoriesByTier() {
|
||||||
|
List<Category> categories = SlimefunPlugin.getRegistry().getCategories();
|
||||||
|
Collections.sort(categories, Comparator.comparingInt(Category::getTier));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -230,16 +269,6 @@ public class Category implements Keyed {
|
|||||||
return item != null && items.contains(item);
|
return item != null && items.contains(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the tier of this {@link Category}.
|
|
||||||
* The tier determines the position of this {@link Category} in the {@link SlimefunGuide}.
|
|
||||||
*
|
|
||||||
* @return the tier of this {@link Category}
|
|
||||||
*/
|
|
||||||
public int getTier() {
|
|
||||||
return tier;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final boolean equals(Object obj) {
|
public final boolean equals(Object obj) {
|
||||||
if (obj instanceof Category) {
|
if (obj instanceof Category) {
|
||||||
|
@ -163,7 +163,7 @@ class TestCategories {
|
|||||||
Category category = new Category(new NamespacedKey(plugin, "parent"), new CustomItem(Material.EMERALD, "&5I am SHERlocked"));
|
Category category = new Category(new NamespacedKey(plugin, "parent"), new CustomItem(Material.EMERALD, "&5I am SHERlocked"));
|
||||||
category.register(plugin);
|
category.register(plugin);
|
||||||
|
|
||||||
LockedCategory locked = new LockedCategory(new NamespacedKey(plugin, "locked"), new CustomItem(Material.GOLD_NUGGET, "&6Locked Test"), category.getKey());
|
LockedCategory locked = new LockedCategory(new NamespacedKey(plugin, "locked2"), new CustomItem(Material.GOLD_NUGGET, "&6Locked Test"), category.getKey());
|
||||||
locked.register(plugin);
|
locked.register(plugin);
|
||||||
|
|
||||||
// No Items, so it should be unlocked
|
// No Items, so it should be unlocked
|
||||||
|
Loading…
Reference in New Issue
Block a user