parent
f355dcfa1e
commit
71f8b0eaf4
13 changed files with 758 additions and 97 deletions
@ -0,0 +1,68 @@ |
||||
package xyz.soukup.ecoCraftCore.genericMenus; |
||||
|
||||
import com.github.stefvanschie.inventoryframework.gui.GuiItem; |
||||
import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; |
||||
import com.github.stefvanschie.inventoryframework.pane.OutlinePane; |
||||
import com.github.stefvanschie.inventoryframework.pane.PaginatedPane; |
||||
import com.github.stefvanschie.inventoryframework.pane.component.PagingButtons; |
||||
import com.github.stefvanschie.inventoryframework.pane.util.Slot; |
||||
import net.kyori.adventure.text.Component; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.entity.Player; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.bukkit.inventory.meta.SkullMeta; |
||||
import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder; |
||||
import xyz.soukup.ecoCraftCore.messages.Messages; |
||||
import xyz.soukup.ecoCraftCore.messages.Replace; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.function.BiConsumer; |
||||
import java.util.function.Consumer; |
||||
|
||||
public class PlayerSelector { |
||||
public static ChestGui selectPlayer(Player viewer, List<Player> players, BiConsumer<Player, Player> selectAction){ |
||||
ChestGui chestGui = new ChestGui(3, Messages.getAsString("gui.player-selector.title")); |
||||
PaginatedPane pane = new PaginatedPane(0,0, 9, 2); |
||||
List<GuiItem> guiItems = new ArrayList<>(); |
||||
|
||||
chestGui.setOnGlobalClick(event -> event.setCancelled(true)); |
||||
|
||||
for (Player player : players){ |
||||
ItemStack itemStack = new ItemStack(Material.PLAYER_HEAD); |
||||
SkullMeta skullMeta = (SkullMeta) itemStack.getItemMeta(); |
||||
Component name = Messages.get("gui.player-selector.name-format", new Replace("name", player.displayName())); |
||||
|
||||
skullMeta.setOwningPlayer(player); |
||||
skullMeta.displayName(name); |
||||
itemStack.setItemMeta(skullMeta); |
||||
|
||||
GuiItem guiItem = new GuiItem(itemStack); |
||||
guiItem.setAction(event -> selectAction.accept(viewer, player)); |
||||
guiItems.add(guiItem); |
||||
} |
||||
|
||||
pane.populateWithGuiItems(guiItems); |
||||
PagingButtons pagingButtons = new PagingButtons(Slot.fromXY(0, 2),9, pane); |
||||
|
||||
chestGui.addPane(pane); |
||||
|
||||
|
||||
return chestGui; |
||||
} |
||||
|
||||
public static ChestGui selectPlayer(Player viewer, List<Player> players, BiConsumer<Player, Player> selectAction, Consumer<Player> backAction){ |
||||
ChestGui chestGui = selectPlayer(viewer, players, selectAction); |
||||
OutlinePane pane = new OutlinePane(4,2, 1, 1); |
||||
GuiItem backButton = new GuiItemBuilder(Material.REDSTONE, |
||||
"gui.player-selector.back-button.name", |
||||
"gui.player-selector.back-button.lore", |
||||
(event -> backAction.accept(viewer))) |
||||
.build(); |
||||
|
||||
pane.addItem(backButton); |
||||
chestGui.addPane(pane); |
||||
|
||||
return chestGui; |
||||
} |
||||
} |
||||
@ -0,0 +1,4 @@ |
||||
package xyz.soukup.ecoCraftCore.genericMenus; |
||||
|
||||
public class TextInput { |
||||
} |
||||
@ -1,43 +1,43 @@ |
||||
package xyz.soukup.ecoCraftCore.objects; |
||||
package xyz.soukup.ecoCraftCore.objects; |
||||
|
||||
public enum Permission { |
||||
PLACE(0), |
||||
BREAK(1), |
||||
INTERACT(2), |
||||
ENTITY_INTERACT(3), |
||||
OPEN_CHESTS(4), |
||||
ENTER(5), |
||||
EXIT(6), |
||||
MANAGE_MEMBERS(7), |
||||
MANAGE_GROUPS(8), |
||||
MANAGE_REGIONS(9), |
||||
TRANSFER_OWNERSHIP(10), |
||||
USE_HOPPER(11), |
||||
HARVEST(12), |
||||
PLANT(13), |
||||
PICKUP_ITEMS(14), |
||||
DROP_ITEMS(15), |
||||
REDSTONE_INTERACT(16), |
||||
SIT(17), |
||||
SHOP_INTERACT(18), |
||||
HARM_ENTITIES(19), |
||||
HARM_PLAYERS(20), |
||||
VEHICLE_RIDE(21), |
||||
VEHICLE_PLACE(22), |
||||
VEHICLE_BREAK(23), |
||||
VEHICLE_INTERACT(24), |
||||
BUCKET_USE(25); |
||||
public enum Permission { |
||||
PLACE(0), |
||||
BREAK(1), |
||||
INTERACT(2), |
||||
ENTITY_INTERACT(3), |
||||
OPEN_CHESTS(4), |
||||
ENTER(5), |
||||
EXIT(6), |
||||
MANAGE_MEMBERS(7), |
||||
MANAGE_GROUPS(8), |
||||
MANAGE_REGIONS(9), |
||||
TRANSFER_OWNERSHIP(10), |
||||
USE_HOPPER(11), |
||||
HARVEST(12), |
||||
PLANT(13), |
||||
PICKUP_ITEMS(14), |
||||
DROP_ITEMS(15), |
||||
REDSTONE_INTERACT(16), |
||||
SIT(17), |
||||
SHOP_INTERACT(18), |
||||
HARM_ENTITIES(19), |
||||
HARM_PLAYERS(20), |
||||
VEHICLE_RIDE(21), |
||||
VEHICLE_PLACE(22), |
||||
VEHICLE_BREAK(23), |
||||
VEHICLE_INTERACT(24), |
||||
BUCKET_USE(25), |
||||
MANAGE_INFO(26); |
||||
|
||||
|
||||
private final int mask; |
||||
private final int mask; |
||||
|
||||
Permission(int position) { |
||||
// This creates the power of two: 1, 2, 4, 8, 16...
|
||||
this.mask = 1 << position; |
||||
} |
||||
Permission(int position) { |
||||
this.mask = 1 << position; |
||||
} |
||||
|
||||
public int getMask() { |
||||
return mask; |
||||
public int getMask() { |
||||
return mask; |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
@ -0,0 +1,46 @@ |
||||
package xyz.soukup.ecoCraftCore.regions; |
||||
|
||||
import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; |
||||
import com.github.stefvanschie.inventoryframework.pane.OutlinePane; |
||||
import org.bukkit.event.inventory.InventoryClickEvent; |
||||
import xyz.soukup.ecoCraftCore.messages.Messages; |
||||
import xyz.soukup.ecoCraftCore.objects.Region; |
||||
import xyz.soukup.ecoCraftCore.objects.RegionMember; |
||||
|
||||
public class RegionMenu { |
||||
public static ChestGui regionGui(RegionMember regionMember, Region region){ |
||||
|
||||
return buildGui(regionMember, region); |
||||
} |
||||
|
||||
private static ChestGui buildGui(RegionMember regionMember, Region region){ |
||||
String title; |
||||
int regionLevel = region.getLevel(); |
||||
|
||||
if (regionLevel == -1){ |
||||
title = Messages.getAsString("gui.region.title-island"); |
||||
} else { |
||||
title = Messages.getAsString("gui.region.title"); |
||||
} |
||||
|
||||
ChestGui gui = new ChestGui(2, title); |
||||
OutlinePane outlinePane = new OutlinePane(0, 0, 9, 2); |
||||
|
||||
addIslandSettings(outlinePane, regionMember, region); |
||||
|
||||
|
||||
return gui; |
||||
} |
||||
|
||||
private static void addIslandSettings(OutlinePane outlinePane, RegionMember regionMember, Region region) { |
||||
|
||||
} |
||||
|
||||
private static void setIslandDescription(InventoryClickEvent event, Region region, RegionMember regionMember) { |
||||
} |
||||
|
||||
private static void setIslandName(InventoryClickEvent inventoryClickEvent, Region region, RegionMember regionMember) { |
||||
|
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue