i need more bullets

i think i will delete NBTManager.java
This commit is contained in:
ScriptCat 2025-07-25 22:06:05 +03:00
parent cfb573e376
commit f347c01426
15 changed files with 242 additions and 36 deletions

View File

@ -17,10 +17,10 @@ public class APIManager {
this.plugin = plugin;
this.inventoryManager = new InventoryManager(
config.getString(ConfigPaths.GUINAME, "GiftAPI Menu"),
config.getString(ConfigPaths.GUIRIGHT, "<<right"),
config.getString(ConfigPaths.GUILEFT, "left>>"),
config.getString(ConfigPaths.GUIEXIT, "quit")
ConfigPaths.getWithColor(config, ConfigPaths.GUINAME, "GiftAPI Menu"),
ConfigPaths.getWithColor(config, ConfigPaths.GUIRIGHT, "<<right"),
ConfigPaths.getWithColor(config, ConfigPaths.GUILEFT, "left>>"),
ConfigPaths.getWithColor(config, ConfigPaths.GUIEXIT, "quit")
);
Bukkit.getPluginManager().registerEvents(this.inventoryManager, this.plugin);

View File

@ -1,9 +1,17 @@
package tokarotik.giftapi;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
public class ConfigPaths {
public static final String DEVTEST = "dev-test";
public static final String GUINAME = "gui.title-menu";
public static final String GUIRIGHT = "gui.buttons.right-name";
public static final String GUILEFT = "gui.buttons.left-name";
public static final String GUIEXIT = "gui.buttons.exit-name";
public static String getWithColor(FileConfiguration config, String path, String defaul)
{
return ChatColor.translateAlternateColorCodes('&', config.getString(path, defaul));
}
}

View File

@ -1,11 +1,8 @@
package tokarotik.giftapi;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import tokarotik.giftapi.dev.GiftCommand;

View File

@ -1,4 +1,4 @@
package tokarotik.giftapi.savemanager;
package tokarotik.giftapi.NBT;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.NBTCompressedStreamTools;
@ -13,7 +13,7 @@ import java.io.FileInputStream;
public class BasicNBT {
private String path;
private final String path;
public BasicNBT(String world)
{

View File

@ -1,4 +1,4 @@
package tokarotik.giftapi.savemanager;
package tokarotik.giftapi.NBT;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.NBTTagCompound;

View File

@ -0,0 +1,40 @@
package tokarotik.giftapi.NBT;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.NBTTagCompound;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
public class WorldNBTSynchronizer
{
public static String getWorld(EntityPlayer entityPlayer, String worldName)
{
BasicNBT basicNBT = new BasicNBT(worldName);
return worldName;
}
private static boolean hasPlayer(String playerName, String worldName)
{
World world = Bukkit.getWorld(worldName);
for (Player player : world.getPlayers())
{
if (player.getName() == playerName) { return true; }
}
return false;
}
private static boolean hasGiftApiNBT(EntityPlayer entityPlayer, String worldName)
{
BasicNBT basicNBT = new BasicNBT(worldName);
NBTTagCompound tag = basicNBT.readPlayerNBT(entityPlayer);
return true;
}
}

View File

@ -1,4 +1,4 @@
package tokarotik.giftapi.savemanager.item;
package tokarotik.giftapi.NBT.item;
import net.minecraft.server.v1_6_R3.NBTTagList;
import net.minecraft.server.v1_6_R3.NBTTagString;

View File

@ -1,4 +1,4 @@
package tokarotik.giftapi.savemanager.item;
package tokarotik.giftapi.NBT.item;
import net.minecraft.server.v1_6_R3.NBTTagCompound;
import net.minecraft.server.v1_6_R3.NBTTagList;

View File

@ -0,0 +1,113 @@
package tokarotik.giftapi.NBT.page;
import net.minecraft.server.v1_6_R3.NBTTagList;
import org.bukkit.inventory.ItemStack;
import tokarotik.giftapi.NBT.page.page.Page;
public class PageManager
{
private NBTTagList tag;
private final int max_stack;
public PageManager(NBTTagList tag, int max_stack)
{
this.tag = tag;
this.max_stack = max_stack;
}
public PageManager(int max_stack)
{
this.max_stack = max_stack;
}
public NBTTagList getTag()
{
return this.tag;
}
public void setTag(NBTTagList tag)
{
this.tag = tag;
}
public boolean add(ItemStack item)
{
Page page = getPageWithEmptySlots();
boolean is_added = page.add(item);
boolean is_updated = updateTag(page);
return is_added && is_updated;
}
public boolean remove(ItemStack item)
{
Page page = getPageWithEmptySlots();
boolean is_removed = page.remove(item);
boolean is_updated = updateTag(page);
return is_removed && is_updated;
}
public Page getPage(int number)
{
if (number > 0 && number < this.tag.size())
{
NBTTagList tag = (NBTTagList) this.tag.get(number);
return new Page(tag, this.max_stack, number);
}
return null;
}
public Page getPageWithEmptySlots()
{
for (int i = 0; i < tag.size(); i++)
{
Page page = new Page( (NBTTagList) tag.get(i), this.max_stack, i);
if (!page.isOverStacked())
{
return page;
}
}
Page page = new Page(this.max_stack);
page.setNumber(tag.size());
return page;
}
public boolean updateTag(Page page)
{
Integer page_number = page.getNumber();
if (page_number == null) { return false; }
NBTTagList new_tag = new NBTTagList();
for (int i = 0; i < tag.size(); i++)
{
NBTTagList pageNBT = (NBTTagList) tag.get(i);
if (page_number == i)
{
pageNBT = page.getTag();
}
new_tag.add(pageNBT);
}
this.tag = new_tag;
return true;
}
}

View File

@ -0,0 +1,22 @@
package tokarotik.giftapi.NBT.page;
import org.bukkit.entity.Player;
public class PagesSaver
{
final PageManager pageManager;
final Player player;
//final BasicNBT basicNBT;
public PagesSaver(Player player, int max_stack)
{
this.pageManager = new PageManager(max_stack);
this.player = player;
//this.basicNBT = new BasicNBT();
}
public void loadNBT()
{
}
}

View File

@ -1,9 +1,9 @@
package tokarotik.giftapi.savemanager.page;
package tokarotik.giftapi.NBT.page.page;
import net.minecraft.server.v1_6_R3.NBTTagCompound;
import net.minecraft.server.v1_6_R3.NBTTagList;
import org.bukkit.inventory.ItemStack;
import tokarotik.giftapi.savemanager.item.ItemNBT;
import tokarotik.giftapi.NBT.item.ItemNBT;
import java.util.ArrayList;
import java.util.Arrays;
@ -11,12 +11,22 @@ import java.util.List;
public class Page
{
public final int max_stack;
public NBTTagList tag;
private final int max_stack;
private NBTTagList tag;
public Integer number;
public Page(int max_stack)
{
this.max_stack = max_stack;
this.tag = new NBTTagList();
}
public Page(NBTTagList tag, int max_stack, int number)
{
this.tag = tag;
this.max_stack = max_stack;
this.number = number;
}
public boolean add(ItemStack item) {
@ -46,11 +56,26 @@ public class Page
return false;
}
public NBTTagList getTag()
{
return this.tag;
}
public void setTag(NBTTagList tag)
{
this.tag = tag;
}
public ItemStack[] getList()
{
return PageUtil.reverse(PageUtil.getRawList(this.tag));
}
public boolean isEmpty()
{
return this.tag.size() == 0;
}
public boolean isOverStacked()
{
return this.tag.size() < this.max_stack;
@ -68,4 +93,14 @@ public class Page
return new ItemStack[]{};
}
public Integer getNumber()
{
return this.number;
}
public void setNumber(int number)
{
this.number = number;
}
}

View File

@ -1,10 +1,10 @@
package tokarotik.giftapi.savemanager.page;
package tokarotik.giftapi.NBT.page.page;
import net.minecraft.server.v1_6_R3.NBTTagCompound;
import net.minecraft.server.v1_6_R3.NBTTagList;
import org.bukkit.inventory.ItemStack;
import tokarotik.giftapi.savemanager.item.ItemLoad;
import tokarotik.giftapi.savemanager.item.ItemNBT;
import tokarotik.giftapi.NBT.item.ItemLoad;
import tokarotik.giftapi.NBT.item.ItemNBT;
import java.util.Arrays;
import java.util.Collections;

View File

@ -6,7 +6,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import tokarotik.giftapi.APIManager;
import tokarotik.giftapi.savemanager.NBTManager;
import tokarotik.giftapi.NBT.NBTManager;
public class GiftCommand implements CommandExecutor {

View File

@ -1,11 +0,0 @@
package tokarotik.giftapi.savemanager.page;
public class PageManager
{
public PageManager()
{
}
}

View File

@ -1,14 +1,16 @@
# Colors you can see here https://htmlcolorcodes.com/minecraft-color-codes/
# Set Names Only In English
# For colors:
# do not use § use only &
# Will turn command /gift for dev. test
dev-test: true
gui:
# Set Title Only In English
# Max title length is 32 letters
title-menu: "Set Your Title In Config"
buttons:
right-name: ">"
left-name: "<"
exit-name: "Exit"
right-name: "&6>"
left-name: "&6<"
exit-name: "&4Exit"