Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
4c393c6
remove Placeholder to main code
saildrag Sep 5, 2025
0aa7850
remove placeholder part 2
saildrag Sep 5, 2025
a0ececc
first bedrock inventory commit
saildrag Sep 9, 2025
c7cf626
Merge branch 'Maxlego08:develop' into develop
saildrag Sep 9, 2025
dd3879f
fixs zmenu loader with bedrock
saildrag Sep 10, 2025
a55ef5b
fixs loading type and change config
saildrag Sep 10, 2025
31a0a23
change title to name
saildrag Sep 12, 2025
334fb59
refactor name and structure
saildrag Sep 12, 2025
1e87eef
Move + rename méthode and clickBedrockButton refactor + improve API u…
saildrag Sep 13, 2025
261c127
api button for bedrock and dialog
saildrag Sep 13, 2025
be6b9f8
improve api dialog and bedrock
saildrag Sep 14, 2025
9d0e422
fixs oldinventory + fixs dialog loader inputs
saildrag Sep 14, 2025
db54d9f
add support custom console commande
saildrag Sep 14, 2025
3ed8334
fixs dialog config
saildrag Sep 14, 2025
c160c21
fixs tragetPlayer and support bedrock player check
saildrag Sep 15, 2025
cda6def
add Bedrock player validator
saildrag Sep 15, 2025
46ca83f
remove unused import
saildrag Sep 15, 2025
34afa49
start bedrockReplacement
saildrag Sep 16, 2025
8fe4993
addOldInventory to dialog action
saildrag Sep 16, 2025
a25871d
add bedrock action
saildrag Sep 16, 2025
342234b
fixs inventoryReplacement
saildrag Sep 17, 2025
ca028c5
Merge branch 'Maxlego08:develop' into develop
saildrag Sep 18, 2025
c476fb7
fixs enum ImageType
saildrag Sep 18, 2025
ca170ea
fixs openBedrockOnly
saildrag Sep 18, 2025
a174869
image value (need to change)
saildrag Sep 18, 2025
571052e
Merge branch 'Maxlego08:develop' into develop
saildrag Sep 23, 2025
e017804
rename to targetPlayer
saildrag Sep 23, 2025
78c132e
improve loadAndReplaceConfiguration
saildrag Sep 23, 2025
37e57f7
Merge branch 'develop' into develop
Maxlego08 Oct 8, 2025
84e23d5
feat: add support to create custom items + command
1robie Oct 10, 2025
ed3e542
feat: move messages in GiveItemCommand to Message.java and add a defa…
1robie Oct 10, 2025
e5080eb
feat: fix owner + space after implement
1robie Oct 10, 2025
8434b5d
refactor: remove unnecessary newline
1robie Oct 10, 2025
84858af
Fix formatting in Plugins.java
1robie Oct 10, 2025
acc1d4a
Merge pull request #1 from 1robie/patch-1
saildrag Oct 10, 2025
a48d2d2
fix(inventory): use local buttons variable instead of global, fix con…
alwyn974 Oct 16, 2025
851a2e0
chore: update version
1robie Oct 16, 2025
3ef1e32
fix: resolve false positive detection caused by annotation
1robie Oct 16, 2025
5f9565c
Merge branch 'Maxlego08:main' into developement
1robie Oct 18, 2025
31b6e5c
chore: update Paper and Spigot API dependencies to 1.21.10
1robie Oct 18, 2025
a5b7dc5
Refactor InventoryDefault for efficiency
Maxlego08 Oct 19, 2025
10d9dd2
Merge pull request #201 from Maxlego08/codex/improve-inventorydefault…
Maxlego08 Oct 19, 2025
41e3b0a
Replace stream usage with loops
Maxlego08 Oct 19, 2025
3ff21be
Fix type handling after stream removal
Maxlego08 Oct 19, 2025
c99453c
Merge branch 'develop' into developement
1robie Oct 20, 2025
ee7a456
:memo: Add option for disable toast
Maxlego08 Oct 14, 2025
2b3083b
Merge branch 'develop' into codex/optimize-loops-in-zmenu
Maxlego08 Oct 27, 2025
83abeb4
:memo: Fix package
Maxlego08 Oct 27, 2025
59251c0
:memo: javadocs
Maxlego08 Oct 27, 2025
432c1a3
Merge pull request #202 from Maxlego08/codex/optimize-loops-in-zmenu
Maxlego08 Oct 27, 2025
2c0be94
:memo: Version
Maxlego08 Oct 27, 2025
27949ec
Merge branch 'release/1.1.0.5'
Maxlego08 Oct 27, 2025
64d3e5a
Merge tag '1.1.0.5' into develop
Maxlego08 Oct 27, 2025
918a7a5
:memo: add more fallback
Maxlego08 Nov 1, 2025
7e29cd3
feat: add player commands as OP action and BreweryX support
1robie Nov 1, 2025
cdf5b34
feat: add BOTH method for op-granting in config and OpGrantMethod
1robie Nov 1, 2025
7f8fbda
:memo: Add oraxen font
Maxlego08 Nov 4, 2025
95956fa
:memo: fixs
Maxlego08 Nov 10, 2025
d08da3c
:memo: Add logger for externals hooks
Maxlego08 Nov 10, 2025
98bb48e
:memo: fixs hook loading
Maxlego08 Nov 10, 2025
eefe5d5
Merge branch 'develop' into developement
Maxlego08 Nov 10, 2025
908f93d
Merge pull request #200 from 1robie/developement
Maxlego08 Nov 10, 2025
a26567e
:memo: fixs
Maxlego08 Nov 15, 2025
f27447c
drag button
saildrag Nov 20, 2025
b86b2bf
Merge branch 'develop' of https://github.com/saildrag/zMenu-Bedrock i…
saildrag Nov 20, 2025
b545d32
remove Placeholder to main code
saildrag Sep 5, 2025
2f2f144
remove placeholder part 2
saildrag Sep 5, 2025
f4a5fd6
first bedrock inventory commit
saildrag Sep 9, 2025
27f7b52
fixs zmenu loader with bedrock
saildrag Sep 10, 2025
908c80c
fixs loading type and change config
saildrag Sep 10, 2025
f2ded22
change title to name
saildrag Sep 12, 2025
49d2119
refactor name and structure
saildrag Sep 12, 2025
40c7cad
Move + rename méthode and clickBedrockButton refactor + improve API u…
saildrag Sep 13, 2025
bd7b5c3
api button for bedrock and dialog
saildrag Sep 13, 2025
fe67248
improve api dialog and bedrock
saildrag Sep 14, 2025
f87d2d5
fixs oldinventory + fixs dialog loader inputs
saildrag Sep 14, 2025
a07c509
add support custom console commande
saildrag Sep 14, 2025
a679051
fixs dialog config
saildrag Sep 14, 2025
5c0f05c
fixs tragetPlayer and support bedrock player check
saildrag Sep 15, 2025
400cf04
add Bedrock player validator
saildrag Sep 15, 2025
e7add0b
remove unused import
saildrag Sep 15, 2025
d953bc4
start bedrockReplacement
saildrag Sep 16, 2025
03bcf19
addOldInventory to dialog action
saildrag Sep 16, 2025
f38f8c5
add bedrock action
saildrag Sep 16, 2025
287252d
fixs inventoryReplacement
saildrag Sep 17, 2025
510fbdd
fixs enum ImageType
saildrag Sep 18, 2025
84a594e
fixs openBedrockOnly
saildrag Sep 18, 2025
dffa555
image value (need to change)
saildrag Sep 18, 2025
d86bab8
rename to targetPlayer
saildrag Sep 23, 2025
9a3d326
improve loadAndReplaceConfiguration
saildrag Sep 23, 2025
84df1de
drag button
saildrag Nov 20, 2025
bad9b63
Fix formatting in Plugins.java
1robie Oct 10, 2025
6997364
Merge branch 'develop' of https://github.com/saildrag/zMenu-Bedrock i…
saildrag Nov 20, 2025
031ad52
pr force
saildrag Nov 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions API/src/main/java/fr/maxlego08/menu/api/BedrockInventory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
package fr.maxlego08.menu.api;

import fr.maxlego08.menu.api.button.Button;
import fr.maxlego08.menu.api.button.bedrock.BedrockButton;
import fr.maxlego08.menu.api.button.dialogs.InputButton;
import fr.maxlego08.menu.api.engine.InventoryEngine;
import fr.maxlego08.menu.api.engine.InventoryResult;
import fr.maxlego08.menu.api.enums.bedrock.BedrockType;
import fr.maxlego08.menu.api.pattern.Pattern;
import fr.maxlego08.menu.api.requirement.Requirement;
import fr.maxlego08.menu.api.utils.InventoryReplacement;
import fr.maxlego08.menu.api.utils.OpenWithItem;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

public interface BedrockInventory extends Inventory {
String getContent(Player player);

List<BedrockButton> getBedrockButtons();

List<BedrockButton> getBedrockButtons(Player player);

List<InputButton> getInputButtons();

List<InputButton> getInputButtons(Player player);

InventoryReplacement getInventoryReplacement();

List<Requirement> getRequirements();

BedrockType getBedrockType();

//TODO getOpenWithItem not implemented but need
@Override
default OpenWithItem getOpenWithItem() {
return null;
}

/**
* Set unUsed méthod of Inventory Interface, don't used in BedrockInventory
*
*/

@Override
default int size() {
return 9;
}

@Override
default InventoryType getType() {
return null;
}

@Override
default boolean shouldCancelItemPickup() {
return false;
}

@Override
default Collection<Button> getButtons() {
return Collections.emptyList();
}

@Override
default Collection<Pattern> getPatterns() {
return Collections.emptyList();
}

@Override
default <T extends Button> List<T> getButtons(Class<T> type) {
return Collections.emptyList();
}

@Override
default int getMaxPage(Collection<Pattern> patterns, Player player, Object... objects) {
return 1;
}

@Override
default List<Button> sortButtons(int page, Object... objects) {
return Collections.emptyList();
}

@Override
default List<Button> sortPatterns(Pattern pattern, int page, Object... objects) {
return Collections.emptyList();
}

@Override
default InventoryResult openInventory(Player player, InventoryEngine InventoryEngine) {
return null;
}

@Override
default void postOpenInventory(Player player, InventoryEngine InventoryEngine) {};

@Override
default void closeInventory(Player player, InventoryEngine InventoryEngine) {}

@Override
default MenuItemStack getFillItemStack() {
return null;
}

@Override
default int getUpdateInterval() {
return 0;
}

@Override
default boolean cleanInventory() {
return false;
}

@Override
default Map<String, String> getTranslatedNames() {
return null;
}
}
49 changes: 49 additions & 0 deletions API/src/main/java/fr/maxlego08/menu/api/BedrockManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package fr.maxlego08.menu.api;

import fr.maxlego08.menu.api.configuration.ConfigManagerInt;
import fr.maxlego08.menu.api.exceptions.DialogException;
import fr.maxlego08.menu.api.exceptions.InventoryException;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;

import java.io.File;
import java.util.Collection;
import java.util.List;
import java.util.Optional;

public interface BedrockManager {

BedrockInventory loadBedrockInventory(Plugin plugin, String fileName) throws DialogException;

Optional<BedrockInventory> getBedrockInventory(String name);

Optional<BedrockInventory> getBedrockInventory(String pluginName, String fileName);

Optional<BedrockInventory> getBedrockInventory(Plugin plugin, String fileName);

void deleteBedrockInventory(String name);

void deleteBedrockInventory(Plugin plugin);

void loadBedrockInventory();

BedrockInventory loadInventory(Plugin plugin, String fileName) throws DialogException, InventoryException;

BedrockInventory loadInventory(Plugin plugin, File file) throws DialogException, InventoryException;

BedrockInventory loadInventory(Plugin plugin, String fileName, Class<? extends BedrockInventory> dialogClass) throws DialogException, InventoryException;

BedrockInventory loadInventory(Plugin plugin, File file, Class<? extends BedrockInventory> dialogClass) throws DialogException, InventoryException;

void openBedrockInventory(Player player, BedrockInventory bedrockInventory);

void openBedrockInventory(Player player, BedrockInventory bedrockInventory, List<Inventory> oldInventories);

Collection<BedrockInventory> getBedrockInventory();

void reloadBedrockInventory();

boolean isBedrockPlayer(Player player);

boolean isBedrockPlayer(String value);
}
110 changes: 95 additions & 15 deletions API/src/main/java/fr/maxlego08/menu/api/DialogInventory.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
package fr.maxlego08.menu.api;

import fr.maxlego08.menu.api.button.Button;
import fr.maxlego08.menu.api.button.dialogs.BodyButton;
import fr.maxlego08.menu.api.button.dialogs.InputButton;
import fr.maxlego08.menu.api.enums.DialogType;
import fr.maxlego08.menu.api.engine.InventoryEngine;
import fr.maxlego08.menu.api.engine.InventoryResult;
import fr.maxlego08.menu.api.enums.dialog.DialogType;
import fr.maxlego08.menu.api.pattern.Pattern;
import fr.maxlego08.menu.api.requirement.Requirement;
import fr.maxlego08.menu.api.utils.OpenWithItem;
import fr.maxlego08.menu.api.utils.dialogs.record.ActionButtonRecord;
import fr.maxlego08.menu.api.utils.dialogs.record.ZDialogInventoryBuild;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;

import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

public interface DialogInventory {
String getName(Player player);

public interface DialogInventory extends Inventory{
String getExternalTitle();

String getFileName();

MenuPlugin getPlugin();

File getFile();

void setFile(File file);

boolean canCloseWithEscape();

void setCanCloseWithEscape(boolean canCloseWithEscape);
Expand Down Expand Up @@ -139,9 +138,90 @@ public interface DialogInventory {

ActionButtonRecord getActionButtonServerLink();

void setOpenRequirement(Requirement openRequirement);
//TODO getOpenWithItem not implemented but need
@Override
default OpenWithItem getOpenWithItem() {
return null;
}

Requirement getOpenRequirement();
/**
* Set unUsed méthod of Inventory Interface, don't used in BedrockInventory
*
*/

boolean hasOpenRequirement(Player player);
@Override
default int size() {
return 9;
}

@Override
default InventoryType getType() {
return null;
}

@Override
default boolean shouldCancelItemPickup() {
return false;
}

@Override
default Collection<Button> getButtons() {
return Collections.emptyList();
}

@Override
default Collection<Pattern> getPatterns() {
return Collections.emptyList();
}

@Override
default <T extends Button> List<T> getButtons(Class<T> type) {
return Collections.emptyList();
}

@Override
default int getMaxPage(Collection<Pattern> patterns, Player player, Object... objects) {
return 1;
}

@Override
default List<Button> sortButtons(int page, Object... objects) {
return Collections.emptyList();
}

@Override
default List<Button> sortPatterns(Pattern pattern, int page, Object... objects) {
return Collections.emptyList();
}

@Override
default InventoryResult openInventory(Player player, InventoryEngine InventoryEngine) {
return null;
}

@Override
default void postOpenInventory(Player player, InventoryEngine InventoryEngine) {};

@Override
default void closeInventory(Player player, InventoryEngine InventoryEngine) {}

@Override
default MenuItemStack getFillItemStack() {
return null;
}

@Override
default int getUpdateInterval() {
return 0;
}

@Override
default boolean cleanInventory() {
return false;
}

@Override
default Map<String, String> getTranslatedNames() {
return null;
}
}
5 changes: 3 additions & 2 deletions API/src/main/java/fr/maxlego08/menu/api/DialogManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import java.io.File;
import java.util.Collection;
import java.util.List;
import java.util.Optional;

public interface DialogManager {
Expand Down Expand Up @@ -40,9 +41,9 @@ public interface DialogManager {

//Optional<DialogBuilder> getDialogBuilder(DialogBodyType type);

Collection<DialogInventory> getDialogs();
void openDialog(Player player, DialogInventory dialogInventory, List<Inventory> oldInventories);

InventoryManager getInventoryManager();
Collection<DialogInventory> getDialogs();

void reloadDialogs();

Expand Down
40 changes: 40 additions & 0 deletions API/src/main/java/fr/maxlego08/menu/api/ItemManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package fr.maxlego08.menu.api;

import fr.maxlego08.menu.api.mechanic.MechanicFactory;
import fr.maxlego08.menu.api.mechanic.MechanicListener;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;

import java.io.File;
import java.util.Optional;
import java.util.Set;

public interface ItemManager {

void loadAll();

void loadCustomItems();

void loadCustomItem(File file);

void reloadCustomItems();

boolean isCustomItem(String itemId);

boolean isCustomItem(ItemStack itemStack);

Optional<String> getItemId(ItemStack itemStack);

Set<String> getItemIds();

void registerListeners(Plugin plugin, String mechanicId, MechanicListener listener);

void unloadListeners();

void registerMechanicFactory(MechanicFactory factory);

void giveItem(Player player, String itemId);

void executeCheckInventoryItems(Player player);
}
Loading
Loading