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 { |
public enum Permission { |
||||||
PLACE(0), |
PLACE(0), |
||||||
BREAK(1), |
BREAK(1), |
||||||
INTERACT(2), |
INTERACT(2), |
||||||
ENTITY_INTERACT(3), |
ENTITY_INTERACT(3), |
||||||
OPEN_CHESTS(4), |
OPEN_CHESTS(4), |
||||||
ENTER(5), |
ENTER(5), |
||||||
EXIT(6), |
EXIT(6), |
||||||
MANAGE_MEMBERS(7), |
MANAGE_MEMBERS(7), |
||||||
MANAGE_GROUPS(8), |
MANAGE_GROUPS(8), |
||||||
MANAGE_REGIONS(9), |
MANAGE_REGIONS(9), |
||||||
TRANSFER_OWNERSHIP(10), |
TRANSFER_OWNERSHIP(10), |
||||||
USE_HOPPER(11), |
USE_HOPPER(11), |
||||||
HARVEST(12), |
HARVEST(12), |
||||||
PLANT(13), |
PLANT(13), |
||||||
PICKUP_ITEMS(14), |
PICKUP_ITEMS(14), |
||||||
DROP_ITEMS(15), |
DROP_ITEMS(15), |
||||||
REDSTONE_INTERACT(16), |
REDSTONE_INTERACT(16), |
||||||
SIT(17), |
SIT(17), |
||||||
SHOP_INTERACT(18), |
SHOP_INTERACT(18), |
||||||
HARM_ENTITIES(19), |
HARM_ENTITIES(19), |
||||||
HARM_PLAYERS(20), |
HARM_PLAYERS(20), |
||||||
VEHICLE_RIDE(21), |
VEHICLE_RIDE(21), |
||||||
VEHICLE_PLACE(22), |
VEHICLE_PLACE(22), |
||||||
VEHICLE_BREAK(23), |
VEHICLE_BREAK(23), |
||||||
VEHICLE_INTERACT(24), |
VEHICLE_INTERACT(24), |
||||||
BUCKET_USE(25); |
BUCKET_USE(25), |
||||||
|
MANAGE_INFO(26); |
||||||
|
|
||||||
|
|
||||||
private final int mask; |
private final int mask; |
||||||
|
|
||||||
Permission(int position) { |
Permission(int position) { |
||||||
// This creates the power of two: 1, 2, 4, 8, 16...
|
this.mask = 1 << position; |
||||||
this.mask = 1 << position; |
} |
||||||
} |
|
||||||
|
|
||||||
public int getMask() { |
public int getMask() { |
||||||
return mask; |
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