mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 22:56:45 +01:00
Move this to the skill itself.
This commit is contained in:
parent
9b3ae5c729
commit
cc2c9eb21d
@ -55,13 +55,6 @@ public class McMMOPlayer {
|
|||||||
private Player player;
|
private Player player;
|
||||||
private PlayerProfile profile;
|
private PlayerProfile profile;
|
||||||
|
|
||||||
/*
|
|
||||||
* Since SkillManager isn't a "polymorphic type" we may prefer to have one field for each of our
|
|
||||||
* class inheriting from SkillManager. This would also prevent the need for casting.
|
|
||||||
* However, by using the map and the loop in the constructor
|
|
||||||
* we make sure that all class inheriting from SkillManager are instanced.
|
|
||||||
* Which solution is better, I let you decide. - bm01
|
|
||||||
*/
|
|
||||||
private final Map<SkillType, SkillManager> skillManagers = new HashMap<SkillType, SkillManager>();
|
private final Map<SkillType, SkillManager> skillManagers = new HashMap<SkillType, SkillManager>();
|
||||||
|
|
||||||
private Party party;
|
private Party party;
|
||||||
|
@ -27,6 +27,7 @@ import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
|||||||
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
@ -179,10 +180,6 @@ public enum SkillType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Color getRunescapeModeColor() {
|
|
||||||
return runescapeColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SkillType byAbility(AbilityType ability) {
|
public static SkillType byAbility(AbilityType ability) {
|
||||||
for (SkillType type : values()) {
|
for (SkillType type : values()) {
|
||||||
if (type.getAbility() == ability) {
|
if (type.getAbility() == ability) {
|
||||||
@ -200,4 +197,8 @@ public enum SkillType {
|
|||||||
public boolean getPermissions(Player player) {
|
public boolean getPermissions(Player player) {
|
||||||
return Permissions.skillEnabled(player, this);
|
return Permissions.skillEnabled(player, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void celebrateLevelUp(Player player) {
|
||||||
|
ParticleEffectUtils.fireworkParticleShower(player, runescapeColor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
package com.gmail.nossr50.listeners;
|
package com.gmail.nossr50.listeners;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
|
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
|
||||||
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
|
|
||||||
|
|
||||||
public class SelfListener implements Listener {
|
public class SelfListener implements Listener {
|
||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
@ -16,17 +14,8 @@ public class SelfListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tier = Config.getInstance().getLevelUpEffectsTier();
|
if ((event.getSkillLevel() % Config.getInstance().getLevelUpEffectsTier()) == 0) {
|
||||||
|
event.getSkill().celebrateLevelUp(event.getPlayer());
|
||||||
if (tier <= 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
float skillValue = event.getSkillLevel();
|
|
||||||
|
|
||||||
if ((skillValue % tier) == 0) {
|
|
||||||
ParticleEffectUtils.runescapeModeCelebration(player, event.getSkill());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,6 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.meta.FireworkMeta;
|
import org.bukkit.inventory.meta.FireworkMeta;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
||||||
|
|
||||||
public final class ParticleEffectUtils {
|
public final class ParticleEffectUtils {
|
||||||
|
|
||||||
@ -80,11 +79,7 @@ public final class ParticleEffectUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void runescapeModeCelebration(Player player, SkillType skill) {
|
public static void fireworkParticleShower(Player player, Color color) {
|
||||||
fireworkParticleShower(player, skill.getRunescapeModeColor());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void fireworkParticleShower(Player player, Color color) {
|
|
||||||
Location location = player.getLocation();
|
Location location = player.getLocation();
|
||||||
location.setY(location.getY() + (player.isInsideVehicle() ? 1.0 : -1.0));
|
location.setY(location.getY() + (player.isInsideVehicle() ? 1.0 : -1.0));
|
||||||
location.setPitch(-90);
|
location.setPitch(-90);
|
||||||
|
Loading…
Reference in New Issue
Block a user