update... big update

/gift
переделал конфиг и чутка менюшку
завтра продолжу
This commit is contained in:
ScriptCat 2025-07-23 01:56:57 +03:00
parent 6fc6ba55bc
commit 2706c8e23a
9 changed files with 319 additions and 26 deletions

124
.idea/uiDesigner.xml generated Normal file
View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

View File

@ -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, "<<right"),
this.config.getString(ConfigPaths.GUILEFT, "left>>")
);
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);
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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: ">"

View File

@ -1,3 +1,8 @@
name: GiftAPI
version: 1.0
main: tokarotik.giftapi.Main
main: tokarotik.giftapi.Main
commands:
gift:
description: for test
usage: /<command>