Save as branch

This commit is contained in:
unurled 2022-01-06 11:26:32 +01:00
parent 00cb3c2b8c
commit 5447241c89
34 changed files with 538 additions and 43 deletions

View file

@ -20,10 +20,9 @@ public final class Raxen extends JavaPlugin {
private static final String prefix = ChatColor.AQUA + "Rx" + ChatColor.LIGHT_PURPLE + "> ";
@Getter
private static final String version = "0.4.4";
private static String version = "";
private final PluginManager pm = getServer().getPluginManager();
@Getter
private static Raxen plugin;
private static Logger logger;
@ -44,6 +43,8 @@ public final class Raxen extends JavaPlugin {
private ItemManager itemManager;
@Getter
private ResourcePackManager resourcePackManager;
@Getter
private LootManager lootManager;
@Getter
private ProtocolManager protocolManager;
@ -56,6 +57,7 @@ public final class Raxen extends JavaPlugin {
public void onEnable() {
plugin = this;
logger = getLogger();
version = plugin.getDescription().getVersion();
//Config and storage sruff
config = new Config(this);
@ -69,6 +71,7 @@ public final class Raxen extends JavaPlugin {
protocolManager = ProtocolLibrary.getProtocolManager();
protoManager = new gq.unurled.raxen.manager.ProtocolManager(this);
resourcePackManager = new ResourcePackManager(this);
lootManager = new LootManager(this);
playerConfig = new PlayerConfig(this);
luckPerm = new LuckPerm(this);

View file

@ -1,6 +1,6 @@
package gq.unurled.raxen.commands.admin;
import de.tr7zw.changeme.nbtapi.NBTItem;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.Attributes.Attributes;
import net.kyori.adventure.text.Component;

View file

@ -17,7 +17,7 @@ public class Attributes {
public static Attribute getAttribute(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana;
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck;
maxHealth = data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER);
health = data.get(namespacedKey.healthKey, PersistentDataType.INTEGER);
itemHealth = data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER);
@ -30,11 +30,13 @@ public class Attributes {
maxMana = data.get(namespacedKey.maxMana, PersistentDataType.INTEGER);
mana = data.get(namespacedKey.mana, PersistentDataType.INTEGER);
itemMana = data.get(namespacedKey.itemMana, PersistentDataType.INTEGER);
luck = data.get(namespacedKey.luck, PersistentDataType.INTEGER);
itemLuck = data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER);
return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana);
return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck);
}
public static void setAttributes(Entity e, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg, int maxMana, int mana, int itemMana) {
public static void setAttributes(Entity e, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg, int maxMana, int mana, int itemMana, int luck, int itemLuck) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health);
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, itemHealth);
@ -47,6 +49,8 @@ public class Attributes {
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, maxMana);
data.set(namespacedKey.mana, PersistentDataType.INTEGER, mana);
data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, itemMana);
data.set(namespacedKey.luck, PersistentDataType.INTEGER, luck);
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, itemLuck);
}
public void removeSpeed(Entity e, int i) {
@ -77,6 +81,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) -i);
}
public void removeLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) -i);
}
public void removeItemSpeed(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
@ -94,6 +102,11 @@ public class Attributes {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) -i);
}
public void removeItemLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) -i);
}
public void addSpeed(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
@ -123,6 +136,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) +i);
}
public void addLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) +i);
}
public void addItemSpeed(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
@ -140,6 +157,10 @@ public class Attributes {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) +i);
}
public void addItemLuck(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) +i);
}
public Integer getSpeed(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
@ -169,6 +190,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER);
}
public Integer getLuck(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.luck, PersistentDataType.INTEGER);
}
public Integer getItemSpeed(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
@ -186,6 +211,10 @@ public class Attributes {
PersistentDataContainer data = e.getPersistentDataContainer();
return data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER);
}
public Integer getItemLuck(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
return data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER);
}
public void setHealth(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
@ -215,6 +244,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, i);
}
public void setLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.luck, PersistentDataType.INTEGER, i);
}
public void setItemHealth(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
@ -232,4 +265,8 @@ public class Attributes {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, i);
}
public void setItemLuck(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, i);
}
}

View file

@ -21,6 +21,8 @@ public class EntityNamespacedKey {
maxMana = new NamespacedKey(main, "maxMana");
mana = new NamespacedKey(main, "mana");
itemMana = new NamespacedKey(main, "itemMana");
luck = new NamespacedKey(main, "luck");
itemLuck = new NamespacedKey(main, "itemLuck");
inventory = new NamespacedKey(main, "inventory");
storage = new NamespacedKey(main, "storage");
@ -40,6 +42,8 @@ public class EntityNamespacedKey {
public final NamespacedKey maxMana;
public final NamespacedKey mana;
public final NamespacedKey itemMana;
public final NamespacedKey luck;
public final NamespacedKey itemLuck;
public final NamespacedKey inventory;
public final NamespacedKey storage;

View file

@ -13,7 +13,9 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static gq.unurled.raxen.utils.Items.*;
import static gq.unurled.raxen.utils.Utils.fillGreyPane;
@ -33,7 +35,7 @@ public class ItemListGui implements Listener {
private Inventory inv8 = Bukkit.createInventory(null, 54, Component.text("Item List"));
private Inventory inv9 = Bukkit.createInventory(null, 54, Component.text("Item List"));
private List<ItemStack> itlist;
private HashMap<String, ItemStack> itlist;
public ItemListGui(Raxen main) {
this.main = main;
@ -50,7 +52,8 @@ public class ItemListGui implements Listener {
public Inventory getInventories() {
Integer page = 1;
Integer item = -1;
for (ItemStack it : itlist) {
for (Map.Entry<String, ItemStack> entry : itlist.entrySet()) {
ItemStack it = entry.getValue();
item++;
if(item > 44 && item < 91) {
inv2.addItem(it);

View file

@ -6,7 +6,7 @@ public class Attributes {
@Getter
Integer health, speed, defense, strength;
public Attributes(Integer health, Integer defense, Integer speed, Integer strength) {
public Attributes(Integer health, Integer defense, Integer speed, Integer strength, Integer mana, Integer luck) {
this.health = health;
this.defense = defense;
this.speed = speed;

View file

@ -6,7 +6,10 @@ public class NBT {
public static String SPEED = "SPEED";
public static String STRENGTH = "STRENGTH";
public static String DEFENSE = "DEFENSE";
public static String LUCK = "LUCK";
public static String MANA = "MANA";
public static String ID = "ID";
public static String CUSTOM_ABILITY = "CUSTOM_ABILITY";
public static String DROP_RATE = "DROP_RATE";
}

View file

@ -1,2 +1,24 @@
package gq.unurled.raxen.components.lootchest;public class GUI {
package gq.unurled.raxen.components.lootchest;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.manager.PlayerManager;
import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
public class GUI {
@Getter
private static Inventory inv = Bukkit.createInventory(null, 54);
private static PlayerManager playerManager;
public GUI(Raxen main) {
this.playerManager = main.getPlayerManager();
}
public static Inventory addItems(Player player) {
Integer luck = playerManager.getRaxenPlayer(player).getAttributes().getLuck(player);
return inv;
}
}

View file

@ -1,2 +1,43 @@
package gq.unurled.raxen.components.lootchest.loots;public class CustomLoot {
package gq.unurled.raxen.components.lootchest.loots;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.items.NBT;
import org.bukkit.Location;
import org.bukkit.inventory.ItemStack;
import java.util.HashMap;
public class CustomLoot {
private Raxen main;
public HashMap<String, ItemStack> itlist;
public ItemStack item;
public Double drop_rate;
public LootItem lootItem;
public String ID;
public LootItem getLootItem() {
return new LootItem(registerItem(), drop_rate);
}
public ItemStack registerItem() {
return itlist.get(ID);
}
public Double getDrop_rate() {
NBTItem nbti = new NBTItem(item);
if (nbti.hasKey(NBT.DROP_RATE)) {
return nbti.getDouble(NBT.DROP_RATE);
}
return 0.0;
}
public void tryDropLoot(Location location) {
for (LootItem item : main.getLootManager().getLootTable()) {
item.tryDropItem(location);
}
}
}

View file

@ -1,2 +1,29 @@
package gq.unurled.raxen.components.lootchest.loots;public class LootItem {
package gq.unurled.raxen.components.lootchest.loots;
import org.bukkit.Location;
import org.bukkit.inventory.ItemStack;
import java.util.Random;
public class LootItem {
private ItemStack item;
private int min = 1, max = 1;
private double dropRate;
private static Random randomiser = new Random();
public LootItem(ItemStack item, double dropRate) {
this.item = item;
this.dropRate = dropRate;
}
public void tryDropItem(Location loc) {
if (Math.random() * 101 > dropRate) return;
int amount = randomiser.nextInt(max - min + 1) + min;
if (amount == 0) return;
ItemStack item = this.item.clone();
item.setAmount(amount);
loc.getWorld().dropItemNaturally(loc, item);
}
}

View file

@ -1,2 +1,15 @@
package gq.unurled.raxen.components.lootchest.loots.test;public class TestSword {
package gq.unurled.raxen.components.lootchest.loots.test;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.lootchest.loots.CustomLoot;
public class TestSword extends CustomLoot {
public TestSword(Raxen main) {
this.itlist = main.getItemManager().getList();
this.ID = "BEST_NEW_ITEM";
this.drop_rate = getDrop_rate();
this.item = registerItem();
this.lootItem = getLootItem();
}
}

View file

@ -7,9 +7,9 @@ public class Attribute {
@Getter
@Setter
private int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana;
private int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck;
public Attribute(int maxHealth, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemStrength, int maxMana, int mana, int itemMana) {
public Attribute(int maxHealth, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemStrength, int maxMana, int mana, int itemMana, int luck, int itemLuck) {
this.maxHealth = maxHealth;
this.health = health;
this.itemHealth = itemHealth;
@ -22,5 +22,7 @@ public class Attribute {
this.maxHealth = maxMana;
this.mana = mana;
this.itemMana = itemMana;
this.luck = luck;
this.itemLuck = itemLuck;
}
}

View file

@ -16,7 +16,7 @@ public class Attributes {
public static Attribute getAttribute(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana;
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck;
maxHealth = data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER);
health = data.get(namespacedKey.healthKey, PersistentDataType.INTEGER);
itemHealth = data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER);
@ -29,10 +29,12 @@ public class Attributes {
mana = data.get(namespacedKey.mana, PersistentDataType.INTEGER);
itemMana = data.get(namespacedKey.itemMana, PersistentDataType.INTEGER);
maxMana = data.get(namespacedKey.maxMana, PersistentDataType.INTEGER);
return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana);
luck = data.get(namespacedKey.luck, PersistentDataType.INTEGER);
itemLuck = data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER);
return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg, maxMana, mana, itemMana, luck, itemLuck);
}
public static void setAttributes(Player player, int maxHealth, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg, int maxMana, int mana, int itemMana) {
public static void setAttributes(Player player, int maxHealth, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg, int maxMana, int mana, int itemMana, int luck, int itemLuck) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, maxHealth);
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health);
@ -46,6 +48,8 @@ public class Attributes {
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, maxMana);
data.set(namespacedKey.mana, PersistentDataType.INTEGER, mana);
data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, itemMana);
data.set(namespacedKey.luck, PersistentDataType.INTEGER, luck);
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, itemLuck);
}
public void removeSpeed(Player player, int i) {
@ -76,8 +80,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) -i);
}
public void removeLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) -i);
}
public void removeItemSpeed(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
@ -99,7 +105,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, data.get(namespacedKey.itemMana, PersistentDataType.INTEGER) -i);
}
public void removeItemLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) -i);
}
public void addSpeed(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
@ -129,6 +138,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER) +i);
}
public void addLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.luck, PersistentDataType.INTEGER, data.get(namespacedKey.luck, PersistentDataType.INTEGER) +i);
}
public void addItemSpeed(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
@ -150,6 +163,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemMana, PersistentDataType.INTEGER, data.get(namespacedKey.itemMana, PersistentDataType.INTEGER) +i);
}
public void addItemLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER) +i);
}
public Integer getSpeed(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
@ -179,6 +196,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.maxHealth, PersistentDataType.INTEGER);
}
public Integer getLuck(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.luck, PersistentDataType.INTEGER);
}
public Integer getItemSpeed(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
@ -200,6 +221,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.itemMana, PersistentDataType.INTEGER);
}
public Integer getItemLuck(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.itemLuck, PersistentDataType.INTEGER);
}
public void setHealth(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
@ -229,6 +254,10 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, i);
}
public void setLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.luck, PersistentDataType.INTEGER, i);
}
public void setItemHealth(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
@ -250,4 +279,8 @@ public class Attributes {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.mana, PersistentDataType.INTEGER, i);
}
public void setItemLuck(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemLuck, PersistentDataType.INTEGER, i);
}
}

View file

@ -45,8 +45,8 @@ public class RaxenPlayer {
public Attribute createNewAttribute() {
debug(main, "Created new Attribute");
attributes.setAttributes(player, 100, 100,0,50,0,100,0,100,0, 100, 100, 0);
return new Attribute(100,100,0,50,0,100,0,100,0, 100, 100, 0);
attributes.setAttributes(player, 100, 100,0,50,0,100,0,100,0, 100, 100, 0, 10, 0);
return new Attribute(100,100,0,50,0,100,0,100,0, 100, 100, 0, 10, 0);
}
public void setStorages(org.bukkit.inventory.Inventory inv, org.bukkit.inventory.Inventory ec) {

View file

@ -68,6 +68,8 @@ public class PlayerConfig {
.append("maxMana", attributes.getMaxMana(player))
.append("mana", attributes.getMana(player))
.append("itemMana", attributes.getItemMana(player))
.append("luck", attributes.getLuck(player))
.append("itemLuck", attributes.getItemLuck(player))
.append("inv", invstr);
if (playerManager.getRaxenPlayer(player).getStorage() != null) {
if(playerManager.getRaxenPlayer(player).getStorage().getEc() != null) {
@ -111,6 +113,8 @@ public class PlayerConfig {
config.set("maxMana", attributes.getMaxMana(player));
config.set("mana", attributes.getMana(player));
config.set("itemMana", attributes.getItemMana(player));
config.set("luck", attributes.getLuck(player));
config.set("itemLuck", attributes.getItemLuck(player));
config.set("inv", invstr);
if (playerManager.getRaxenPlayer(player).getStorage() != null) {
if(playerManager.getRaxenPlayer(player).getStorage().getEc() != null) {
@ -148,7 +152,8 @@ public class PlayerConfig {
attributes.setAttributes(player, playerDoc.getInteger("maxHealth"), playerDoc.getInteger("health"), playerDoc.getInteger("itemHealth"), playerDoc.getInteger("defense"),
playerDoc.getInteger("itemDefense"), playerDoc.getInteger("speed"), playerDoc.getInteger("itemSpeed"),
playerDoc.getInteger("strength"), playerDoc.getInteger("itemStrength"),
playerDoc.getInteger("maxMana"), playerDoc.getInteger("mana"), playerDoc.getInteger("itemMana"));
playerDoc.getInteger("maxMana"), playerDoc.getInteger("mana"), playerDoc.getInteger("itemMana"),
playerDoc.getInteger("luck"), playerDoc.getInteger("itemLuck"));
Inventory ec = Bukkit.createInventory(null, 54, Component.text("Ender Chest"));
if(playerDoc.getString("ec") != null) {
ec = setItemsToInventory(listItemStackDeserilize(playerDoc.getString("ec")), ec);
@ -171,7 +176,8 @@ public class PlayerConfig {
config.getInt("defense"), config.getInt("itemDefense"),
config.getInt("speed"), config.getInt("itemSpeed"),
config.getInt("strength"), config.getInt("itemStrength"),
config.getInt("maxMana"), config.getInt("mana"), config.getInt("itemMana"));
config.getInt("maxMana"), config.getInt("mana"), config.getInt("itemMana"),
config.getInt("luck"), config.getInt("itemLuck"));
Inventory ec = Bukkit.createInventory(null, 54, Component.text("Ender Chest"));
if((String) config.get("ec") != null) {
ec = setItemsToInventory(listItemStackDeserilize((String) config.get("ec")), ec);
@ -200,7 +206,10 @@ public class PlayerConfig {
listInv.add(s);
}
}
String invstr = Items.listItemStackSerelize(listInv);
String invstr= "";
if (listInv.size() > 0) {
invstr = Items.listItemStackSerelize(listInv);
}
debug(main, "saving...");
String storage = sto.getConfig().getString("storage");
saveUsingMongoDB(player, attributes, invstr, reverse);

View file

@ -1,7 +1,7 @@
package gq.unurled.raxen.listener.player;
import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
import de.tr7zw.changeme.nbtapi.NBTItem;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.Attributes.Attributes;
import org.bukkit.Material;

View file

@ -1,2 +1,37 @@
package gq.unurled.raxen.listener.player;public class ClickBlockEvent {
package gq.unurled.raxen.listener.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.lootchest.GUI;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
public class ClickBlockEvent implements Listener {
private Raxen main;
private GUI gui;
public ClickBlockEvent(Raxen main) {
this.main = main;
this.gui = new GUI(main);
}
@EventHandler
public void ClickEvent(PlayerInteractEvent e) {
Player player = e.getPlayer();
Block block = e.getClickedBlock();
Action action = e.getAction();
if (action.isRightClick()) {
if (block.getType() == Material.CHEST) {
player.closeInventory();
Inventory inv = gui.addItems(player);
player.openInventory(inv);
}
}
}
}

View file

@ -1,6 +1,6 @@
package gq.unurled.raxen.listener.player;
import de.tr7zw.changeme.nbtapi.NBTItem;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.Attributes.Attributes;
import org.bukkit.Material;

View file

@ -26,6 +26,6 @@ public class LeaveEvent implements Listener {
Player player = e.getPlayer();
playerConfig.savePlayerConfig(player);
playerManager.getRaxenPlayer(player).isRaxenPlayer(false);
playerManager.unregisterActionBar(player);
playerManager.unRegisterActionBar(player);
}
}

View file

@ -1,6 +1,6 @@
package gq.unurled.raxen.manager;
import de.tr7zw.changeme.nbtapi.NBTItem;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.items.NBT;
import lombok.Getter;
@ -15,6 +15,7 @@ import org.bukkit.inventory.meta.ItemMeta;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
@ -25,7 +26,7 @@ public class ItemManager {
private final Raxen main;
@Getter
private List<ItemStack> list = new ArrayList<>();
private HashMap<String, ItemStack> list = new HashMap<>();
private NBT nbt = new NBT();
public ItemManager(Raxen main) {
@ -126,8 +127,9 @@ public class ItemManager {
nbti.setInteger(NBT.STRENGTH, file.getInt("strength"));
nbti.setString(NBT.ID, file.getString("customId"));
nbti.setString(NBT.CUSTOM_ABILITY, file.getString("custom_ability"));
nbti.setDouble(NBT.DROP_RATE, file.getDouble("drop_rate"));
it = nbti.getItem();
it = setLoreFromNBT(it);
list.add(it);
list.put(file.getString("customId"), it);
}
}

View file

@ -27,5 +27,6 @@ public class ListenerManager {
this.pm.registerEvents(main.getCommandManager().getItemListCommand().getItemListGui(), main);
this.pm.registerEvents(new DamageEntity(main), main);
this.pm.registerEvents(new SpawnEvent(main), main);
this.pm.registerEvents(new ClickBlockEvent(main), main);
}
}

View file

@ -1,2 +1,20 @@
package gq.unurled.raxen.manager;public class LootManager {
package gq.unurled.raxen.manager;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.lootchest.loots.LootItem;
import lombok.Getter;
import java.util.List;
public class LootManager {
private Raxen main;
@Getter
private List<LootItem> lootTable;
public LootManager(Raxen main) {
this.main = main;
}
}

View file

@ -40,11 +40,14 @@ public class PlayerManager {
}
}
public void unregisterActionBar(Player player) {
public void unRegisterActionBar(Player player) {
if(actionBar.containsKey(player.getUniqueId())) {
BukkitTask task = actionBar.get(player.getUniqueId());
task.cancel();
actionBar.remove(player.getUniqueId());
}
}
public void unEegisterRaxenPlayer(Player player) {
}
}

View file

@ -2,11 +2,12 @@ package gq.unurled.raxen.utils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import de.tr7zw.changeme.nbtapi.NBTItem;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.components.items.Attributes;
import gq.unurled.raxen.components.items.NBT;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.LivingEntity;
import org.bukkit.inventory.*;
@ -67,8 +68,9 @@ public class Items {
public static String itemStackSerilize(ItemStack it, Integer slot) {
Gson gson = new Gson();
//String str = gson.toJson(it.serialize());
String str = gson.toJson(it.serialize(), new TypeToken<Map>(){}.getType());
String str = gson.toJson(it.serialize());
net.minecraft.world.item.ItemStack itm = CraftItemStack.asNMSCopy(it);
//String str = gson.toJson(it.serialize(), new TypeToken<Map>(){}.getType());
NBTItem nbti = new NBTItem(it);
str = str + "@#NBT#" + nbti.toString();
str = str + "@#SLOT#" + slot.toString();
@ -216,6 +218,10 @@ public class Items {
nbti.setInteger(NBT.HEALTH, nb);
case "DEFENSE":
nbti.setInteger(NBT.DEFENSE, nb);
case "LUCK":
nbti.setInteger(NBT.LUCK, nb);
case "MANA":
nbti.setInteger(NBT.MANA, nb);
default:
error("Cant set Attributes with an unknown attribute.");
}
@ -250,6 +256,20 @@ public class Items {
}
return 0;
}
public static Integer getLuck(ItemStack it) {
NBTItem nbti = new NBTItem(it);
if (nbti.hasKey(NBT.LUCK)){
return nbti.getInteger(NBT.LUCK);
}
return 0;
}
public static Integer getMana(ItemStack it) {
NBTItem nbti = new NBTItem(it);
if (nbti.hasKey(NBT.MANA)){
return nbti.getInteger(NBT.MANA);
}
return 0;
}
public static ItemStack setLoreFromNBT(ItemStack it) {
ItemMeta itm = it.getItemMeta();
@ -286,6 +306,20 @@ public class Items {
lore.add(Component.text(color(attributes("STRENGTH")) + nbti.getInteger(NBT.STRENGTH)));
}
}
if(nbti.hasKey(NBT.MANA)) {
if(lore.size() > 3) {
lore.add(3, Component.text(color(attributes("MANA")) + nbti.getInteger(NBT.MANA)));
} else {
lore.add(Component.text(color(attributes("MANA")) + nbti.getInteger(NBT.MANA)));
}
}
if(nbti.hasKey(NBT.LUCK)) {
if(lore.size() > 3) {
lore.add(3, Component.text(color(attributes("LUCK")) + nbti.getInteger(NBT.LUCK)));
} else {
lore.add(Component.text(color(attributes("LUCK")) + nbti.getInteger(NBT.LUCK)));
}
}
itm.lore(lore);
it.setItemMeta(itm);
return it;
@ -297,6 +331,8 @@ public class Items {
Integer defense = 0;
Integer speed = 0;
Integer strength = 0;
Integer mana = 0;
Integer luck = 0;
if (equi != null) {
if (equi.getItemInMainHand().getType() != Material.AIR && equi.getHelmet() != null) {
ItemStack item = equi.getItemInMainHand();
@ -304,6 +340,8 @@ public class Items {
defense = defense + getDefense(item);
speed = speed + getSpeed(item);
strength = strength + getStrength(item);
mana = mana + getMana(item);
luck = luck + getLuck(item);
}
if (equi.getHelmet().getType() != Material.AIR && equi.getHelmet() != null) {
ItemStack item = equi.getHelmet();
@ -311,6 +349,8 @@ public class Items {
defense = defense + getDefense(item);
speed = speed + getSpeed(item);
strength = strength + getStrength(item);
mana = mana + getMana(item);
luck = luck + getLuck(item);
}
if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) {
ItemStack item = equi.getChestplate();
@ -318,6 +358,8 @@ public class Items {
defense = defense + getDefense(item);
speed = speed + getSpeed(item);
strength = strength + getStrength(item);
mana = mana + getMana(item);
luck = luck + getLuck(item);
}
if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) {
ItemStack item = equi.getChestplate();
@ -325,6 +367,8 @@ public class Items {
defense = defense + getDefense(item);
speed = speed + getSpeed(item);
strength = strength + getStrength(item);
mana = mana + getMana(item);
luck = luck + getLuck(item);
}
if (equi.getLeggings().getType() != Material.AIR && equi.getLeggings() != null) {
ItemStack item = equi.getLeggings();
@ -332,6 +376,8 @@ public class Items {
defense = defense + getDefense(item);
speed = speed + getSpeed(item);
strength = strength + getStrength(item);
mana = mana + getMana(item);
luck = luck + getLuck(item);
}
if (equi.getBoots().getType() != Material.AIR && equi.getBoots() != null) {
ItemStack item = equi.getBoots();
@ -339,9 +385,11 @@ public class Items {
defense = defense + getDefense(item);
speed = speed + getSpeed(item);
strength = strength + getStrength(item);
mana = mana + getMana(item);
luck = luck + getLuck(item);
}
}
Attributes attributes = new Attributes(health, defense, speed, strength);
Attributes attributes = new Attributes(health, defense, speed, strength, mana, luck);
return attributes;
}

View file

@ -17,12 +17,15 @@ public class MongoDB {
private MongoDatabase mongoDatabase;
@Getter
private MongoCollection<Document> mongoCollection;
@Getter
private MongoCollection<Document> mongoConfigs;
public void connect() {
ConnectionString connectionString = new ConnectionString("mongodb://localhost:27017");
mongoClient = MongoClients.create(connectionString);
mongoDatabase = mongoClient.getDatabase("Raxen");
mongoCollection = mongoDatabase.getCollection("player");
mongoConfigs = mongoDatabase.getCollection("config");
Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "MongoDB connected!");
}

View file

@ -1,4 +1,7 @@
package gq.unurled.raxen.utils;
import com.fastasyncworldedit.core.FaweAPI;
public class WorldEdit {
}