Save as branch

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

7
.gitignore vendored
View file

@ -6,8 +6,13 @@
.classpath
.project
api/
libs/
*.iml
.gradle/
*.lock
*.iml
*.ipr
*.iws
@ -103,6 +108,7 @@ $RECYCLE.BIN/
*.lnk
target/
build/
pom.xml.tag
pom.xml.releaseBackup
@ -118,3 +124,4 @@ buildNumber.properties
# Common working directory
run/
/.gradle/

View file

@ -1,6 +1,9 @@
# Future for Raxen
#### to wich direction i want Raxen to go ?
#### to wich direction i want Raxen to go ?
Some RPG thing :
- Hypixel has Skyblock
- Wyncraft has Quests and Magic
- Raxen must do :
@ -9,4 +12,15 @@ Some RPG thing :
- need custom mobs => some are made => not definitive need more => juste made the damage system and persistentdatacontainer on entities outside of Player, might consider to switch to persistentdatacontainer on player instead of having an hashmap (ProfileManager.java)
- need custom items => partialy made => need custom resource pack support
- can use custom texture pack => in making
- protection and logging feature => coreprotect
- protection and logging feature => coreprotect
- solo leveling inspired thing with player being mc of his onw world, can do side quest with every1, and can make a party to play, max of 4?:
- Gates:
- power: ranked from F, E, D, C, B, A, S, SS, SSS, world, unbeatable and so on
- Dungunes:
- differents types => labirynth, graves,abandoned castle, openfiled like jungles, forest, plains => all of them with night variant and many days to complete
- Monster:
- basic isekai manga sort of monster and also high leveled op monster king of something => bosses
- outbreak if gate isn't closed in time
- loots:
- items of different rarities with multiple purpose => medicinal, combat related type, defensive etc...
- leveling system for the player

View file

@ -5,6 +5,8 @@ Minecraft Plugin that do multiple stuff.
## Future of the Plugin/to do
![Schema of Raxen](./main.svg)
[FUTURE.md](/FUTURE.md)
## Installing

View file

@ -0,0 +1,145 @@
<mxfile host="65bd71144e">
<diagram id="Bpj--LMIeMzEPN0B_4bc" name="Page-1">
<mxGraphModel dx="879" dy="658" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="2" value="Raxen" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="3" value="RPG" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="100" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="5" value="" style="endArrow=classic;html=1;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="2" target="3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="365" y="50" as="sourcePoint"/>
<mxPoint x="365" y="100" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="8" value="Custom Mobs" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="180" y="240" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="9" value="Custom Items" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="60" y="240" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="10" value="" style="endArrow=classic;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="3" target="9">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="120" y="150" as="sourcePoint"/>
<mxPoint x="170" y="100" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="12" value="" style="endArrow=classic;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="3" target="8">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="240" y="150" as="sourcePoint"/>
<mxPoint x="290" y="100" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="13" value="Dungeons accesed via Gates" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="240" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="14" value="Combat" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="100" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="15" value="" style="endArrow=classic;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="2" target="14">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="425" y="60" as="sourcePoint"/>
<mxPoint x="475" y="10" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="16" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="14" target="13">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="420" as="sourcePoint"/>
<mxPoint x="420" y="210" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="17" value="" style="endArrow=classic;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="14" target="8">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="420" as="sourcePoint"/>
<mxPoint x="450" y="370" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="18" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="14" target="9">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="420" as="sourcePoint"/>
<mxPoint x="450" y="370" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="19" value="Attack with" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rotation=-30;" vertex="1" parent="1">
<mxGeometry x="250" y="150" width="70" height="20" as="geometry"/>
</mxCell>
<mxCell id="20" value="Attack" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rotation=-45;" vertex="1" parent="1">
<mxGeometry x="300" y="190" width="40" height="20" as="geometry"/>
</mxCell>
<mxCell id="22" value="" style="endArrow=classic;startArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8" target="13">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="310" y="280" as="sourcePoint"/>
<mxPoint x="350" y="240" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="23" value="loots" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="370" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="24" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="13" target="23">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="380" y="300" as="sourcePoint"/>
<mxPoint x="430" y="250" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="25" value="" style="endArrow=classic;startArrow=classic;html=1;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=0.613;exitY=1.047;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="9" target="23">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="200" y="380" as="sourcePoint"/>
<mxPoint x="250" y="330" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="26" value="obtain" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rotation=15;" vertex="1" parent="1">
<mxGeometry x="270" y="330" width="40" height="20" as="geometry"/>
</mxCell>
<mxCell id="27" value="better loots with better luck" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rotation=0;" vertex="1" parent="1">
<mxGeometry x="540" y="410" width="90" height="20" as="geometry"/>
</mxCell>
<mxCell id="28" value="Player" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="600" y="100" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="29" value="" style="endArrow=classic;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="28">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="560" y="50" as="sourcePoint"/>
<mxPoint x="610" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="30" value="Stats" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="660" y="240" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="31" value="" style="endArrow=classic;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="28" target="30">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="270" as="sourcePoint"/>
<mxPoint x="450" y="220" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="32" value="Custom Items" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="540" y="240" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="33" value="" style="endArrow=classic;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="28" target="32">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="270" as="sourcePoint"/>
<mxPoint x="450" y="220" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="34" value="Health, Strength, Defense, Mana, Luck, Agility, Stamina" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="660" y="370" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="35" value="" style="endArrow=classic;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="30" target="34">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="350" as="sourcePoint"/>
<mxPoint x="450" y="300" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="36" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="34" target="23">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="575" y="420" as="sourcePoint"/>
<mxPoint x="625" y="370" as="targetPoint"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,4 @@
version: "${project.version}"
version: "${version}"
motd: "YAY, Super server!"
motd-reload: "Server reloading!"

View file

@ -12,5 +12,6 @@ Pack:
parent: "item/generated"
custom_model_data: 123
model: "red_wool"
drop_rate: 100.0
lore:
- '&cSuper lore'

View file

@ -0,0 +1,15 @@
gates:
1:
id: 1
world_source: "world"
x1: 100
y1: 100
z1: 100
x2: 103
y2: 103
z2: 103
name: "hallo"
world_dest: "world"
dest_x: 110
dest_y: 110
dest_z: 110

View file

@ -1,6 +1,7 @@
name: Raxen
version: '${project.version}'
version: '${version}'
main: gq.unurled.raxen.Raxen
author: unurled
api-version: 1.18
depend: [ProtocolLib]
softdepend: [AureliumSkills, LuckPerms]