mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 11:45:51 +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