1
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:
TheBusyBiscuit 2020-12-27 16:19:37 +01:00
parent d048f7f8d4
commit 77c5630797
2 changed files with 88 additions and 0 deletions

View File

@ -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
}
}

View File

@ -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;
}
}