remade attribute system, made everything work
This commit is contained in:
unurled 2022-04-05 18:07:37 +02:00
parent df35233794
commit ce3c1d547c
69 changed files with 1109 additions and 1052 deletions

2
.gitignore vendored
View file

@ -6,10 +6,10 @@
.classpath
.project
api/
libs/
*.iml
.gradle/
gradle.properties
*.lock

View file

@ -78,7 +78,7 @@ dependencies {
}
group = 'gq.unurled'
version = '0.4.8'
version = '0.4.9'
description = 'Raxen'
java.sourceCompatibility = JavaVersion.VERSION_17

View file

@ -1,5 +1,7 @@
- [ ] refactor all abilities to make them compatible between entities and also making it easier to add them.
- [x] refactor all abilities to make them compatible between entities and also making it easier to add them.
- [ ] make custom items (hard coded)
- [ ] make custom class (hard coded)
- [ ] make custom abilities (hard coded)
- [ ] make custom mods (hard coded)
- [ ] make custom mods (hard coded)
- [ ] make gates
- [ ] a map

View file

@ -19,7 +19,7 @@ public final class Raxen extends JavaPlugin {
private static final String prefix = "<aqua>Rx</aqua><light_purple>></light_purple> ";
@Getter
private static String version = "0.4.8";
private static String version = "0.4.9";
private final PluginManager pm = getServer().getPluginManager();
private static Raxen plugin;

View file

@ -2,13 +2,15 @@ package gq.unurled.raxen.commands.admin;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.attributes.Attributes;
import gq.unurled.raxen.components.entity.player.attributes.Attributes;
import gq.unurled.raxen.manager.entity.PlayerManager;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
@ -18,7 +20,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
import static gq.unurled.raxen.components.player.PlayerUtils.updateSkills;
import static gq.unurled.raxen.components.entity.player.PlayerUtils.updateSkills;
import static gq.unurled.raxen.utils.Items.attributes;
import static gq.unurled.raxen.utils.Utils.*;
@ -75,19 +77,22 @@ public class NbtCommand implements TabExecutor {
}
itm.lore(lore);
it.setItemMeta(itm);
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
Entity e = player;
Attributes attributes = new Attributes(main);
nbti.setInteger(args[0], Integer.parseInt(args[1]) + a);
if (nbti.hasKey("SPEED")) {
attributes.addSpeed(player, nbti.getInteger("SPEED"));
pm.getSpeed().add(e, nbti.getInteger("SPEED"));
}
if (nbti.hasKey("HEALTH")) {
attributes.addHealth(player, nbti.getInteger("HEALTH"));
pm.getHealth().add(e, nbti.getInteger("HEALTH"));
}
if (nbti.hasKey("DEFENSE")) {
attributes.addDefense(player, nbti.getInteger("DEFENSE"));
pm.getDefense().add(e, nbti.getInteger("DEFENSE"));
}
if (nbti.hasKey("STRENGTH")) {
attributes.addStrength(player, nbti.getInteger("STRENGTH"));
pm.getStrength().add(e, nbti.getInteger("STRENGTH"));
}
it = nbti.getItem();
msgPlayer(player, colorTextComp(Raxen.getPrefix() + "<white>You successfully added the nbt " + attributes(args[0]) + "<white>with " + args[1] + "<white>."));

View file

@ -1,7 +1,7 @@
package gq.unurled.raxen.commands.admin;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.EntityNamespacedKey;
import gq.unurled.raxen.components.entity.other.EntityNamespacedKey;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
@ -14,7 +14,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
import static gq.unurled.raxen.components.entity.EntityUtils.setNameSpacedKeys;
import static gq.unurled.raxen.components.entity.other.EntityUtils.setNameSpacedKeys;
import static gq.unurled.raxen.utils.Utils.*;
public class SpawnEntity implements TabExecutor {

View file

@ -1,8 +1,9 @@
package gq.unurled.raxen.commands.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.PlayerUtils;
import gq.unurled.raxen.components.player.attributes.Attributes;
import gq.unurled.raxen.components.entity.player.PlayerUtils;
import gq.unurled.raxen.components.entity.player.attributes.Attributes;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@ -13,7 +14,8 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
import static gq.unurled.raxen.utils.Utils.*;
import static gq.unurled.raxen.utils.Utils.colorTextComp;
import static gq.unurled.raxen.utils.Utils.error;
public class SkillsCommand implements TabExecutor {
@ -42,65 +44,17 @@ public class SkillsCommand implements TabExecutor {
.append(colorTextComp("<white>/skill <dark_aqua>{health|defense|speed|strength} {add|set|remove} {amount}")));
break;
case 3:
switch (args[0]) {
case "health":
if(args[1].equalsIgnoreCase("add")) {
attributes.setHealth(player, attributes.getHealth(player) + Integer.parseInt(args[2]));
msgPlayer(player,"You were added " + args[2] + " health more!");
}
if(args[1].equalsIgnoreCase("set")) {
attributes.setHealth(player, Integer.parseInt(args[2]));
msgPlayer(player,"You are set " + args[2] + " health!");
}
if(args[1].equalsIgnoreCase("remove")) {
attributes.setHealth(player ,attributes.getHealth(player) - Integer.parseInt(args[2]));
msgPlayer(player,"You were removeded " + args[2] + " health less!");
}
break;
case "defense":
if(args[1].equalsIgnoreCase("add")) {
attributes.setDefense(player, attributes.getDefense(player) + Integer.parseInt(args[2]));
msgPlayer(player,"You were added " + args[2] + " defense more!");
}
if(args[1].equalsIgnoreCase("set")) {
attributes.setDefense(player, Integer.parseInt(args[2]));
msgPlayer(player,"You are set " + args[2] + " defense!");
}
if(args[1].equalsIgnoreCase("remove")) {
attributes.setDefense(player, attributes.getDefense(player) - Integer.parseInt(args[2]));
msgPlayer(player,"You were removed " + args[2] + " defense less!");
}
break;
case "speed":
if(args[1].equalsIgnoreCase("add")) {
attributes.setSpeed(player, attributes.getSpeed(player) + Integer.parseInt(args[2]));
msgPlayer(player,"You were added " + args[2] + " speed more!");
}
if(args[1].equalsIgnoreCase("set")) {
attributes.setSpeed(player, Integer.parseInt(args[2]));
msgPlayer(player,"You are set " + args[2] + " speed!");
}
if(args[1].equalsIgnoreCase("remove")) {
attributes.setSpeed(player, attributes.getSpeed(player) - Integer.parseInt(args[2]));
msgPlayer(player,"You were removed " + args[2] + " speed less!");
}
break;
case "stregnth":
if(args[1].equalsIgnoreCase("add")) {
attributes.setStrength(player, attributes.getStrength(player) + Integer.parseInt(args[2]));
msgPlayer(player,"You were added " + args[2] + " strength more!");
}
if(args[1].equalsIgnoreCase("set")) {
attributes.setStrength(player, Integer.parseInt(args[2]));
msgPlayer(player,"You are set " + args[2] + " strength!");
}
if(args[1].equalsIgnoreCase("remove")) {
attributes.setStrength(player, attributes.getStrength(player) - Integer.parseInt(args[2]));
msgPlayer(player,"You were removed " + args[2] + " strength less!");
}
break;
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
for (String s : pm.getAttribute().keySet()) {
if (s.equalsIgnoreCase(args[0]))
switch (args[1]) {
case "add":
pm.getAttribute().get(s).add(player, Integer.parseInt(args[2]));
case "remove":
pm.getAttribute().get(s).remove(player, Integer.parseInt(args[2]));
case "set":
pm.getAttribute().get(s).set(player, Integer.parseInt(args[2]));
}
}
PlayerUtils.updateSkills(main, player);
}

View file

@ -1,272 +0,0 @@
package gq.unurled.raxen.components.entity;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.attributes.Attribute;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
public class Attributes {
private static EntityNamespacedKey namespacedKey;
public Attributes(Raxen main) {
namespacedKey = new EntityNamespacedKey(main);
}
public static Attribute getAttribute(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
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);
defense = data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER);
itemDefense = data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER);
speed = data.get(namespacedKey.speedKey, PersistentDataType.INTEGER);
itemSpeed = data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER);
strength = data.get(namespacedKey.strengthKey , PersistentDataType.INTEGER);
itemDmg = data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER);
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, 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, int luck, int itemLuck) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health);
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, itemHealth);
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, defense);
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, itemDefense);
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, speed);
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, itemSpeed);
data.set(namespacedKey.strengthKey , PersistentDataType.INTEGER, strength);
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, itemDmg);
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) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) -i);
}
public void removeHealth(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) -i);
}
public void removeDefense(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) -i);
}
public void removeStrength(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) -i);
}
public void removeMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) -i);
}
public void removeMaxMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) -i);
}
public void removeMaxHealth(Player player, int i) {
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();
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) -i);
}
public void removeItemHealth(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) -i);
}
public void removeItemDefense(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER) -i);
}
public void removeItemStrength(Entity e, int i) {
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();
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) +i);
}
public void addHealth(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) +i);
}
public void addDefense(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i);
}
public void addStrength(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) +i);
}
public void addMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) +i);
}
public void addMaxMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) +i);
}
public void addMaxHealth(Player player, int i) {
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();
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) +i);
}
public void addItemHealth(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) +i);
}
public void addItemDefense(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i);
}
public void addItemStrength(Entity e, int i) {
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();
return data.get(namespacedKey.speedKey, PersistentDataType.INTEGER);
}
public Integer getStrength(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
return data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER);
}
public Integer getHealth(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
return data.get(namespacedKey.healthKey, PersistentDataType.INTEGER);
}
public Integer getDefense(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
return data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER);
}
public Integer getMana(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.mana, PersistentDataType.INTEGER);
}
public Integer getMaxMana(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.maxMana, PersistentDataType.INTEGER);
}
public Integer getMaxHealth(Player player) {
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();
return data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER);
}
public Integer getItemStrength(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
return data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER);
}
public Integer getItemHealth(Entity e) {
PersistentDataContainer data = e.getPersistentDataContainer();
return data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER);
}
public Integer getItemDefense(Entity e) {
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();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, i);
}
public void setDefense(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, i);
}
public void setSpeed(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, i);
}
public void setStrength(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, i);
}
public void setMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.mana, PersistentDataType.INTEGER, i);
}
public void setMaxMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, i);
}
public void setMaxHealth(Player player, int i) {
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();
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, i);
}
public void setItemDefense(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, i);
}
public void setItemSpeed(Entity e, int i) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, i);
}
public void setItemStrength(Entity e, int i) {
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

@ -0,0 +1,126 @@
package gq.unurled.raxen.components.entity.Attributes;
import de.tr7zw.nbtapi.NBTItem;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull;
import static gq.unurled.raxen.utils.Utils.debug;
public class Attribute {
/**
* The NamespaceKey register for the PersistentDataContainer.
* static NamespacedKey namespacekey = namespacedKey.TYPE;
*/
public NamespacedKey namespacekey;
/**
* The name of the attribute
* static String name = "null";
*/
public String name;
public Attribute(NamespacedKey namespacekey, String name) {
this.namespacekey = namespacekey;
this.name = name;
}
/**
* get how many the Entity has Attributed
* @param entity a living entity
* @return the amount of attribute
*/
public Integer get(@NotNull Entity entity) {
if (entity.getPersistentDataContainer().has(namespacekey, PersistentDataType.INTEGER)) {
debug(" attribute gett" + entity.getPersistentDataContainer().get(namespacekey, PersistentDataType.INTEGER));
return entity.getPersistentDataContainer().get(namespacekey, PersistentDataType.INTEGER);
}
debug(name + " not found in Entity: " + entity.getType().toString() + " " + entity.getName() + " " + entity.getUniqueId().toString());
set(entity, 0);
return 0;
}
/**
* get how many the Entity has Attributed
* @param it an ItemStack
* @return the amount of attribute
*/
public Integer get(@NotNull ItemStack it) {
NBTItem nbti = new NBTItem(it);
if (nbti.hasKey(name)){
return nbti.getInteger(name);
}
return 0;
}
/**
* Get the amount of attribute on the item
* @param e a LivingEntity
* @return an amount of attribute on the item
*/
public Integer getItem(@NotNull LivingEntity e) {
EntityEquipment equi = e.getEquipment();
Integer attribute = 0;
if (equi != null) {
if (equi.getItemInMainHand().getType() != Material.AIR && equi.getHelmet() != null) {
ItemStack item = equi.getItemInMainHand();
attribute = attribute + get(item);
}
if (equi.getHelmet().getType() != Material.AIR && equi.getHelmet() != null) {
ItemStack item = equi.getHelmet();
attribute = attribute + get(item);
}
if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) {
ItemStack item = equi.getChestplate();
attribute = attribute + get(item);
}
if (equi.getChestplate().getType() != Material.AIR && equi.getChestplate() != null) {
ItemStack item = equi.getChestplate();
attribute = attribute + get(item);
}
if (equi.getLeggings().getType() != Material.AIR && equi.getLeggings() != null) {
ItemStack item = equi.getLeggings();
attribute = attribute + get(item);
}
if (equi.getBoots().getType() != Material.AIR && equi.getBoots() != null) {
ItemStack item = equi.getBoots();
attribute = attribute + get(item);
}
}
return attribute;
}
/**
* set amount to the entity's attribute
* @param entity a living entity
* @param amount the amount you want to set
*/
public void set(@NotNull Entity entity, @NotNull Integer amount) {
entity.getPersistentDataContainer().set(namespacekey, PersistentDataType.INTEGER, amount);
debug("set " + name + " " + amount);
}
/**
* add amount to the entity's attribute
* @param entity a living entity
* @param amount the amount you want to set
*/
public void add(@NotNull Entity entity, @NotNull Integer amount) {
set(entity, get(entity) + amount);
}
/**
* remove amount to the entity's attribute
* @param entity a living entity
* @param amount the amount you want to set
*/
public void remove(@NotNull Entity entity, @NotNull Integer amount) {
set(entity, get(entity) - amount);
}
}

View file

@ -0,0 +1,11 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class Defense extends Attribute {
public Defense(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,11 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class Health extends Attribute {
public Health(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class ItemDefense extends Attribute {
public ItemDefense(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class ItemHealth extends Attribute {
public ItemHealth(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class ItemLuck extends Attribute {
public ItemLuck(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class ItemMana extends Attribute {
public ItemMana(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class ItemSpeed extends Attribute {
public ItemSpeed(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class ItemStrength extends Attribute {
public ItemStrength(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,11 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class Luck extends Attribute {
public Luck(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,11 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class Mana extends Attribute {
public Mana(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class MaxHealth extends Attribute {
public MaxHealth(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class MaxMana extends Attribute {
public MaxMana(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,22 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class MaxManaBuilder {
private NamespacedKey namespacekey;
private String name;
public MaxManaBuilder setNamespacekey(NamespacedKey namespacekey) {
this.namespacekey = namespacekey;
return this;
}
public MaxManaBuilder setName(String name) {
this.name = name;
return this;
}
public MaxMana createMaxMana() {
return new MaxMana(namespacekey, name);
}
}

View file

@ -0,0 +1,10 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class Speed extends Attribute {
public Speed(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -0,0 +1,11 @@
package gq.unurled.raxen.components.entity.Attributes;
import org.bukkit.NamespacedKey;
public class Strength extends Attribute {
public Strength(NamespacedKey namespacekey, String name) {
super(namespacekey, name);
}
}

View file

@ -1,49 +0,0 @@
package gq.unurled.raxen.components.entity;
import gq.unurled.raxen.Raxen;
import org.bukkit.NamespacedKey;
public class EntityNamespacedKey {
public EntityNamespacedKey(Raxen main) {
nameKey = new NamespacedKey(main, "name");
levelKey = new NamespacedKey(main, "level");
maxHealth = new NamespacedKey(main, "maxHealth");
healthKey = new NamespacedKey(main, "health");
itemHealthKey = new NamespacedKey(main, "itemHealth");
speedKey = new NamespacedKey(main, "speed");
itemSpeedKey = new NamespacedKey(main, "itemSpeedKey");
defenseKey = new NamespacedKey(main, "defense");
itemDefenseKey = new NamespacedKey(main, "itemDefense");
strengthKey = new NamespacedKey(main, "strength");
itemStrengthKey = new NamespacedKey(main, "itemStrength");
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");
}
public final NamespacedKey nameKey;
public final NamespacedKey levelKey;
public final NamespacedKey maxHealth;
public final NamespacedKey healthKey;
public final NamespacedKey itemHealthKey;
public final NamespacedKey speedKey;
public final NamespacedKey itemSpeedKey;
public final NamespacedKey defenseKey;
public final NamespacedKey itemDefenseKey;
public final NamespacedKey strengthKey;
public final NamespacedKey itemStrengthKey;
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

@ -1,57 +0,0 @@
package gq.unurled.raxen.components.entity;
import gq.unurled.raxen.Raxen;
import org.bukkit.entity.LivingEntity;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull;
import static gq.unurled.raxen.utils.Utils.debug;
public class EntityUtils {
private static Raxen main;
private static EntityNamespacedKey namespacedKey;
public EntityUtils(Raxen main) {
this.main = main;
namespacedKey = new EntityNamespacedKey(main);
}
public static void setNameSpacedKeys(org.bukkit.entity.@NotNull Entity e, String name, Integer level, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health);
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, itemHealth);
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, speed);
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, itemSpeed);
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, defense);
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, itemDefense);
data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, strength);
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, itemDmg);
data.set(namespacedKey.nameKey, PersistentDataType.STRING, name);
data.set(namespacedKey.levelKey, PersistentDataType.INTEGER, level);
}
public static void updateSkills(@NotNull LivingEntity livingEntity) {
Attributes attributes = new Attributes(main);
int health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg;
org.bukkit.entity.Entity e = livingEntity;
health = attributes.getHealth(e);
itemHealth = attributes.getItemHealth(e);
defense = attributes.getDefense(e);
itemDefense = attributes.getItemDefense(e);
speed = attributes.getSpeed(e);
itemSpeed = attributes.getItemSpeed(e);
strength = attributes.getStrength(e);
itemDmg = attributes.getItemStrength(e);
if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED) != null) {
livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
}
if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED) != null) {
livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
}
livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100);
debug(main, "Speed " + (speed + itemSpeed), "Health " + (health + itemHealth), "Defense " + (defense+itemDefense), "Strength " + (strength+itemDmg));
}
}

View file

@ -0,0 +1,49 @@
package gq.unurled.raxen.components.entity.other;
import gq.unurled.raxen.Raxen;
import org.bukkit.NamespacedKey;
public class EntityNamespacedKey {
public EntityNamespacedKey(Raxen main) {
name = new NamespacedKey(main, "NAME");
level = new NamespacedKey(main, "LEVEL");
maxHealth = new NamespacedKey(main, "MAX_HEALTH");
health = new NamespacedKey(main, "HEALTH");
itemHealth = new NamespacedKey(main, "ITEM_HEALTH");
speed = new NamespacedKey(main, "SPEED");
itemSpeed = new NamespacedKey(main, "ITEM_SPEED");
defense = new NamespacedKey(main, "DEFENSE");
itemDefense = new NamespacedKey(main, "ITEM_DEFENSE");
strength = new NamespacedKey(main, "STRENGTH");
itemStrength = new NamespacedKey(main, "ITEM_STRENGTH");
maxMana = new NamespacedKey(main, "MAX_MANA");
mana = new NamespacedKey(main, "MANA");
itemMana = new NamespacedKey(main, "ITEM_MANA");
luck = new NamespacedKey(main, "LUCK");
itemLuck = new NamespacedKey(main, "ITEM_LUCK");
inventory = new NamespacedKey(main, "INVENTORY");
storage = new NamespacedKey(main, "STORAGE");
}
public final NamespacedKey name;
public final NamespacedKey level;
public final NamespacedKey maxHealth;
public final NamespacedKey health;
public final NamespacedKey itemHealth;
public final NamespacedKey speed;
public final NamespacedKey itemSpeed;
public final NamespacedKey defense;
public final NamespacedKey itemDefense;
public final NamespacedKey strength;
public final NamespacedKey itemStrength;
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

@ -0,0 +1,70 @@
package gq.unurled.raxen.components.entity.other;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.LivingEntity;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull;
import static gq.unurled.raxen.utils.Utils.debug;
public class EntityUtils {
private static Raxen main;
private static EntityNamespacedKey namespacedKey;
public EntityUtils(Raxen main) {
this.main = main;
namespacedKey = new EntityNamespacedKey(main);
}
public static void setNameSpacedKeys(org.bukkit.entity.@NotNull Entity e, String name, Integer level, int health, int itemHealth, int defense, int itemDefense, int speed, int itemSpeed, int strength, int itemDmg) {
PersistentDataContainer data = e.getPersistentDataContainer();
data.set(namespacedKey.health, PersistentDataType.INTEGER, health);
data.set(namespacedKey.itemHealth, PersistentDataType.INTEGER, itemHealth);
data.set(namespacedKey.speed, PersistentDataType.INTEGER, speed);
data.set(namespacedKey.itemSpeed, PersistentDataType.INTEGER, itemSpeed);
data.set(namespacedKey.defense, PersistentDataType.INTEGER, defense);
data.set(namespacedKey.itemDefense, PersistentDataType.INTEGER, itemDefense);
data.set(namespacedKey.strength, PersistentDataType.INTEGER, strength);
data.set(namespacedKey.itemStrength, PersistentDataType.INTEGER, itemDmg);
data.set(namespacedKey.name, PersistentDataType.STRING, name);
data.set(namespacedKey.level, PersistentDataType.INTEGER, level);
}
public static void updateSkills(@NotNull LivingEntity livingEntity) {
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck;
defense= pm.getDefense().get(livingEntity);
maxMana = pm.getMaxMana().get(livingEntity);
itemDefense= pm.getItemDefense().get(livingEntity);
health = pm.getHealth().get(livingEntity);
itemHealth = pm.getItemHealth().get(livingEntity);
mana = pm.getMana().get(livingEntity);
speed = pm.getSpeed().get(livingEntity);
itemLuck = pm.getItemLuck().get(livingEntity);
strength = pm.getStrength().get(livingEntity);
luck = pm.getLuck().get(livingEntity);
maxHealth = pm.getMaxHealth().get(livingEntity);
itemStrength = pm.getItemStrength().get(livingEntity);
itemSpeed = pm.getItemSpeed().get(livingEntity);
itemMana = pm.getItemMana().get(livingEntity);
if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED) != null) {
livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
}
if (livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED) != null) {
livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
}
livingEntity.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100);
debug("Entity " + livingEntity.getType().name(),
"Speed " + (speed + itemSpeed),
"Health " + (health + itemHealth) + " Max Health " + maxHealth,
"Defense " + (defense+itemDefense),
"Strength " + (strength+itemStrength),
"Luck " + (luck+itemLuck),
"Mana " + (mana + itemMana) + " Max Mana " + maxMana);
}
}

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.entity;
package gq.unurled.raxen.components.entity.other;
import gq.unurled.raxen.Raxen;
import lombok.Getter;

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.entity.custom;
package gq.unurled.raxen.components.entity.other.custom;
import gq.unurled.raxen.Raxen;
import lombok.Getter;

View file

@ -1,8 +1,8 @@
package gq.unurled.raxen.components.entity.custom.hostile.low;
package gq.unurled.raxen.components.entity.other.custom.hostile.low;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.RaxenEntity;
import gq.unurled.raxen.components.entity.custom.Entity;
import gq.unurled.raxen.components.entity.other.RaxenEntity;
import gq.unurled.raxen.components.entity.other.custom.Entity;
public class Goblin extends Entity {

View file

@ -0,0 +1,4 @@
package gq.unurled.raxen.components.entity.other.spawn;
public class Eggs {
}

View file

@ -1,6 +1,6 @@
package gq.unurled.raxen.components.player;
package gq.unurled.raxen.components.entity.player;
import gq.unurled.raxen.components.player.storages.Inventory;
import gq.unurled.raxen.components.entity.player.storages.Inventory;
public class Inventories {
private Inventory inv;

View file

@ -0,0 +1,42 @@
package gq.unurled.raxen.components.entity.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.Player;
import static gq.unurled.raxen.utils.Utils.debug;
public class PlayerUtils {
public static void updateSkills(Raxen main, Player player) {
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck;
defense= pm.getDefense().get(player);
maxMana = pm.getMaxMana().get(player);
itemDefense= pm.getItemDefense().get(player);
health = pm.getHealth().get(player);
itemHealth = pm.getItemHealth().get(player);
mana = pm.getMana().get(player);
speed = pm.getSpeed().get(player);
itemLuck = pm.getItemLuck().get(player);
strength = pm.getStrength().get(player);
luck = pm.getLuck().get(player);
maxHealth = pm.getMaxHealth().get(player);
itemStrength = pm.getItemStrength().get(player);
itemSpeed = pm.getItemSpeed().get(player);
itemMana = pm.getItemMana().get(player);
player.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100);
player.setWalkSpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
player.setFlySpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
debug("Player " + player.getName(),
"Speed " + (speed + itemSpeed),
"Health " + (health + itemHealth) + " Max Health " + maxHealth,
"Defense " + (defense+itemDefense),
"Strength " + (strength+itemStrength),
"Luck " + (luck+itemLuck),
"Mana " + (mana + itemMana) + " Max Mana " + maxMana);
}
}

View file

@ -1,11 +1,11 @@
package gq.unurled.raxen.components.player;
package gq.unurled.raxen.components.entity.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.EntityNamespacedKey;
import gq.unurled.raxen.components.player.attributes.Attribute;
import gq.unurled.raxen.components.player.attributes.Attributes;
import gq.unurled.raxen.components.player.storages.EnderChest;
import gq.unurled.raxen.components.player.storages.Inventory;
import gq.unurled.raxen.components.entity.other.EntityNamespacedKey;
import gq.unurled.raxen.components.entity.player.attributes.Attribute;
import gq.unurled.raxen.components.entity.player.storages.EnderChest;
import gq.unurled.raxen.components.entity.player.storages.Inventory;
import gq.unurled.raxen.utils.EntityAttributes;
import gq.unurled.raxen.utils.Items;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
@ -27,7 +27,6 @@ public class RaxenPlayer {
private final Raxen main;
private final Player player;
private final EntityNamespacedKey namespacedKey;
private final Attributes attributes;
private Boolean isRaxenPlayer;
@ -41,12 +40,11 @@ public class RaxenPlayer {
this.player = player;
this.namespacedKey = new EntityNamespacedKey(main);
this.isRaxenPlayer = true;
this.attributes = new Attributes(main);
}
public Attribute createNewAttribute() {
debug(main, "Created new Attribute");
attributes.setAttributes(player, 100, 100,0,50,0,100,0,100,0, 100, 100, 0, 10, 0);
EntityAttributes.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);
}
@ -70,7 +68,7 @@ public class RaxenPlayer {
String inv = data.get(namespacedKey.inventory, PersistentDataType.STRING);
org.bukkit.inventory.Inventory invv = Bukkit.createInventory(player, InventoryType.PLAYER);
invv = setItemsToInventory(Items.listItemStackDeserilize(inv), invv);
gq.unurled.raxen.components.player.storages.Inventory invvv = new gq.unurled.raxen.components.player.storages.Inventory(invv);
Inventory invvv = new Inventory(invv);
Inventories invvvv = new Inventories(invvv);
return invvvv;
}
@ -128,8 +126,4 @@ public class RaxenPlayer {
public Attribute getAttribute() {
return attribute;
}
public Attributes getAttributes() {
return attributes;
}
}

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.player;
package gq.unurled.raxen.components.entity.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.utils.libs.Vault;

View file

@ -1,6 +1,6 @@
package gq.unurled.raxen.components.player;
package gq.unurled.raxen.components.entity.player;
import gq.unurled.raxen.components.player.storages.EnderChest;
import gq.unurled.raxen.components.entity.player.storages.EnderChest;
public class Storage {

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.player.attributes;
package gq.unurled.raxen.components.entity.player.attributes;
import lombok.Getter;
import lombok.Setter;

View file

@ -0,0 +1,57 @@
package gq.unurled.raxen.components.entity.player.attributes;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.other.EntityNamespacedKey;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
public class Attributes {
private static EntityNamespacedKey namespacedKey;
public Attributes(Raxen main) {
namespacedKey = new EntityNamespacedKey(main);
}
public static Attribute getAttribute(Player player) {
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck;
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
Entity e = player;
defense= pm.getDefense().get(e);
maxMana = pm.getMaxMana().get(e);
itemDefense= pm.getItemDefense().get(e);
health = pm.getHealth().get(e);
itemHealth = pm.getItemHealth().get(e);
mana = pm.getMana().get(e);
speed = pm.getSpeed().get(e);
itemLuck = pm.getItemLuck().get(e);
strength = pm.getStrength().get(e);
luck = pm.getLuck().get(e);
maxHealth = pm.getMaxHealth().get(e);
itemStrength = pm.getItemStrength().get(e);
itemSpeed = pm.getItemSpeed().get(e);
itemMana = pm.getItemMana().get(e);
return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, 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 itemStrength, int maxMana, int mana, int itemMana, int luck, int itemLuck) {
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
Entity e = player;
pm.getDefense().set(e, defense);
pm.getMaxMana().set(e, maxMana);
pm.getItemDefense().set(e, itemDefense);
pm.getHealth().set(e, health);
pm.getItemHealth().set(e, itemHealth);
pm.getMana().set(e, mana);
pm.getSpeed().set(e, speed);
pm.getItemLuck().set(e, itemLuck);
pm.getStrength().set(e, strength);
pm.getLuck().set(e, luck);
pm.getMaxHealth().set(e, maxHealth);
pm.getItemStrength().set(e, itemStrength);
pm.getItemSpeed().set(e, itemSpeed);
pm.getItemMana().set(e, itemMana);
}
}

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.player.classes;
package gq.unurled.raxen.components.entity.player.classes;
import lombok.Getter;
import org.bukkit.Material;

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.player.classes;
package gq.unurled.raxen.components.entity.player.classes;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.manager.entity.PlayerManager;

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.player.classes.list;
package gq.unurled.raxen.components.entity.player.classes.list;
import gq.unurled.raxen.components.items.custom.weapon.Dager;
import org.bukkit.inventory.ItemStack;

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.player.storages;
package gq.unurled.raxen.components.entity.player.storages;
import lombok.Getter;
import lombok.Setter;

View file

@ -1,4 +1,4 @@
package gq.unurled.raxen.components.player.storages;
package gq.unurled.raxen.components.entity.player.storages;
import lombok.Getter;
import lombok.Setter;

View file

@ -1,4 +0,0 @@
package gq.unurled.raxen.components.entity.spawn;
public class Eggs {
}

View file

@ -1,7 +1,7 @@
package gq.unurled.raxen.components.gui;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.PlayerUtils;
import gq.unurled.raxen.components.entity.player.PlayerUtils;
import lombok.Getter;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;

View file

@ -17,7 +17,7 @@ public class GUI {
}
public static Inventory addItems(Player player) {
Integer luck = playerManager.getRaxenPlayer(player).getAttributes().getLuck(player);
Integer luck = playerManager.getLuck().get(player);
return inv;
}

View file

@ -1,29 +0,0 @@
package gq.unurled.raxen.components.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.attributes.Attributes;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.Player;
import static gq.unurled.raxen.utils.Utils.msgPlayer;
public class PlayerUtils {
public static void updateSkills(Raxen main, Player player) {
Attributes attributes = new Attributes(main);
int health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemDmg;
health = attributes.getHealth(player);
itemHealth = attributes.getItemHealth(player);
defense = attributes.getDefense(player);
itemDefense = attributes.getItemDefense(player);
speed = attributes.getSpeed(player);
itemSpeed = attributes.getItemSpeed(player);
strength = attributes.getStrength(player);
itemDmg = attributes.getItemStrength(player);
player.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(20D + (health + itemHealth) / 100);
player.setWalkSpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
player.setFlySpeed((float) (0.0 + ((speed + itemSpeed) / 100) * 0.2));
msgPlayer(player, "Speed " + (speed + itemSpeed), "Health " + (health + itemHealth), "Defense " + (defense+itemDefense), "Strength " + (strength+itemDmg));
}
}

View file

@ -1,286 +0,0 @@
package gq.unurled.raxen.components.player.attributes;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.EntityNamespacedKey;
import org.bukkit.entity.Player;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
public class Attributes {
private static EntityNamespacedKey namespacedKey;
public Attributes(Raxen main) {
namespacedKey = new EntityNamespacedKey(main);
}
public static Attribute getAttribute(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
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);
defense = data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER);
itemDefense = data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER);
speed = data.get(namespacedKey.speedKey, PersistentDataType.INTEGER);
itemSpeed = data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER);
strength = data.get(namespacedKey.strengthKey , PersistentDataType.INTEGER);
itemDmg = data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER);
mana = data.get(namespacedKey.mana, PersistentDataType.INTEGER);
itemMana = data.get(namespacedKey.itemMana, PersistentDataType.INTEGER);
maxMana = data.get(namespacedKey.maxMana, 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, 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, int luck, int itemLuck) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxHealth, PersistentDataType.INTEGER, maxHealth);
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, health);
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, itemHealth);
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, defense);
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, itemDefense);
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, speed);
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, itemSpeed);
data.set(namespacedKey.strengthKey , PersistentDataType.INTEGER, strength);
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, itemDmg);
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) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) -i);
}
public void removeHealth(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) -i);
}
public void removeDefense(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) -i);
}
public void removeStrength(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) -i);
}
public void removeMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) -i);
}
public void removeMaxMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) -i);
}
public void removeMaxHealth(Player player, int i) {
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();
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) -i);
}
public void removeItemHealth(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) -i);
}
public void removeItemDefense(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER) -i);
}
public void removeItemStrength(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) -i);
}
public void removeItemMana(Player player, int i) {
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();
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, data.get(namespacedKey.speedKey, PersistentDataType.INTEGER) +i);
}
public void addHealth(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, data.get(namespacedKey.healthKey, PersistentDataType.INTEGER) +i);
}
public void addDefense(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i);
}
public void addStrength(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER) +i);
}
public void addMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.mana, PersistentDataType.INTEGER, data.get(namespacedKey.mana, PersistentDataType.INTEGER) +i);
}
public void addMaxMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, data.get(namespacedKey.maxMana, PersistentDataType.INTEGER) +i);
}
public void addMaxHealth(Player player, int i) {
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();
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER) +i);
}
public void addItemHealth(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER) +i);
}
public void addItemDefense(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER) +i);
}
public void addItemStrength(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER) +i);
}
public void addItemMana(Player player, int i) {
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();
return data.get(namespacedKey.speedKey, PersistentDataType.INTEGER);
}
public Integer getStrength(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.strengthKey, PersistentDataType.INTEGER);
}
public Integer getHealth(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.healthKey, PersistentDataType.INTEGER);
}
public Integer getDefense(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.defenseKey, PersistentDataType.INTEGER);
}
public Integer getMana(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.mana, PersistentDataType.INTEGER);
}
public Integer getMaxMana(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.maxMana, PersistentDataType.INTEGER);
}
public Integer getMaxHealth(Player player) {
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();
return data.get(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER);
}
public Integer getItemStrength(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER);
}
public Integer getItemHealth(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.itemHealthKey, PersistentDataType.INTEGER);
}
public Integer getItemDefense(Player player) {
PersistentDataContainer data = player.getPersistentDataContainer();
return data.get(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER);
}
public Integer getItemMana(Player player) {
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();
data.set(namespacedKey.healthKey, PersistentDataType.INTEGER, i);
}
public void setDefense(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.defenseKey, PersistentDataType.INTEGER, i);
}
public void setSpeed(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.speedKey, PersistentDataType.INTEGER, i);
}
public void setStrength(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.strengthKey, PersistentDataType.INTEGER, i);
}
public void setMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.mana, PersistentDataType.INTEGER, i);
}
public void setMaxMana(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.maxMana, PersistentDataType.INTEGER, i);
}
public void setMaxHealth(Player player, int i) {
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();
data.set(namespacedKey.itemHealthKey, PersistentDataType.INTEGER, i);
}
public void setItemDefense(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemDefenseKey, PersistentDataType.INTEGER, i);
}
public void setItemSpeed(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemSpeedKey, PersistentDataType.INTEGER, i);
}
public void setItemStrength(Player player, int i) {
PersistentDataContainer data = player.getPersistentDataContainer();
data.set(namespacedKey.itemStrengthKey, PersistentDataType.INTEGER, i);
}
public void setItemMana(Player player, int i) {
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

@ -3,10 +3,12 @@ package gq.unurled.raxen.config;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.Inventories;
import gq.unurled.raxen.components.player.Storage;
import gq.unurled.raxen.components.player.attributes.Attributes;
import gq.unurled.raxen.components.player.storages.EnderChest;
import gq.unurled.raxen.components.entity.Attributes.Attribute;
import gq.unurled.raxen.components.entity.player.Inventories;
import gq.unurled.raxen.components.entity.player.PlayerUtils;
import gq.unurled.raxen.components.entity.player.Storage;
import gq.unurled.raxen.components.entity.player.attributes.Attributes;
import gq.unurled.raxen.components.entity.player.storages.EnderChest;
import gq.unurled.raxen.manager.entity.PlayerManager;
import gq.unurled.raxen.manager.entity.StorageManager;
import gq.unurled.raxen.utils.Items;
@ -24,6 +26,7 @@ import org.bukkit.inventory.PlayerInventory;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import static gq.unurled.raxen.utils.Items.listItemStackDeserilize;
@ -57,21 +60,12 @@ public class PlayerConfig {
debug(main, "Saving " + player.getName() + "'s data!");
Document doc = new Document("uuid", player.getUniqueId().toString())
.append("name", player.getName())
.append("maxHealth", attributes.getMaxHealth(player))
.append("health", attributes.getHealth(player))
.append("itemHealth", attributes.getItemHealth(player))
.append("defense", attributes.getDefense(player))
.append("itemDefense", attributes.getItemDefense(player))
.append("speed", attributes.getSpeed(player))
.append("itemSpeed", attributes.getItemSpeed(player))
.append("strength", attributes.getStrength(player))
.append("itemStrength", attributes.getItemStrength(player))
.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);
HashMap<String, Attribute> attribute = main.getManager().getPlayerManager().getAttribute();
for (String s : attribute.keySet()) {
debug("saving " + s);
doc.append(s, attribute.get(s).get(player));
}
if (playerManager.getRaxenPlayer(player).getStorage() != null) {
if(playerManager.getRaxenPlayer(player).getStorage().getEc() != null) {
debug(main, "Saving " + player.getName() + "'s storage!");
@ -103,20 +97,10 @@ public class PlayerConfig {
public void saveUsingYml(Player player, Attributes attributes, String invstr, Integer reverse) {
FileConfiguration config = sto.createYml(player);
config.set("name", player.getName());
config.set("maxHealth", attributes.getMaxHealth(player));
config.set("health", attributes.getHealth(player));
config.set("itemHealth", attributes.getItemHealth(player));
config.set("strength", attributes.getStrength(player));
config.set("itemStrength", attributes.getItemStrength(player));
config.set("speed", attributes.getSpeed(player));
config.set("itemSpeed", attributes.getItemSpeed(player));
config.set("defense", attributes.getDefense(player));
config.set("itemDefense", attributes.getItemDefense(player));
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));
HashMap<String, Attribute> attribute = main.getManager().getPlayerManager().getAttribute();
for (String s : attribute.keySet()) {
config.set(s, attribute.get(s).get(player));
}
config.set("inv", invstr);
if (playerManager.getRaxenPlayer(player).getStorage() != null) {
if(playerManager.getRaxenPlayer(player).getStorage().getEc() != null) {
@ -148,14 +132,16 @@ public class PlayerConfig {
playerManager.getRaxenPlayer(player).createNewAttribute();
playerManager.getRaxenPlayer(player).createStorage();
playerManager.getRaxenPlayer(player).createInventory();
PlayerUtils.updateSkills(main, player);
return;
}
debug(main, "Loading " + player.getName() + "'s data!");
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("luck"), playerDoc.getInteger("itemLuck"));
attributes.setAttributes(player, playerDoc.getInteger("MAX_HEALTH"), playerDoc.getInteger("HEALTH"), playerDoc.getInteger("ITEM_HEALTH"),
playerDoc.getInteger("DEFENSE"), playerDoc.getInteger("ITEM_DEFENSE"),
playerDoc.getInteger("SPEED"), playerDoc.getInteger("ITEM_SPEED"),
playerDoc.getInteger("STRENGTH"), playerDoc.getInteger("ITEM_STRENGTH"),
playerDoc.getInteger("MAX_MANA"), playerDoc.getInteger("MANA"), playerDoc.getInteger("ITEM_MANA"),
playerDoc.getInteger("LUCK"), playerDoc.getInteger("ITEM_LUCK"));
Inventory ec = Bukkit.createInventory(null, 54, Component.text("Ender Chest"));
if(playerDoc.getString("ec") != null) {
debug(main, "Loading " + player.getName() + "'s storage.");
@ -166,9 +152,10 @@ public class PlayerConfig {
inv = setItemsToInventory(listItemStackDeserilize(playerDoc.getString("inv")), inv);
player.getInventory().setContents(inv.getContents());
player.updateInventory();
gq.unurled.raxen.components.player.storages.Inventory invv = new gq.unurled.raxen.components.player.storages.Inventory(inv);
gq.unurled.raxen.components.entity.player.storages.Inventory invv = new gq.unurled.raxen.components.entity.player.storages.Inventory(inv);
Inventories invvv = new Inventories(invv);
playerManager.getRaxenPlayer(player).setInventory(inv);
PlayerUtils.updateSkills(main, player);
}
public void loadUsingYml(Player player) throws IOException {
@ -190,7 +177,7 @@ public class PlayerConfig {
inv = setItemsToInventory(listItemStackDeserilize((String) config.getString("inv")), inv);
player.getInventory().setContents(inv.getContents());
player.updateInventory();
gq.unurled.raxen.components.player.storages.Inventory invv = new gq.unurled.raxen.components.player.storages.Inventory(inv);
gq.unurled.raxen.components.entity.player.storages.Inventory invv = new gq.unurled.raxen.components.entity.player.storages.Inventory(inv);
Inventories invvv = new Inventories(invv);
playerManager.getRaxenPlayer(player).setInventory(inv);
}

View file

@ -1,9 +1,9 @@
package gq.unurled.raxen.listener.entity;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.EntityNamespacedKey;
import gq.unurled.raxen.components.items.Attributes;
import gq.unurled.raxen.utils.Items;
import gq.unurled.raxen.components.entity.other.EntityNamespacedKey;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
@ -29,55 +29,53 @@ public class DamageEntity implements Listener {
@EventHandler
public void entityDamageByEntity(EntityDamageByEntityEvent e) {
if (!(e.getEntity() instanceof LivingEntity)) {
if (!(e.getEntity() instanceof LivingEntity) || !(e.getDamager() instanceof LivingEntity)) {
debug("Not Living Entity, Some block falling shit or block entities");
} else {
e.setDamage(0);
Integer damage = 1;
Integer strength = 0;
Integer itemDmg = 0;
Integer itemStrength = 0;
Integer defense = 0;
Integer itemDefense = 0;
Integer health = 0;
Integer itemHealth = 0;
Integer initDamage = 0;
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
debug(main, e.getEntity().getName(), e.getEntity().getType().toString(), e.getDamager().getType().toString(), e.getDamager().getName());
if (e.getDamager() instanceof Player) {
Player playerDamager = (Player) e.getDamager();
gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main);
strength = attributes.getStrength(playerDamager);
itemDmg = attributes.getItemStrength(playerDamager);
strength = pm.getStrength().get(playerDamager);
itemStrength = pm.getItemStrength().get(playerDamager);
} else {
Entity entityDamager = e.getDamager();
PersistentDataContainer data = entityDamager.getPersistentDataContainer();
if (data.has(entityNamespacedKey.strengthKey, PersistentDataType.INTEGER)) {
strength = data.get(entityNamespacedKey.strengthKey, PersistentDataType.INTEGER);
if (data.has(entityNamespacedKey.strength, PersistentDataType.INTEGER)) {
strength = data.get(entityNamespacedKey.strength, PersistentDataType.INTEGER);
}
Attributes attributes = Items.getNbtFromEntity((LivingEntity) entityDamager);
itemDmg = attributes.getStrength();
itemStrength = pm.getItemStrength().getItem((LivingEntity) entityDamager);
}
if (e.getEntity() instanceof Player) {
Player playerVictim = (Player) e.getEntity();
gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main);
defense = attributes.getDefense(playerVictim);
health = attributes.getHealth(playerVictim);
itemDefense = attributes.getItemDefense(playerVictim);
itemHealth = attributes.getItemHealth(playerVictim);
gq.unurled.raxen.components.entity.player.attributes.Attributes attributes = new gq.unurled.raxen.components.entity.player.attributes.Attributes(main);
defense = pm.getDefense().get(playerVictim);
health = pm.getHealth().get(playerVictim);
itemDefense = pm.getItemDefense().get(playerVictim);
itemHealth = pm.getItemHealth().get(playerVictim);
} else {
Entity entityVictim = e.getEntity();
PersistentDataContainer data = entityVictim.getPersistentDataContainer();
if (data.has(entityNamespacedKey.defenseKey, PersistentDataType.INTEGER)) {
defense = data.get(entityNamespacedKey.defenseKey, PersistentDataType.INTEGER);
if (data.has(entityNamespacedKey.defense, PersistentDataType.INTEGER)) {
defense = data.get(entityNamespacedKey.defense, PersistentDataType.INTEGER);
}
if (data.has(entityNamespacedKey.healthKey, PersistentDataType.INTEGER)) {
health = data.get(entityNamespacedKey.healthKey, PersistentDataType.INTEGER);
if (data.has(entityNamespacedKey.health, PersistentDataType.INTEGER)) {
health = data.get(entityNamespacedKey.health, PersistentDataType.INTEGER);
}
Attributes attributes = Items.getNbtFromEntity((LivingEntity) entityVictim);
itemDefense = attributes.getDefense();
itemHealth = attributes.getHealth();
itemDefense = pm.getItemDefense().getItem((LivingEntity) entityVictim);
itemHealth = pm.getItemHealth().getItem((LivingEntity) entityVictim);
}
debug(main, initDamage.toString(), itemDefense.toString(), strength.toString());
initDamage = (5+ itemDmg) * (1+ (strength/100));
initDamage = (5+ itemStrength) * (1+ (strength/100));
damage = initDamage;
defense = defense + itemDefense;
debug(main, String.valueOf(damage));
@ -100,13 +98,12 @@ public class DamageEntity implements Listener {
}
if (e.getEntity() instanceof Player) {
Player playerVictim = (Player) e.getEntity();
gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main);
attributes.setHealth(playerVictim, health);
gq.unurled.raxen.components.entity.player.attributes.Attributes attributes = new gq.unurled.raxen.components.entity.player.attributes.Attributes(main);
pm.getHealth().set(playerVictim, health);
playerVictim.setHealth(health.doubleValue()/5);
} else {
Entity entityVictim = e.getEntity();
PersistentDataContainer data = entityVictim.getPersistentDataContainer();
data.set(entityNamespacedKey.healthKey, PersistentDataType.INTEGER, health);
pm.getHealth().set(entityVictim, health);
}
debug(main, health.toString());
}
@ -118,8 +115,7 @@ public class DamageEntity implements Listener {
e.setDamage(0);
if (e.getEntity() instanceof Player) {
Player player = (Player) e.getEntity();
gq.unurled.raxen.components.player.attributes.Attributes attributes = new gq.unurled.raxen.components.player.attributes.Attributes(main);
Integer health = attributes.getHealth(player);
}
}

View file

@ -1,8 +1,8 @@
package gq.unurled.raxen.listener.entity;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.EntityNamespacedKey;
import gq.unurled.raxen.components.entity.EntityUtils;
import gq.unurled.raxen.components.entity.other.EntityNamespacedKey;
import gq.unurled.raxen.components.entity.other.EntityUtils;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -30,9 +30,9 @@ public class SpawnEvent implements Listener {
if (e.getEntity() instanceof Player) {
//player stuff dont want to talk about it;
debug(main, "Player: " + ((Player) e.getEntity()).getName());
} else if (e.getEntity().getType() != EntityType.DROPPED_ITEM) {
} else if (e.getEntity().getType() != EntityType.DROPPED_ITEM && e.getEntity().getType() != EntityType.FALLING_BLOCK) {
debug(main, e.getEntity().getName());
if (!e.getEntity().getPersistentDataContainer().has(namespacedKey.nameKey, PersistentDataType.STRING)) {
if (!e.getEntity().getPersistentDataContainer().has(namespacedKey.name, PersistentDataType.STRING)) {
entityUtils.setNameSpacedKeys(e.getEntity(), e.getEntityType().name(), 1, 10, 0, 50, 0, 100, 0, 100, 0);
}
entityUtils.updateSkills((LivingEntity) e.getEntity());

View file

@ -3,9 +3,12 @@ package gq.unurled.raxen.listener.player;
import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.PlayerUtils;
import gq.unurled.raxen.components.player.attributes.Attributes;
import gq.unurled.raxen.components.entity.player.PlayerUtils;
import gq.unurled.raxen.components.entity.player.attributes.Attributes;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@ -22,37 +25,42 @@ public class ArmorEvent implements Listener {
@EventHandler
public void ArmorChangeEvent(PlayerArmorChangeEvent e) {
Player player = e.getPlayer();
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
Entity entity = player;
Attributes attributes = new Attributes(main);
if(e.getOldItem() != null && e.getOldItem().getType() != Material.AIR) {
ItemStack oldItem = e.getOldItem();
NBTItem nbti = new NBTItem(oldItem);
if(nbti.hasKey("SPEED")) {
attributes.removeSpeed(player, nbti.getInteger("SPEED"));
pm.getSpeed().remove(entity, nbti.getInteger("SPEED"));
}
if(nbti.hasKey("HEALTH")) {
attributes.removeHealth(player, nbti.getInteger("HEALTH"));
pm.getHealth().remove(entity, nbti.getInteger("HEALTH"));
}
if(nbti.hasKey("DEFENSE")) {
attributes.removeDefense(player, nbti.getInteger("DEFENSE"));
pm.getDefense().remove(entity, nbti.getInteger("DEFENSE"));
}
if(nbti.hasKey("STRENGTH")) {
attributes.removeStrength(player, nbti.getInteger("STRENGTH"));
pm.getStrength().remove(entity, nbti.getInteger("STRENGTH"));
}
}
if(e.getNewItem() != null && e.getNewItem().getType() != Material.AIR) {
ItemStack newItem = e.getNewItem();
NBTItem nbti = new NBTItem(newItem);
if(nbti.hasKey("SPEED")) {
attributes.addSpeed(player, nbti.getInteger("SPEED"));
pm.getSpeed().add(entity, nbti.getInteger("SPEED"));
}
if(nbti.hasKey("HEALTH")) {
attributes.addHealth(player, nbti.getInteger("HEALTH"));
pm.getHealth().add(entity, nbti.getInteger("HEALTH"));
}
if(nbti.hasKey("DEFENSE")) {
attributes.addDefense(player, nbti.getInteger("DEFENSE"));
pm.getDefense().add(entity, nbti.getInteger("DEFENSE"));
}
if(nbti.hasKey("STRENGTH")) {
attributes.addStrength(player, nbti.getInteger("STRENGTH"));
pm.getStrength().add(entity, nbti.getInteger("STRENGTH"));
}
}
PlayerUtils.updateSkills(main, player);

View file

@ -2,9 +2,12 @@ package gq.unurled.raxen.listener.player;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.PlayerUtils;
import gq.unurled.raxen.components.player.attributes.Attributes;
import gq.unurled.raxen.components.entity.player.PlayerUtils;
import gq.unurled.raxen.components.entity.player.attributes.Attributes;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@ -22,37 +25,45 @@ public class ItemHandEvent implements Listener {
@EventHandler
public void ItemHeldEvent(PlayerItemHeldEvent e) {
Player player = e.getPlayer();
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
Entity entity = player;
Attributes attributes = new Attributes(main);
ItemStack oldItem = player.getInventory().getItem(e.getPreviousSlot());
ItemStack newItem = player.getInventory().getItem(e.getNewSlot());
if(oldItem != null && oldItem.getType() != Material.AIR) {
NBTItem nbti = new NBTItem(oldItem);
if(nbti.hasKey("SPEED")) {
attributes.removeItemSpeed(player, nbti.getInteger("SPEED"));
pm.getItemSpeed().remove(player, nbti.getInteger("SPEED"));
}
if(nbti.hasKey("HEALTH")) {
attributes.removeItemHealth(player, nbti.getInteger("HEALTH"));
pm.getItemHealth().remove(player, nbti.getInteger("HEALTH"));
}
if(nbti.hasKey("DEFENSE")) {
attributes.removeItemDefense(player, nbti.getInteger("DEFENSE"));
pm.getItemDefense().remove(player, nbti.getInteger("DEFENSE"));
}
if(nbti.hasKey("STRENGTH")) {
attributes.removeItemStrength(player, nbti.getInteger("STRENGTH"));
pm.getItemStrength().remove(player, nbti.getInteger("STRENGTH"));
}
}
if(newItem != null && newItem.getType() != Material.AIR) {
NBTItem nbti = new NBTItem(newItem);
if(nbti.hasKey("SPEED")) {
attributes.addItemSpeed(player, nbti.getInteger("SPEED"));
pm.getItemSpeed().add(player, nbti.getInteger("SPEED"));
}
if(nbti.hasKey("HEALTH")) {
attributes.addItemHealth(player, nbti.getInteger("HEALTH"));
pm.getItemHealth().add(player, nbti.getInteger("HEALTH"));
}
if(nbti.hasKey("DEFENSE")) {
attributes.addItemDefense(player, nbti.getInteger("DEFENSE"));
pm.getItemDefense().add(player, nbti.getInteger("DEFENSE"));
}
if(nbti.hasKey("STRENGTH")) {
attributes.addItemStrength(player, nbti.getInteger("STRENGTH"));
pm.getItemStrength().add(player, nbti.getInteger("STRENGTH"));
}
}
PlayerUtils.updateSkills(main, player);

View file

@ -1,7 +1,7 @@
package gq.unurled.raxen.listener.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.Scoreboard;
import gq.unurled.raxen.components.entity.player.Scoreboard;
import gq.unurled.raxen.components.resourcepack.ResourcePack;
import gq.unurled.raxen.config.PlayerConfig;
import gq.unurled.raxen.manager.entity.PlayerManager;

View file

@ -1,7 +1,7 @@
package gq.unurled.raxen.listener.player;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.Scoreboard;
import gq.unurled.raxen.components.entity.player.Scoreboard;
import gq.unurled.raxen.utils.libs.Vault;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

View file

@ -8,15 +8,15 @@ import lombok.Getter;
public class Manager {
@Getter
private static WorldManager worldManager;
private WorldManager worldManager;
@Getter
private static StorageManager storageManager;
private StorageManager storageManager;
@Getter
private static PlayerManager playerManager;
private PlayerManager playerManager;
@Getter
private static ListenerManager listenerManager;
private ListenerManager listenerManager;
@Getter
private static CommandManager commandManager;
private CommandManager commandManager;
@Getter
private ItemManager itemManager;
@Getter

View file

@ -24,7 +24,7 @@ public class EntityManager {
@Setter
public List<EntityType> list = new ArrayList<>();
public HashMap<String, gq.unurled.raxen.components.entity.custom.Entity> entities = new HashMap<>();
public HashMap<String, gq.unurled.raxen.components.entity.other.custom.Entity> entities = new HashMap<>();
public HashMap<UUID, Entity> livingEntities = new HashMap<>();

View file

@ -1,9 +1,11 @@
package gq.unurled.raxen.manager.entity;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.player.RaxenPlayer;
import gq.unurled.raxen.components.player.attributes.Attribute;
import gq.unurled.raxen.components.player.classes.Class;
import gq.unurled.raxen.components.entity.Attributes.*;
import gq.unurled.raxen.components.entity.other.EntityNamespacedKey;
import gq.unurled.raxen.components.entity.player.RaxenPlayer;
import gq.unurled.raxen.components.entity.player.classes.Class;
import lombok.Getter;
import net.kyori.adventure.text.Component;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
@ -17,9 +19,28 @@ public class PlayerManager {
private Raxen main;
private HashMap<UUID, BukkitTask> actionBar = new HashMap<>();
private HashMap<String, Class> classes = new HashMap<>();
@Getter
private HashMap<String, gq.unurled.raxen.components.entity.Attributes.Attribute> attribute = new HashMap<>();
// Attributes
private Defense defense;
private Health health;
private ItemDefense itemDefense;
private ItemHealth itemHealth;
private ItemLuck itemLuck;
private ItemMana itemMana;
private ItemSpeed itemSpeed;
private ItemStrength itemStrength;
private Luck luck;
private Mana mana;
private MaxHealth maxHealth;
private MaxMana maxMana;
private Speed speed;
private Strength strength;
public PlayerManager(Raxen main) {
this.main = main;
registerAttributes();
}
public RaxenPlayer getRaxenPlayer(Player player) {
@ -27,11 +48,11 @@ public class PlayerManager {
}
public void registerActionBar(Player player) {
Attribute attributes = getRaxenPlayer(player).getAttributes().getAttribute(player);
PlayerManager pm = main.getManager().getPlayerManager();
BukkitTask task = new BukkitRunnable() {
@Override
public void run() {
player.sendActionBar(Component.text(attributes.getHealth() + "/" + attributes.getMaxHealth() + "" + attributes.getMana() + "/" + attributes.getMaxMana()));
player.sendActionBar(Component.text(pm.getHealth().get(player) + "/" + pm.getMaxHealth().get(player) + "" + pm.getMana().get(player) + "/" + pm.getMaxMana().get(player)));
}
}.runTaskTimer(main, 0L, 20L);
if(actionBar.containsKey(player.getUniqueId())) {
@ -72,4 +93,109 @@ public class PlayerManager {
public void addClasses(Class clas, String id) {
classes.put(id, clas);
}
/**
* register all Attributes in gq.unurled.raxen.components.entity.Attributes;
*/
public void registerAttributes() {
EntityNamespacedKey key = new EntityNamespacedKey(main);
this.defense = new Defense(key.defense, "DEFENSE");
attribute.put("DEFENSE", defense);
this.health = new Health(key.health, "HEALTH");
attribute.put("HEALTH", health);
this.itemDefense = new ItemDefense(key.itemDefense, "ITEM_DEFENSE");
attribute.put("ITEM_DEFENSE", itemDefense);
this.itemHealth = new ItemHealth(key.itemHealth, "ITEM_HEALTH");
attribute.put("ITEM_HEALTH", itemHealth);
this.itemLuck = new ItemLuck(key.itemLuck, "ITEM_LUCK");
attribute.put("ITEM_LUCK", itemLuck);
this.itemMana = new ItemMana(key.itemMana, "ITEM_MANA");
attribute.put("ITEM_MANA", itemMana);
this.itemSpeed = new ItemSpeed(key.itemSpeed, "ITEM_SPEED");
attribute.put("ITEM_SPEED", itemSpeed);
this.itemStrength = new ItemStrength(key.itemStrength, "ITEM_STRENGTH");
attribute.put("ITEM_STRENGTH", itemStrength);
this.luck = new Luck(key.luck, "LUCK");
attribute.put("LUCK", luck);
this.mana = new Mana(key.mana, "MANA");
attribute.put("MANA", mana);
this.maxMana = new MaxManaBuilder().setNamespacekey(key.maxMana).setName("MAX_MANA").createMaxMana();
attribute.put("MAX_MANA", maxMana);
this.maxHealth = new MaxHealth(key.maxHealth, "MAX_HEALTH");
attribute.put("MAX_HEALTH", maxHealth);
this.speed = new Speed(key.speed, "SPEED");
attribute.put("SPEED", speed);
this.strength = new Strength(key.strength, "STRENGTH");
attribute.put("STRENGTH", strength);
}
public Defense getDefense() {
return (Defense) attribute.get("DEFENSE");
}
public Health getHealth() {
return (Health) attribute.get("HEALTH");
}
public ItemDefense getItemDefense() {
return (ItemDefense) attribute.get("ITEM_DEFENSE");
}
public ItemHealth getItemHealth() {
return (ItemHealth) attribute.get("ITEM_HEALTH");
}
public ItemLuck getItemLuck() {
return (ItemLuck) attribute.get("ITEM_LUCK");
}
public ItemMana getItemMana() {
return (ItemMana) attribute.get("ITEM_MANA");
}
public ItemSpeed getItemSpeed() {
return (ItemSpeed) attribute.get("ITEM_SPEED");
}
public ItemStrength getItemStrength() {
return (ItemStrength) attribute.get("ITEM_STRENGTH");
}
public Luck getLuck() {
return (Luck) attribute.get("LUCK");
}
public Mana getMana() {
return (Mana) attribute.get("MANA");
}
public MaxMana getMaxMana() {
return (MaxMana) attribute.get("MAX_MANA");
}
public MaxHealth getMaxHealth() {
return (MaxHealth) attribute.get("MAX_HEALTH");
}
public Speed getSpeed() {
return (Speed) attribute.get("SPEED");
}
public Strength getStrength() {
return (Strength) attribute.get("STRENGTH");
}
}

View file

@ -0,0 +1,55 @@
package gq.unurled.raxen.utils;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.entity.player.attributes.Attribute;
import gq.unurled.raxen.manager.entity.PlayerManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import static gq.unurled.raxen.utils.Utils.debug;
public class EntityAttributes {
public static Attribute getAttribute(Entity e) {
int maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck;
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
defense= pm.getDefense().get(e);
maxMana = pm.getMaxMana().get(e);
itemDefense= pm.getItemDefense().get(e);
health = pm.getHealth().get(e);
itemHealth = pm.getItemHealth().get(e);
mana = pm.getMana().get(e);
speed = pm.getSpeed().get(e);
itemLuck = pm.getItemLuck().get(e);
strength = pm.getStrength().get(e);
luck = pm.getLuck().get(e);
maxHealth = pm.getMaxHealth().get(e);
itemStrength = pm.getItemStrength().get(e);
itemSpeed = pm.getItemSpeed().get(e);
itemMana = pm.getItemMana().get(e);
return new Attribute(maxHealth, health, itemHealth, defense, itemDefense, speed, itemSpeed, strength, itemStrength, maxMana, mana, itemMana, luck, itemLuck);
}
public static void setAttributes(Entity e, 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) {
PlayerManager pm = ((Raxen) Bukkit.getPluginManager().getPlugin("Raxen")).getManager().getPlayerManager();
pm.getDefense().set(e, defense);
pm.getMaxMana().set(e, maxMana);
pm.getItemDefense().set(e, itemDefense);
pm.getHealth().set(e, health);
pm.getItemHealth().set(e, itemHealth);
pm.getMana().set(e, mana);
pm.getSpeed().set(e, speed);
pm.getItemLuck().set(e, itemLuck);
pm.getStrength().set(e, strength);
pm.getLuck().set(e, luck);
pm.getMaxHealth().set(e, maxHealth);
pm.getItemStrength().set(e, itemStrength);
pm.getItemSpeed().set(e, itemSpeed);
pm.getItemMana().set(e, itemMana);
debug("Speeeeeeeeeed " + speed);
for (String s : pm.getAttribute().keySet()) {
debug(s + " " + pm.getAttribute().get(s).get(e).toString());
}
}
}

View file

@ -3,17 +3,19 @@ package gq.unurled.raxen.utils;
import com.google.gson.Gson;
import de.tr7zw.nbtapi.NBTItem;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.components.items.Attributes;
import gq.unurled.raxen.components.items.NBT;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.LivingEntity;
import org.bukkit.inventory.*;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.util.io.BukkitObjectInputStream;
import org.bukkit.util.io.BukkitObjectOutputStream;
import org.jetbrains.annotations.NotNull;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
import java.io.ByteArrayInputStream;
@ -25,7 +27,7 @@ import static gq.unurled.raxen.utils.Utils.*;
public class Items {
public static ItemStack createItem(Material material, int amount, boolean glow, boolean unb, String name, String... lore) {
public static @NotNull ItemStack createItem(Material material, int amount, boolean glow, boolean unb, String name, String... lore) {
ItemStack item = new ItemStack(material, amount);
ItemMeta itemMeta = item.getItemMeta();
if(name != null) {
@ -49,7 +51,7 @@ public class Items {
return item;
}
public static ItemStack editItem(ItemStack item, String name,int amount, List<Component> lore) {
public static @NotNull ItemStack editItem(ItemStack item, String name, int amount, List<Component> lore) {
if(amount == 0) {
amount = 1;
}
@ -62,16 +64,15 @@ public class Items {
item.setItemMeta(itemMeta);
return item;
}
public static ItemStack closeItem () {
public static @NotNull ItemStack closeItem () {
return createItem(Material.BARRIER, 1, false, false, colorString("<red>CLOSE"));
}
public static ItemStack greyPane() {
public static @NotNull ItemStack greyPane() {
return createItem(Material.GRAY_STAINED_GLASS_PANE, 1, false, true, "");
}
public static String itemStackSerilize(ItemStack it, Integer slot) {
public static @NotNull String itemStackSerilize(ItemStack it, @NotNull Integer slot) {
String str = "";
str = itemTo64(it);
str = str + "@#SLOT#" + slot.toString();
@ -96,7 +97,7 @@ public class Items {
}
}
public static itemStackDeserilizeResult itemStackDeserilize(String str) {
public static @NotNull itemStackDeserilizeResult itemStackDeserilize(@NotNull String str) {
List<String> mapp = Arrays.asList(str.split("@#SLOT#"));
Gson gson = new Gson();
ItemStack it = new ItemStack(Material.AIR);
@ -119,7 +120,7 @@ public class Items {
return itt;
}
public static String listItemStackSerelize(List<String> list) {
public static String listItemStackSerelize(@NotNull List<String> list) {
Gson gson = new Gson();
String str = "";
for(String a : list) {
@ -128,7 +129,7 @@ public class Items {
return str;
}
public static HashMap<Integer, ItemStack> listItemStackDeserilize(String str) {
public static @NotNull HashMap<Integer, ItemStack> listItemStackDeserilize(@NotNull String str) {
Gson gson = new Gson();
List<String> map = Arrays.asList(str.split("@#NEW_ITEM#"));
HashMap<Integer, ItemStack> inv = new HashMap<>();
@ -150,14 +151,14 @@ public class Items {
return inv;
}
public static Inventory setItemsToInventory(HashMap<Integer, ItemStack> list, Inventory inv) {
public static Inventory setItemsToInventory(@NotNull HashMap<Integer, ItemStack> list, Inventory inv) {
for (Map.Entry<Integer, ItemStack> entry : list.entrySet()) {
inv.setItem(entry.getKey(), entry.getValue());
}
return inv;
}
public static PlayerInventory setItemsToInventory(HashMap<Integer, ItemStack> list, PlayerInventory inv) {
public static PlayerInventory setItemsToInventory(@NotNull HashMap<Integer, ItemStack> list, PlayerInventory inv) {
for (Map.Entry<Integer, ItemStack> entry : list.entrySet()) {
if (entry.getKey() == 40) {
inv.setHelmet(entry.getValue());
@ -177,7 +178,7 @@ public class Items {
return inv;
}
private static String itemTo64(ItemStack stack) throws IllegalStateException {
private static @NotNull String itemTo64(ItemStack stack) throws IllegalStateException {
try {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
@ -207,7 +208,7 @@ public class Items {
}
}
public static String attributes(String str) {
public static @NotNull String attributes(@NotNull String str) {
String stt = "";
if(str.contains("SPEED")) {
stt = "<white>Speed";
@ -231,7 +232,7 @@ public class Items {
}
}
public static NBTItem setAttributes(Raxen main, String str, Integer nb, NBTItem nbti) {
public static NBTItem setAttributes(Raxen main, @NotNull String str, Integer nb, NBTItem nbti) {
switch (str) {
case "SPEED":
nbti.setInteger(NBT.SPEED, nb);
@ -251,50 +252,7 @@ public class Items {
return nbti;
}
public static Integer getHealth(ItemStack it) {
NBTItem nbti = new NBTItem(it);
if (nbti.hasKey(NBT.HEALTH)){
return nbti.getInteger(NBT.HEALTH);
}
return 0;
}
public static Integer getSpeed(ItemStack it) {
NBTItem nbti = new NBTItem(it);
if (nbti.hasKey(NBT.SPEED)){
return nbti.getInteger(NBT.SPEED);
}
return 0;
}
public static Integer getDefense(ItemStack it) {
NBTItem nbti = new NBTItem(it);
if (nbti.hasKey(NBT.DEFENSE)){
return nbti.getInteger(NBT.DEFENSE);
}
return 0;
}
public static Integer getStrength(ItemStack it) {
NBTItem nbti = new NBTItem(it);
if (nbti.hasKey(NBT.STRENGTH)){
return nbti.getInteger(NBT.STRENGTH);
}
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) {
public static @NotNull ItemStack setLoreFromNBT(@NotNull ItemStack it) {
ItemMeta itm = it.getItemMeta();
List<Component> lore = new ArrayList<>();
for (Component cp : itm.lore()) {
@ -348,72 +306,4 @@ public class Items {
return it;
}
public static Attributes getNbtFromEntity(LivingEntity e) {
EntityEquipment equi = e.getEquipment();
Integer health = 0;
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();
health = health + getHealth(item);
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();
health = health + getHealth(item);
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();
health = health + getHealth(item);
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();
health = health + getHealth(item);
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();
health = health + getHealth(item);
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();
health = health + getHealth(item);
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, mana, luck);
return attributes;
}
}

View file

@ -0,0 +1,23 @@
package gq.unurled.raxen.utils.libs;
import gq.unurled.raxen.Raxen;
import org.bukkit.entity.Entity;
public class Citizens {
private Raxen main;
public Citizens(Raxen main) {
this.main = main;
}
public boolean isNPC(Entity e) {
return e.hasMetadata("NPC");
}
/*
public void createNPC(EntityType type) {
NPC npc = CitizensAPI.getNPCRegistry().createNPC(type);
}
*/
}

View file

@ -0,0 +1,24 @@
package gq.unurled.raxen.utils.libs;
import gq.unurled.raxen.Raxen;
import lombok.Getter;
import net.luckperms.api.LuckPerms;
import org.bukkit.Bukkit;
import org.bukkit.plugin.RegisteredServiceProvider;
public class LuckPerm {
private static RegisteredServiceProvider<LuckPerms> provider;
@Getter
private static LuckPerms api;
public LuckPerm(Raxen main) {
provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);
}
public static void register() {
if (provider != null) {
api = provider.getProvider();
}
}
}

View file

@ -0,0 +1,47 @@
package gq.unurled.raxen.utils.libs;
import com.mongodb.ConnectionString;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import lombok.Getter;
import org.bson.Document;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import java.util.Objects;
import static gq.unurled.raxen.utils.Utils.colorComp;
import static gq.unurled.raxen.utils.Utils.log;
public class MongoDB {
@Getter
private MongoClient mongoClient;
@Getter
private MongoDatabase mongoDatabase;
@Getter
private MongoCollection<Document> mongoCollection;
@Getter
private MongoCollection<Document> mongoConfigs;
public void connect() {
FileConfiguration config = Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("Raxen")).getConfig();
String uri = (String) config.get("url");
assert uri != null;
log("URI" + uri);
ConnectionString connectionString = new ConnectionString(uri);
mongoClient = MongoClients.create(connectionString);
mongoDatabase = mongoClient.getDatabase("Raxen");
mongoCollection = mongoDatabase.getCollection("player");
mongoConfigs = mongoDatabase.getCollection("config");
Bukkit.getConsoleSender().sendMessage(colorComp("<green>MongoDB connected!"));
}
public void close() {
mongoClient.close();
Bukkit.getConsoleSender().sendMessage(colorComp("<red>MongoDB disconnected!"));
}
}

View file

@ -0,0 +1,46 @@
package gq.unurled.raxen.utils.libs;
import gq.unurled.raxen.Raxen;
import gq.unurled.raxen.config.Config;
import gq.unurled.raxen.manager.entity.StorageManager;
import org.bukkit.entity.Player;
import java.sql.SQLException;
public class Mysql {
private static String username;
private static String password;
private static String url;
private Raxen main;
private StorageManager sto;
private Config config;
public Mysql(Raxen main) {
this.main = main;
this.sto = main.getManager().getStorageManager();
this.config = main.getConf();
this.username = (String) config.getConfig().get("username");
this.url = (String) config.getConfig().get("url");
this.password = (String) config.getConfig().get("password");
}
public static void init() {
}
public static String get(Player player, String str) throws SQLException {
return "False";
}
public static void connect() {
}
public static void disconnect() {
}
}

View file

@ -0,0 +1,18 @@
package gq.unurled.raxen.utils.libs;
import gq.unurled.raxen.Raxen;
public class PlaceHolderAPI {
private Raxen main;
public PlaceHolderAPI(Raxen main) {
this.main = main;
}
/*
public static setPlaceholders() {
}
*/
}

View file

@ -0,0 +1,48 @@
package gq.unurled.raxen.utils.libs;
import gq.unurled.raxen.Raxen;
import lombok.Getter;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;
import java.text.DecimalFormat;
import static gq.unurled.raxen.utils.Utils.error;
public class Vault {
@Getter
private Economy econ = null;
//econ.depositPlayer(player,amount)
//econ.withdrawPlayer(player,amount)
//econ.getBalance(player);
private static Raxen main;
public Vault(Raxen main) {
this.main = main;
setupEconomy();
}
private void setupEconomy() {
if (main.getServer().getPluginManager().getPlugin("Vault") == null) {
error((Raxen) Bukkit.getPluginManager().getPlugin("Raxen"),"Need to install plugin Vault. (https://github.com/milkbowl/Vault)");
return;
}
RegisteredServiceProvider<Economy> rsp = main.getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
error((Raxen) Bukkit.getPluginManager().getPlugin("Raxen"),"Some bug happend in the initialisation of Vault and Raxen.");
return;
}
econ = rsp.getProvider();
return;
}
public String getBalanceString(Player player) {
double bal = econ.getBalance(player);
DecimalFormat format = new DecimalFormat("#,###.00");
return format.format(bal);
}
}

View file

@ -0,0 +1,5 @@
package gq.unurled.raxen.utils.libs;
public class WorldEdit {
}

View file

@ -1,14 +1,14 @@
version: "${version}"
motd: "YAY, Super server!"
motd-reload: "Server reloading!"
version: "${version}"
motd: "YAY, Super server!"
motd-reload: "Server reloading!"
storage: "MONGODB" #switch between "MONGODB", "MYSQL"(not implemented), "YML"(currzently making it)
#if MYSQL
username: "Your-username-here"
password: "Your-password-here"
url: "url-to-the-server/db_Name"
storage: "MONGODB" # switch between "MONGODB", "MYSQL"(not implemented), "YML"(currently making it)
# if MYSQL or MongoDB
username: "no_usr" # if mysql if you are on mongodb, add username in the url
password: "no_pass" # if mysql if you are on mongodb, add password in the url
url: "mongodb://localhost:27017"
useResourcePack: true
resource_pack_url: "https://mc-packs.net/" # recommend to use https://mc-packs.net/ => free ressource pack hoster (will eventualy developp one myself but not atm)
resource_pack_sha1: "sha1hallo" # sha1 hash
debug: true
useResourcePack: false
resource_pack_url: "https://mc-packs.net/" # recommend to use https://mc-packs.net/ => free resource pack hoster (will eventually develop one myself but not atm)
resource_pack_sha1: "sha1hallo" # sha1 hash
debug: true