mirror of
https://github.com/Auxilor/EcoSkills.git
synced 2026-01-04 15:41:36 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -13,6 +13,11 @@ public class PlayerSkillExpGainEvent extends PlayerEvent implements Cancellable
|
||||
*/
|
||||
private static final HandlerList HANDLERS = new HandlerList();
|
||||
|
||||
/**
|
||||
* If multiplier is used in this event
|
||||
*/
|
||||
private final boolean multiply;
|
||||
|
||||
/**
|
||||
* The skill.
|
||||
*/
|
||||
@@ -37,10 +42,12 @@ public class PlayerSkillExpGainEvent extends PlayerEvent implements Cancellable
|
||||
*/
|
||||
public PlayerSkillExpGainEvent(@NotNull final Player who,
|
||||
@NotNull final Skill skill,
|
||||
final double amount) {
|
||||
final double amount,
|
||||
final boolean multiply) {
|
||||
super(who);
|
||||
this.skill = skill;
|
||||
this.amount = amount;
|
||||
this.multiply = multiply;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,6 +68,15 @@ public class PlayerSkillExpGainEvent extends PlayerEvent implements Cancellable
|
||||
return amount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if EcoSkills multipliers are used in this event.
|
||||
*
|
||||
* @return The experience.
|
||||
*/
|
||||
public boolean isMultiply() {
|
||||
return multiply;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the amount of experience.
|
||||
*
|
||||
|
||||
@@ -2,7 +2,32 @@ package com.willfp.ecoskills.effects;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.willfp.eco.core.config.updating.ConfigUpdater;
|
||||
import com.willfp.ecoskills.effects.effects.*;
|
||||
import com.willfp.ecoskills.effects.effects.EffectAcceleratedEscape;
|
||||
import com.willfp.ecoskills.effects.effects.EffectBountifulHarvest;
|
||||
import com.willfp.ecoskills.effects.effects.EffectBravery;
|
||||
import com.willfp.ecoskills.effects.effects.EffectCraftsmanship;
|
||||
import com.willfp.ecoskills.effects.effects.EffectDazzle;
|
||||
import com.willfp.ecoskills.effects.effects.EffectDodging;
|
||||
import com.willfp.ecoskills.effects.effects.EffectDynamicMining;
|
||||
import com.willfp.ecoskills.effects.effects.EffectEfficientBrewing;
|
||||
import com.willfp.ecoskills.effects.effects.EffectEndangering;
|
||||
import com.willfp.ecoskills.effects.effects.EffectEyeOfTheDepths;
|
||||
import com.willfp.ecoskills.effects.effects.EffectGoldenYield;
|
||||
import com.willfp.ecoskills.effects.effects.EffectInfernalResistance;
|
||||
import com.willfp.ecoskills.effects.effects.EffectMagneticRod;
|
||||
import com.willfp.ecoskills.effects.effects.EffectMasterLumberjack;
|
||||
import com.willfp.ecoskills.effects.effects.EffectMysticResilience;
|
||||
import com.willfp.ecoskills.effects.effects.EffectOvercompensation;
|
||||
import com.willfp.ecoskills.effects.effects.EffectPotionmaster;
|
||||
import com.willfp.ecoskills.effects.effects.EffectReimbursement;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSatiation;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSeamlessMovement;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSecondChance;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSerratedStrikes;
|
||||
import com.willfp.ecoskills.effects.effects.EffectShamanism;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSpelunking;
|
||||
import com.willfp.ecoskills.effects.effects.EffectStrongImpact;
|
||||
import com.willfp.ecoskills.effects.effects.EffectVersatileTools;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.willfp.ecoskills
|
||||
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent
|
||||
import java.util.*
|
||||
import java.util.WeakHashMap
|
||||
|
||||
private val critMap = WeakHashMap<EntityDamageByEntityEvent, Boolean>()
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.bukkit.OfflinePlayer
|
||||
import org.bukkit.entity.Entity
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.entity.Projectile
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
import kotlin.math.abs
|
||||
|
||||
val expMultiplierCache = mutableMapOf<UUID, Double>()
|
||||
@@ -71,15 +71,17 @@ fun OfflinePlayer.getAverageSkillLevel(): Double {
|
||||
}
|
||||
|
||||
fun Player.giveSkillExperience(skill: Skill, experience: Double, noMultiply: Boolean = false) {
|
||||
val exp = abs(if (noMultiply) experience else experience * this.getSkillExperienceMultiplier())
|
||||
var exp = abs(if (noMultiply) experience else experience * this.getSkillExperienceMultiplier())
|
||||
|
||||
val gainEvent = PlayerSkillExpGainEvent(this, skill, exp)
|
||||
val gainEvent = PlayerSkillExpGainEvent(this, skill, exp, !noMultiply)
|
||||
Bukkit.getPluginManager().callEvent(gainEvent)
|
||||
|
||||
if (gainEvent.isCancelled) {
|
||||
return
|
||||
}
|
||||
|
||||
exp = gainEvent.amount
|
||||
|
||||
val level = this.getSkillLevel(skill)
|
||||
|
||||
this.setSkillProgress(skill, this.getSkillProgress(skill) + exp)
|
||||
|
||||
@@ -1,9 +1,24 @@
|
||||
package com.willfp.ecoskills.api
|
||||
|
||||
import com.willfp.ecoskills.*
|
||||
import com.willfp.ecoskills.addStatModifier
|
||||
import com.willfp.ecoskills.api.modifier.ItemStatModifier
|
||||
import com.willfp.ecoskills.api.modifier.PlayerStatModifier
|
||||
import com.willfp.ecoskills.effects.Effect
|
||||
import com.willfp.ecoskills.getAverageSkillLevel
|
||||
import com.willfp.ecoskills.getBaseStatLevel
|
||||
import com.willfp.ecoskills.getBonusStatLevel
|
||||
import com.willfp.ecoskills.getEffectLevel
|
||||
import com.willfp.ecoskills.getSkillLevel
|
||||
import com.willfp.ecoskills.getSkillProgress
|
||||
import com.willfp.ecoskills.getSkillProgressRequired
|
||||
import com.willfp.ecoskills.getSkillProgressToNextLevel
|
||||
import com.willfp.ecoskills.getStatLevel
|
||||
import com.willfp.ecoskills.getStatModifier
|
||||
import com.willfp.ecoskills.getStatModifierKeys
|
||||
import com.willfp.ecoskills.getStatModifiers
|
||||
import com.willfp.ecoskills.getTotalSkillLevel
|
||||
import com.willfp.ecoskills.giveSkillExperience
|
||||
import com.willfp.ecoskills.removeStatModifier
|
||||
import com.willfp.ecoskills.skills.Skill
|
||||
import com.willfp.ecoskills.stats.Stat
|
||||
import org.bukkit.NamespacedKey
|
||||
|
||||
@@ -4,9 +4,6 @@ import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.command.CommandHandler
|
||||
import com.willfp.eco.core.command.TabCompleteHandler
|
||||
import com.willfp.eco.core.command.impl.Subcommand
|
||||
import com.willfp.eco.util.PlayerUtils
|
||||
import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.ecoskills.data.LeaderboardHandler
|
||||
import com.willfp.ecoskills.effects.Effect
|
||||
import com.willfp.ecoskills.effects.Effects
|
||||
import com.willfp.ecoskills.getSkillLevel
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.willfp.ecoskills.data.legacy
|
||||
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
|
||||
interface DataHandler {
|
||||
fun <T> read(uuid: UUID, key: String): T?
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.willfp.ecoskills.skills.Skills
|
||||
import com.willfp.ecoskills.stats.Stats
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.OfflinePlayer
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
|
||||
@Suppress("UNCHECKED_CAST", "DEPRECATED")
|
||||
class LegacyPlayerProfile private constructor(
|
||||
|
||||
@@ -6,9 +6,14 @@ import com.willfp.ecoskills.skills.Skills
|
||||
import com.willfp.ecoskills.stats.Stats
|
||||
import org.jetbrains.exposed.dao.id.EntityID
|
||||
import org.jetbrains.exposed.dao.id.UUIDTable
|
||||
import org.jetbrains.exposed.sql.*
|
||||
import org.jetbrains.exposed.sql.Column
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.jetbrains.exposed.sql.DoubleColumnType
|
||||
import org.jetbrains.exposed.sql.IntegerColumnType
|
||||
import org.jetbrains.exposed.sql.SchemaUtils
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.transactions.transaction
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
class MySQLDataHandler(
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.willfp.ecoskills.data.legacy
|
||||
|
||||
import com.willfp.eco.core.config.yaml.YamlBaseConfig
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
class YamlDataHandler(
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.willfp.ecoskills.SkillObject
|
||||
import com.willfp.ecoskills.getEffectLevel
|
||||
import org.bukkit.NamespacedKey
|
||||
import org.bukkit.event.Listener
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
|
||||
abstract class Effect(
|
||||
id: String
|
||||
|
||||
@@ -7,10 +7,14 @@ import com.willfp.eco.core.data.keys.PersistentDataKeyType
|
||||
import com.willfp.eco.core.integrations.placeholder.PlaceholderEntry
|
||||
import com.willfp.eco.util.NumberUtils
|
||||
import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.ecoskills.*
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.SkillObject
|
||||
import com.willfp.ecoskills.config.SkillConfig
|
||||
import com.willfp.ecoskills.effects.Effect
|
||||
import com.willfp.ecoskills.effects.Effects
|
||||
import com.willfp.ecoskills.getAverageSkillLevel
|
||||
import com.willfp.ecoskills.getSkillLevel
|
||||
import com.willfp.ecoskills.getTotalSkillLevel
|
||||
import com.willfp.ecoskills.stats.Stats
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.NamespacedKey
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.bukkit.entity.Player
|
||||
import org.bukkit.inventory.ItemFlag
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.persistence.PersistentDataType
|
||||
import java.util.*
|
||||
import java.util.Objects
|
||||
import kotlin.math.ceil
|
||||
|
||||
class SkillGUI(
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.inventory.BrewEvent
|
||||
import org.bukkit.inventory.meta.PotionMeta
|
||||
import java.util.*
|
||||
import java.util.EnumMap
|
||||
|
||||
class SkillAlchemy : Skill(
|
||||
"alchemy"
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.bukkit.block.data.Ageable
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.block.BlockBreakEvent
|
||||
import java.util.*
|
||||
import java.util.EnumMap
|
||||
|
||||
class SkillFarming : Skill(
|
||||
"farming"
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.bukkit.Material
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.block.BlockBreakEvent
|
||||
import java.util.*
|
||||
import java.util.EnumMap
|
||||
|
||||
class SkillMining : Skill(
|
||||
"mining"
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.bukkit.Material
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.block.BlockBreakEvent
|
||||
import java.util.*
|
||||
import java.util.EnumMap
|
||||
|
||||
class SkillWoodcutting : Skill(
|
||||
"woodcutting"
|
||||
|
||||
@@ -5,13 +5,13 @@ import com.willfp.eco.core.integrations.hologram.HologramManager
|
||||
import com.willfp.eco.util.NumberUtils
|
||||
import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.ecoskills.isCrit
|
||||
import org.bukkit.entity.LivingEntity
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.entity.Projectile
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.Listener
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent
|
||||
import org.bukkit.event.entity.EntityRegainHealthEvent
|
||||
|
||||
class DamageIndicatorListener(
|
||||
private val plugin: EcoPlugin
|
||||
@@ -67,4 +67,37 @@ class DamageIndicatorListener(
|
||||
holo.remove()
|
||||
}, 30)
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
fun onHeal(event: EntityRegainHealthEvent) {
|
||||
if (!plugin.configYml.getBool("damage-indicators.healing.enabled")) {
|
||||
return
|
||||
}
|
||||
|
||||
val location = event.entity.location
|
||||
|
||||
location.add(0.0, event.entity.height, 0.0)
|
||||
|
||||
val x = plugin.configYml.getDouble("damage-indicators.max-x-offset")
|
||||
val y = plugin.configYml.getDouble("damage-indicators.max-y-offset")
|
||||
val z = plugin.configYml.getDouble("damage-indicators.max-z-offset")
|
||||
location.add(
|
||||
NumberUtils.randFloat(-x, x),
|
||||
NumberUtils.randFloat(-y, y),
|
||||
NumberUtils.randFloat(-z, z)
|
||||
)
|
||||
|
||||
var text = plugin.configYml.getString("damage-indicators.healing.format", false)
|
||||
|
||||
text = text.replace("%damage%", NumberUtils.format(event.amount))
|
||||
|
||||
text = StringUtils.format(text)
|
||||
|
||||
val holo = HologramManager.createHologram(location, listOf(text))
|
||||
|
||||
plugin.scheduler.runLater({
|
||||
holo.remove()
|
||||
}, 30)
|
||||
}
|
||||
}
|
||||
@@ -6,11 +6,15 @@ import com.willfp.eco.core.data.keys.PersistentDataKey
|
||||
import com.willfp.eco.core.data.keys.PersistentDataKeyType
|
||||
import com.willfp.eco.core.integrations.placeholder.PlaceholderEntry
|
||||
import com.willfp.eco.util.NumberUtils
|
||||
import com.willfp.ecoskills.*
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.SkillObject
|
||||
import com.willfp.ecoskills.getBaseStatLevel
|
||||
import com.willfp.ecoskills.getBonusStatLevel
|
||||
import com.willfp.ecoskills.getStatLevel
|
||||
import org.bukkit.NamespacedKey
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.event.Listener
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
|
||||
abstract class Stat(
|
||||
id: String
|
||||
|
||||
@@ -3,19 +3,6 @@
|
||||
# by Auxilor
|
||||
#
|
||||
|
||||
|
||||
# EcoSkills now uses eco's data storage system, this section will be removed in the future
|
||||
# This exists purely to be able to migrate player data
|
||||
# Go to /plugins/eco/config.yml to change MySQL settings
|
||||
mysql:
|
||||
migrated: false # Internal value - DO NOT CHANGE, YOU RISK LOSING PLAYER DATA
|
||||
enabled: false # Set to false, data.yml will be used instead.
|
||||
host: localhost
|
||||
port: 3306
|
||||
database: database
|
||||
user: username
|
||||
password: passy
|
||||
|
||||
gui:
|
||||
rows: 6
|
||||
|
||||
@@ -319,6 +306,9 @@ damage-indicators:
|
||||
format:
|
||||
normal: "&7%damage%"
|
||||
crit: "&f✧ <gradient:#f953c6>%damage%</gradient:#b91d73> &f✧"
|
||||
healing:
|
||||
enabled: true
|
||||
format: "&a+%damage%"
|
||||
max-x-offset: 0.6
|
||||
max-y-offset: 0.6
|
||||
max-z-offset: 0.6
|
||||
@@ -328,7 +318,19 @@ commands:
|
||||
# If displayname (including rank) should be used
|
||||
use-display-name: true
|
||||
|
||||
autosave:
|
||||
ticks: 20000 # The amount of ticks between autosaves
|
||||
log: true # If auto-save messages should be sent to console
|
||||
async: false # If saves should be performed asynchronously. May cause bugs without MySQL
|
||||
# Everything below this line is legacy configuration
|
||||
# Don't touch it - it will be removed soon.
|
||||
|
||||
# EcoSkills now uses eco's data storage system, this section will be removed in the future
|
||||
# This exists purely to be able to migrate player data
|
||||
# Go to /plugins/eco/config.yml to change MySQL settings
|
||||
|
||||
# If you didn't use EcoSkills before version 1.10.0 then ignore this.
|
||||
mysql:
|
||||
migrated: false # Internal value - DO NOT CHANGE, YOU RISK LOSING PLAYER DATA
|
||||
enabled: false # Set to false, data.yml will be used instead.
|
||||
host: localhost
|
||||
port: 3306
|
||||
database: database
|
||||
user: username
|
||||
password: passy
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
version = 1.11.3
|
||||
version = 1.11.6
|
||||
plugin-name = EcoSkills
|
||||
Reference in New Issue
Block a user