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.plugin = plugin;
this.inventoryManager = new InventoryManager( this.inventoryManager = new InventoryManager(
config.getString(ConfigPaths.GUINAME, "GiftAPI Menu"), ConfigPaths.getWithColor(config, ConfigPaths.GUINAME, "GiftAPI Menu"),
config.getString(ConfigPaths.GUIRIGHT, "<<right"), ConfigPaths.getWithColor(config, ConfigPaths.GUIRIGHT, "<<right"),
config.getString(ConfigPaths.GUILEFT, "left>>"), ConfigPaths.getWithColor(config, ConfigPaths.GUILEFT, "left>>"),
config.getString(ConfigPaths.GUIEXIT, "quit") ConfigPaths.getWithColor(config, ConfigPaths.GUIEXIT, "quit")
); );
Bukkit.getPluginManager().registerEvents(this.inventoryManager, this.plugin); Bukkit.getPluginManager().registerEvents(this.inventoryManager, this.plugin);

View File

@ -1,9 +1,17 @@
package tokarotik.giftapi; package tokarotik.giftapi;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
public class ConfigPaths { public class ConfigPaths {
public static final String DEVTEST = "dev-test"; public static final String DEVTEST = "dev-test";
public static final String GUINAME = "gui.title-menu"; public static final String GUINAME = "gui.title-menu";
public static final String GUIRIGHT = "gui.buttons.right-name"; public static final String GUIRIGHT = "gui.buttons.right-name";
public static final String GUILEFT = "gui.buttons.left-name"; public static final String GUILEFT = "gui.buttons.left-name";
public static final String GUIEXIT = "gui.buttons.exit-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; package tokarotik.giftapi;
import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import tokarotik.giftapi.dev.GiftCommand; 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.EntityPlayer;
import net.minecraft.server.v1_6_R3.NBTCompressedStreamTools; import net.minecraft.server.v1_6_R3.NBTCompressedStreamTools;
@ -13,7 +13,7 @@ import java.io.FileInputStream;
public class BasicNBT { public class BasicNBT {
private String path; private final String path;
public BasicNBT(String world) 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.EntityPlayer;
import net.minecraft.server.v1_6_R3.NBTTagCompound; 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.NBTTagList;
import net.minecraft.server.v1_6_R3.NBTTagString; 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.NBTTagCompound;
import net.minecraft.server.v1_6_R3.NBTTagList; 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.NBTTagCompound;
import net.minecraft.server.v1_6_R3.NBTTagList; import net.minecraft.server.v1_6_R3.NBTTagList;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import tokarotik.giftapi.savemanager.item.ItemNBT; import tokarotik.giftapi.NBT.item.ItemNBT;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -11,12 +11,22 @@ import java.util.List;
public class Page public class Page
{ {
public final int max_stack; private final int max_stack;
public NBTTagList tag; private NBTTagList tag;
public Integer number;
public Page(int max_stack) public Page(int max_stack)
{ {
this.max_stack = 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) { public boolean add(ItemStack item) {
@ -46,11 +56,26 @@ public class Page
return false; return false;
} }
public NBTTagList getTag()
{
return this.tag;
}
public void setTag(NBTTagList tag)
{
this.tag = tag;
}
public ItemStack[] getList() public ItemStack[] getList()
{ {
return PageUtil.reverse(PageUtil.getRawList(this.tag)); return PageUtil.reverse(PageUtil.getRawList(this.tag));
} }
public boolean isEmpty()
{
return this.tag.size() == 0;
}
public boolean isOverStacked() public boolean isOverStacked()
{ {
return this.tag.size() < this.max_stack; return this.tag.size() < this.max_stack;
@ -68,4 +93,14 @@ public class Page
return new ItemStack[]{}; 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.NBTTagCompound;
import net.minecraft.server.v1_6_R3.NBTTagList; import net.minecraft.server.v1_6_R3.NBTTagList;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import tokarotik.giftapi.savemanager.item.ItemLoad; import tokarotik.giftapi.NBT.item.ItemLoad;
import tokarotik.giftapi.savemanager.item.ItemNBT; import tokarotik.giftapi.NBT.item.ItemNBT;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;

View File

@ -6,7 +6,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import tokarotik.giftapi.APIManager; import tokarotik.giftapi.APIManager;
import tokarotik.giftapi.savemanager.NBTManager; import tokarotik.giftapi.NBT.NBTManager;
public class GiftCommand implements CommandExecutor { 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/ # For colors:
# Set Names Only In English # do not use § use only &
# Will turn command /gift for dev. test # Will turn command /gift for dev. test
dev-test: true dev-test: true
gui: gui:
# Set Title Only In English
# Max title length is 32 letters # Max title length is 32 letters
title-menu: "Set Your Title In Config" title-menu: "Set Your Title In Config"
buttons: buttons:
right-name: ">" right-name: "&6>"
left-name: "<" left-name: "&6<"
exit-name: "Exit" exit-name: "&4Exit"