diff --git a/README.md b/README.md index cd3045871..e475913da 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ Supported Plugins: (And the sources we acquired Jar files from.) - TerrainControl (https://www.spigotmc.org/resources/terraincontrol.2214/) - Towny (http://towny.palmergames.com/) - TownyChat (http://towny.palmergames.com/) +- Vampire (https://www.spigotmc.org/resources/vampire.1906/) - Vault (http://dev.bukkit.org/bukkit-plugins/vault/) - Votifier (http://dev.bukkit.org/bukkit-plugins/votifier/) - WorldEdit (https://dev.bukkit.org/bukkit-plugins/worldedit/) diff --git a/bukkit/pom.xml b/bukkit/pom.xml index 78c356785..0e9f47d0c 100644 --- a/bukkit/pom.xml +++ b/bukkit/pom.xml @@ -119,6 +119,13 @@ system ${basedir}/src/main/resources/lib/Factions.jar + + com.massivecraft + Vampire + 2.13.7 + system + ${basedir}/src/main/resources/lib/Vampire.jar + com.massivecraft MassiveCore diff --git a/bukkit/src/main/java/com/denizenscript/depenizen/bukkit/extensions/vampire/VampirePlayerExtension.java b/bukkit/src/main/java/com/denizenscript/depenizen/bukkit/extensions/vampire/VampirePlayerExtension.java new file mode 100644 index 000000000..609b6fac6 --- /dev/null +++ b/bukkit/src/main/java/com/denizenscript/depenizen/bukkit/extensions/vampire/VampirePlayerExtension.java @@ -0,0 +1,83 @@ +package com.denizenscript.depenizen.bukkit.extensions.vampire; + +import com.denizenscript.depenizen.bukkit.extensions.dObjectExtension; +import com.massivecraft.vampire.entity.UPlayer; +import net.aufdemrand.denizen.objects.dPlayer; +import net.aufdemrand.denizencore.objects.Element; +import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.tags.Attribute; + +public class VampirePlayerExtension extends dObjectExtension { + + public static boolean describes(dObject object) { + return object instanceof dPlayer; + } + + public static VampirePlayerExtension getFrom(dObject object) { + if (!describes(object)) { + return null; + } + else { + return new VampirePlayerExtension((dPlayer) object); + } + } + + public VampirePlayerExtension(dPlayer player) { + this.uPlayer = UPlayer.get(player.getPlayerEntity()); + } + + UPlayer uPlayer = null; + + @Override + public String getAttribute(Attribute attribute) { + if (attribute == null) { + return null; + } + + // <--[tag] + // @attribute + // @returns Element(Boolean) + // @description + // Returns true if the player is a vampire. + // @Plugin DepenizenBukkit, Vampire + // --> + if (attribute.startsWith("is_vampire")) { + return new Element(uPlayer.isVampire()).getAttribute(attribute.fulfill(1)); + } + + // <--[tag] + // @attribute + // @returns Element(Boolean) + // @description + // Returns true if the player is infected. + // @Plugin DepenizenBukkit, Vampire + // --> + if (attribute.startsWith("is_ínfected")) { + return new Element(uPlayer.isInfected()).getAttribute(attribute.fulfill(1)); + } + + // <--[tag] + // @attribute + // @returns Element(Double) + // @description + // Returns the value of the combat infection risk. + // @Plugin DepenizenBukkit, Vampire + // --> + if (attribute.startsWith("combat_infect")) { + return new Element(uPlayer.combatInfectRisk()).getAttribute(attribute.fulfill(1)); + } + + // <--[tag] + // @attribute + // @returns Element(Double) + // @description + // Returns the value of the combat damage factor. + // @Plugin DepenizenBukkit, Vampire + // --> + if (attribute.startsWith("combat_damage")) { + return new Element(uPlayer.combatDamageFactor()).getAttribute(attribute.fulfill(1)); + } + + return null; + } +} diff --git a/bukkit/src/main/java/com/denizenscript/depenizen/bukkit/support/plugins/VampireSupport.java b/bukkit/src/main/java/com/denizenscript/depenizen/bukkit/support/plugins/VampireSupport.java new file mode 100644 index 000000000..2a445660e --- /dev/null +++ b/bukkit/src/main/java/com/denizenscript/depenizen/bukkit/support/plugins/VampireSupport.java @@ -0,0 +1,11 @@ +package com.denizenscript.depenizen.bukkit.support.plugins; + +import com.denizenscript.depenizen.bukkit.extensions.vampire.VampirePlayerExtension; +import com.denizenscript.depenizen.bukkit.support.Support; +import net.aufdemrand.denizen.objects.dPlayer; + +public class VampireSupport extends Support { + public VampireSupport() { + registerProperty(VampirePlayerExtension.class, dPlayer.class); + } +} diff --git a/bukkit/src/main/resources/lib/Vampire.jar b/bukkit/src/main/resources/lib/Vampire.jar new file mode 100644 index 000000000..b4459814e Binary files /dev/null and b/bukkit/src/main/resources/lib/Vampire.jar differ diff --git a/bukkit/src/main/resources/plugin.yml b/bukkit/src/main/resources/plugin.yml index 453abf71f..28c9395f2 100644 --- a/bukkit/src/main/resources/plugin.yml +++ b/bukkit/src/main/resources/plugin.yml @@ -3,7 +3,7 @@ authors: ['Morphan1', 'DenizenScript team'] version: ${project.version} (build ${BUILD_NUMBER}) main: com.denizenscript.depenizen.bukkit.DepenizenPlugin depend: [Denizen] -softdepend: [mcMMO, BattleNight, Towny, Factions, Votifier, Jobs, Heroes, pvparena, WorldEdit, WorldGuard, Essentials, pvpstats, HyperConomy, SkillAPI, Prism, TerrainControl, PlotMe, PlotSquared, SimpleClans, MobArena, ASkyBlock, NoCheatPlus, MythicMobs, Sentinel, Shopkeepers, GriefPrevention, Quests, PlaceholderAPI, Residence, dtlTraders, AreaShop, LibsDisguises, OpenTerrainGenerator, PlayerPoints, LuckPerms, EffectLib, BossShop] +softdepend: [mcMMO, BattleNight, Towny, Factions, Votifier, Jobs, Heroes, pvparena, WorldEdit, WorldGuard, Essentials, pvpstats, HyperConomy, SkillAPI, Prism, TerrainControl, PlotMe, PlotSquared, SimpleClans, MobArena, ASkyBlock, NoCheatPlus, MythicMobs, Sentinel, Shopkeepers, GriefPrevention, Quests, PlaceholderAPI, Residence, dtlTraders, AreaShop, LibsDisguises, OpenTerrainGenerator, PlayerPoints, LuckPerms, EffectLib, BossShop, Vampire] commands: depenizen: