кто эти нбт придумал...

мучаюсь с нбт
This commit is contained in:
ScriptCat 2025-07-23 15:09:25 +03:00
parent 2706c8e23a
commit 1b47fe51e1
7 changed files with 80 additions and 9 deletions

View File

@ -9,7 +9,7 @@ import tokarotik.giftapi.inventory.InventoryManager;
public class APIManager {
private Main plugin;
public Main plugin;
private FileConfiguration config;
private InventoryManager inventoryManager;

View File

@ -1,6 +1,7 @@
package tokarotik.giftapi;
public class ConfigPaths {
public static final String DEVTEST = "dev-test";
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,6 +5,7 @@ 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
@ -12,8 +13,7 @@ public class Main extends JavaPlugin implements Listener
private APIManager apiManager;
@Override
public void onEnable()
{
public void onEnable() {
saveDefaultConfig();
getLogger().info("GiftAPI enabled!");
@ -21,7 +21,10 @@ public class Main extends JavaPlugin implements Listener
saveDefaultConfig();
apiManager = new APIManager(this, getConfig());
this.getCommand("gift").setExecutor(new GiftCommand(apiManager));
if (getConfig().getBoolean(ConfigPaths.DEVTEST, false))
{
this.getCommand("gift").setExecutor(new GiftCommand(apiManager));
}
}
@Override
@ -42,4 +45,7 @@ public class Main extends JavaPlugin implements Listener
{
return apiManager.remove(player, item);
}
// will open inventory GiftAPI
public void openGUI(Player player) {apiManager.openInventory(player);}
}

View File

@ -1,18 +1,20 @@
package tokarotik.giftapi.dev;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import tokarotik.giftapi.APIManager;
import tokarotik.giftapi.savemanager.NBTManager;
public class GiftCommand implements CommandExecutor {
private APIManager APIManager;
private APIManager apiManager;
public GiftCommand(APIManager APIManager)
{
this.APIManager = APIManager;
this.apiManager = APIManager;
}
@Override
@ -23,7 +25,9 @@ public class GiftCommand implements CommandExecutor {
return true;
}
this.APIManager.openInventory((Player) sender);
new NBTManager().write((Player) sender, Bukkit.getWorld("world").getWorldFolder().getAbsolutePath());
this.apiManager.openInventory((Player) sender);
return true;
}

View File

@ -1,7 +1,6 @@
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;
@ -10,7 +9,7 @@ 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 {

View File

@ -0,0 +1,58 @@
package tokarotik.giftapi.savemanager;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.NBTCompressedStreamTools;
import net.minecraft.server.v1_6_R3.NBTTagCompound;
import net.minecraft.server.v1_6_R3.NBTTagString;
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class NBTManager
{
public void write(Player player, String path)
{
EntityPlayer entityPlayer = getPlayer(player);
//entityPlayer.getName()
NBTTagCompound tag = readNBT(entityPlayer, path);
if (tag == null){System.out.println("IS NULL!!!");};
tag.setShort("Health", (short) 15);
tag.setFloat("HealF", 15.0F);
System.out.println(tag);
entityPlayer.f(tag);
System.out.println();
System.out.println(tag);
}
private NBTTagCompound readNBT(EntityPlayer player, String path)
{
try {
FileInputStream fis = new FileInputStream(path + "/players/" + player.getName() + ".dat");
NBTTagCompound compound = NBTCompressedStreamTools.a(fis); // Decompress and load
fis.close();
player.b(compound);
return compound;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private EntityPlayer getPlayer(Player player)
{
return ((CraftPlayer) player).getHandle();
}
}

View File

@ -1,6 +1,9 @@
# Colors you can see here https://htmlcolorcodes.com/minecraft-color-codes/
# Set Names Only In English
# Will turn command /gift for dev. test
dev-test: true
gui:
# Max title length is 32 letters
title-menu: "Set Your Title In Config"