mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 19:55:48 +00:00
First implementation of a MultiCategory
This commit is contained in:
parent
d048f7f8d4
commit
77c5630797
@ -0,0 +1,47 @@
|
|||||||
|
package io.github.thebusybiscuit.slimefun4.core.categories;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile;
|
||||||
|
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout;
|
||||||
|
|
||||||
|
public class MultiCategory extends FlexCategory {
|
||||||
|
|
||||||
|
private final List<SubCategory> subCategories = new ArrayList<>();
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
|
public MultiCategory(NamespacedKey key, ItemStack item) {
|
||||||
|
this(key, item, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
|
public MultiCategory(NamespacedKey key, ItemStack item, int tier) {
|
||||||
|
super(key, item, tier);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addSubCategory(@Nonnull SubCategory category) {
|
||||||
|
Validate.notNull(category, "The Category cannot be null!");
|
||||||
|
|
||||||
|
subCategories.add(category);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisible(Player p, PlayerProfile profile, SlimefunGuideLayout layout) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void open(Player p, PlayerProfile profile, SlimefunGuideLayout layout) {
|
||||||
|
// TODO: Open Categories menu
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package io.github.thebusybiscuit.slimefun4.core.categories;
|
||||||
|
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link SubCategory} is a child {@link Category} of the
|
||||||
|
* {@link MultiCategory}.
|
||||||
|
*
|
||||||
|
* @author TheBusyBiscuit
|
||||||
|
*
|
||||||
|
* @see MultiCategory
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SubCategory extends Category {
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
|
public SubCategory(NamespacedKey key, ItemStack item) {
|
||||||
|
this(key, item, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
|
public SubCategory(NamespacedKey key, ItemStack item, int tier) {
|
||||||
|
super(key, item, tier);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean isHidden(Player p) {
|
||||||
|
/*
|
||||||
|
* Sub Categories are always hidden,
|
||||||
|
* they won't show up in the normal guide view.
|
||||||
|
*/
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user