diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/tokarotik/giftapi/APIManager.java b/src/main/java/tokarotik/giftapi/APIManager.java
new file mode 100644
index 0000000..00b96cb
--- /dev/null
+++ b/src/main/java/tokarotik/giftapi/APIManager.java
@@ -0,0 +1,44 @@
+package tokarotik.giftapi;
+
+import org.bukkit.Bukkit;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+
+import tokarotik.giftapi.inventory.InventoryManager;
+
+public class APIManager {
+
+ private Main plugin;
+ private FileConfiguration config;
+ private InventoryManager inventoryManager;
+
+ public APIManager(Main plugin, FileConfiguration config)
+ {
+ this.plugin = plugin;
+ this.config = config;
+
+ this.inventoryManager = new InventoryManager(
+ this.config.getString(ConfigPaths.GUINAME, "GiftAPI Menu"),
+ this.config.getString(ConfigPaths.GUIRIGHT, "<>")
+ );
+
+ Bukkit.getPluginManager().registerEvents(this.inventoryManager, this.plugin);
+ }
+
+ public boolean add(Player player, ItemStack item)
+ {
+ return false;
+ }
+
+ public boolean remove(Player player, ItemStack item)
+ {
+ return false;
+ }
+
+ public void openInventory(Player player)
+ {
+ this.inventoryManager.openCustomInventory(player);
+ }
+}
diff --git a/src/main/java/tokarotik/giftapi/ConfigPaths.java b/src/main/java/tokarotik/giftapi/ConfigPaths.java
new file mode 100644
index 0000000..c351fba
--- /dev/null
+++ b/src/main/java/tokarotik/giftapi/ConfigPaths.java
@@ -0,0 +1,7 @@
+package tokarotik.giftapi;
+
+public class ConfigPaths {
+ public static final String GUINAME = "gui.title-menu";
+ public static final String GUIRIGHT = "gui.arrow.right-name";
+ public static final String GUILEFT = "gui.arrow.left-name";
+}
diff --git a/src/main/java/tokarotik/giftapi/Main.java b/src/main/java/tokarotik/giftapi/Main.java
index 691d85f..cb044c9 100644
--- a/src/main/java/tokarotik/giftapi/Main.java
+++ b/src/main/java/tokarotik/giftapi/Main.java
@@ -5,16 +5,23 @@ import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
+import tokarotik.giftapi.dev.GiftCommand;
public class Main extends JavaPlugin implements Listener
{
- private ManagerAPI managerApi;
+ private APIManager apiManager;
@Override
- public void onEnable() {
+ public void onEnable()
+ {
+ saveDefaultConfig();
+
getLogger().info("GiftAPI enabled!");
- managerApi = new ManagerAPI();
+ saveDefaultConfig();
+ apiManager = new APIManager(this, getConfig());
+
+ this.getCommand("gift").setExecutor(new GiftCommand(apiManager));
}
@Override
@@ -22,21 +29,17 @@ public class Main extends JavaPlugin implements Listener
getLogger().info("GiftAPI disabled!");
}
- public Main getAPI() {
- return this;
- }
-
// if failed to add, return false
// if successfully added, return true
public boolean add(Player player, ItemStack item)
{
- return managerApi.add(player, item);
+ return apiManager.add(player, item);
}
// if failed to remove item, return false
// if successfully removed item, return true
public boolean remove(Player player, ItemStack item)
{
- return managerApi.remove(player, item);
+ return apiManager.remove(player, item);
}
}
\ No newline at end of file
diff --git a/src/main/java/tokarotik/giftapi/ManagerAPI.java b/src/main/java/tokarotik/giftapi/ManagerAPI.java
deleted file mode 100644
index a335011..0000000
--- a/src/main/java/tokarotik/giftapi/ManagerAPI.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package tokarotik.giftapi;
-
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-
-public class ManagerAPI {
- public boolean add(Player player, ItemStack item)
- {
- return false;
- }
-
- public boolean remove(Player player, ItemStack item)
- {
- return false;
- }
-}
diff --git a/src/main/java/tokarotik/giftapi/dev/GiftCommand.java b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java
new file mode 100644
index 0000000..c9dcd99
--- /dev/null
+++ b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java
@@ -0,0 +1,31 @@
+package tokarotik.giftapi.dev;
+
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import tokarotik.giftapi.APIManager;
+
+public class GiftCommand implements CommandExecutor {
+
+ private APIManager APIManager;
+
+ public GiftCommand(APIManager APIManager)
+ {
+ this.APIManager = APIManager;
+ }
+
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
+ if (!(sender instanceof Player))
+ {
+ sender.sendMessage("This command can use only player!");
+ return true;
+ }
+
+ this.APIManager.openInventory((Player) sender);
+
+ return true;
+ }
+}
+
diff --git a/src/main/java/tokarotik/giftapi/inventory/InventoryManager.java b/src/main/java/tokarotik/giftapi/inventory/InventoryManager.java
new file mode 100644
index 0000000..9b61062
--- /dev/null
+++ b/src/main/java/tokarotik/giftapi/inventory/InventoryManager.java
@@ -0,0 +1,85 @@
+package tokarotik.giftapi.inventory;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Listener;
+import org.bukkit.event.inventory.InventoryClickEvent;
+import org.bukkit.event.EventHandler;
+import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import tokarotik.giftapi.ConfigPaths;
+
+public class InventoryManager implements Listener {
+
+ private String nameGUI;
+ private String nameArrowRight;
+ private String nameArrowLeft;
+
+ public InventoryManager(String nameGUI, String nameArrowRight, String nameArrowLeft)
+ {
+ this.nameGUI = nameGUI;
+ this.nameArrowRight = nameArrowRight;
+ this.nameArrowLeft = nameArrowLeft;
+ }
+ public void openCustomInventory(Player player)
+ {
+ Inventory inventory = Bukkit.createInventory(null, 54, this.nameGUI);
+
+ updateInventory(inventory);
+
+ player.openInventory(inventory);
+ }
+ @EventHandler
+ public void onInventoryClick(InventoryClickEvent event) {
+ if (event.getInventory().getTitle().equals(this.nameGUI)) {
+ event.setCancelled(true);
+
+ if (event.getCurrentItem() == null) return;
+ /*if (event.getCurrentItem().getItemMeta().getDisplayName() == Material.DIAMOND) {
+ Player player = (Player) event.getWhoClicked();
+ player.sendMessage(ChatColor.GREEN + "Ты кликнул по алмазу!");
+ player.closeInventory();
+ }*/
+ }
+ }
+
+ private void updateInventory(Inventory inventory)
+ {
+ setUI(inventory);
+ }
+
+ private void setUI(Inventory inventory)
+ {
+ // arrow right
+ setSkull(inventory, "right", this.nameArrowRight, 0, 6);
+ // arrow left
+ setSkull(inventory, "left", this.nameArrowLeft, 8, 6);
+ // exit
+ //setSkull(inventory, "exit", ChatColor.ITALIC + "" + ChatColor.DARK_RED + "Выйти", 4, 6);
+
+
+ }
+
+ private void setSkull(Inventory inventory, String direction, String name, int x, int y)
+ {
+ ItemStack arrow = new ItemStack(Material.ARROW, 1);
+ ItemMeta meta_arrow = arrow.getItemMeta();
+
+ meta_arrow.setDisplayName(name);
+ arrow.setItemMeta(meta_arrow);
+
+ inventory.setItem(
+ getCordinates(x, y),
+ arrow
+ );
+ }
+
+ public int getCordinates(int x, int y)
+ {
+ if (y == 0) {y++;}
+ return ((y - 1) * 9 + x) % 64;
+ }
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index e69de29..4035cac 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -0,0 +1,10 @@
+# Colors you can see here https://htmlcolorcodes.com/minecraft-color-codes/
+# Set Names Only In English
+
+gui:
+ # Max title length is 32 letters
+ title-menu: "Set Your Title In Config"
+
+ arrow:
+ right-name: "<"
+ left-name: ">"
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 8252817..1f0385d 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,3 +1,8 @@
name: GiftAPI
version: 1.0
-main: tokarotik.giftapi.Main
\ No newline at end of file
+main: tokarotik.giftapi.Main
+
+commands:
+ gift:
+ description: for test
+ usage: /
\ No newline at end of file