Created alchemy extension

This commit is contained in:
Auxilor 2020-11-26 09:13:22 +00:00
parent f8627836af
commit fbe1cd7a5f
7 changed files with 111 additions and 0 deletions

View File

@ -0,0 +1,14 @@
dependencies {
compileOnly 'org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT'
compileOnly project(':plugin')
}
jar{
archiveFileName = project.name + " Extension" + ".jar"
}
description = 'Alchemy'
tasks.withType(Jar) {
destinationDirectory = file("$rootDir/bin/")
}

View File

@ -0,0 +1,46 @@
package com.willfp.ecoenchants.alchemy;
import com.willfp.ecoenchants.EcoEnchantsPlugin;
import com.willfp.ecoenchants.enchantments.EcoEnchant;
import com.willfp.ecoenchants.enchantments.util.EnchantChecks;
import com.willfp.ecoenchants.enchantments.util.EnchantmentUtils;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityPotionEffectEvent;
import org.bukkit.persistence.PersistentDataType;
import org.bukkit.potion.PotionEffect;
public class Alchemy extends EcoEnchant {
public Alchemy() {
super("alchemy", EnchantmentType.NORMAL, AlchemyMain.class);
}
@EventHandler
public void onPotionEffect(EntityPotionEffectEvent event) {
if(event.getNewEffect() == null) return;
if(!(event.getEntity() instanceof LivingEntity)) return;
LivingEntity entity = (LivingEntity) event.getEntity();
int level = EnchantChecks.getArmorPoints(entity, this);
if(level == 0) return;
if(!EnchantmentUtils.passedChance(this, level))
return;
PotionEffect effect = event.getNewEffect();
PotionEffect newEffect = new PotionEffect(
effect.getType(),
effect.getDuration(),
((effect.getAmplifier() + 1) * 2) - 1,
effect.isAmbient(),
effect.hasParticles(),
effect.hasIcon()
);
entity.removePotionEffect(effect.getType());
entity.addPotionEffect(newEffect);
}
}

View File

@ -0,0 +1,15 @@
package com.willfp.ecoenchants.alchemy;
import com.willfp.ecoenchants.extensions.Extension;
public class AlchemyMain extends Extension {
@Override
public void onEnable() {
}
@Override
public void onDisable() {
}
}

View File

@ -0,0 +1,26 @@
#
# Alchemy EcoEnchant
#
name: "Alchemy"
description: Chance to double the strength of potions
enabled: true
obtaining:
table: true
villager: true
loot: true
rarity: legendary
general-config:
targets:
- helmet
- chestplate
- leggings
- boots
grindstoneable: true
conflicts: []
maximum-level: 6
config:
chance-per-level: 4

View File

@ -0,0 +1,3 @@
name: Alchemy
main: com.willfp.ecoenchants.alchemy.AlchemyMain
version: 1.0.0

View File

@ -1,6 +1,7 @@
package com.willfp.ecoenchants.config;
import com.willfp.ecoenchants.EcoEnchantsPlugin;
import com.willfp.ecoenchants.util.Logger;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
@ -43,6 +44,10 @@ public abstract class UpdatingYamlConfig {
config.load(configFile);
InputStream newIn = EcoEnchantsPlugin.getInstance().getResource(name);
if(newIn == null) {
Logger.error(name + " is null?");
return;
}
BufferedReader reader = new BufferedReader(new InputStreamReader(newIn, StandardCharsets.UTF_8));
YamlConfiguration newConfig = new YamlConfiguration();
newConfig.load(reader);

View File

@ -35,3 +35,5 @@ findProject(':Biomes').projectDir = file('Extensions/Biomes')
include('SprintArtifacts')
findProject(':SprintArtifacts').projectDir = file('Extensions/SprintArtifacts')
include('Alchemy')
findProject(':Alchemy').projectDir = file('Extensions/Alchemy')