mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-12-17 14:28:46 +01:00
Spears (wip pt 1)
This commit is contained in:
@@ -73,7 +73,7 @@ public class AcrobaticsCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.ACROBATICS);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -92,7 +92,7 @@ public class AlchemyCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.ALCHEMY);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -93,7 +93,7 @@ public class ArcheryCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.ARCHERY);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -119,7 +119,7 @@ public class AxesCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
final List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.AXES);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -68,7 +68,7 @@ public class CrossbowsCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.CROSSBOWS);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -71,7 +71,7 @@ public class ExcavationCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.EXCAVATION);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -185,7 +185,7 @@ public class FishingCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.FISHING);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -187,7 +187,7 @@ public class HerbalismCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.HERBALISM);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -77,7 +77,7 @@ public class MacesCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.MACES);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -144,7 +144,7 @@ public class MiningCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.MINING);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -134,7 +134,7 @@ public class RepairCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.REPAIR);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -72,7 +72,7 @@ public class SalvageCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.SALVAGE);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -97,7 +97,7 @@ public class SmeltingCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.SMELTING);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
|
||||
import static com.gmail.nossr50.datatypes.skills.SubSkillType.SPEARS_SPEARS_LIMIT_BREAK;
|
||||
import static com.gmail.nossr50.util.text.TextComponentFactory.appendSubSkillTextComponents;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||
import com.gmail.nossr50.util.skills.SkillUtils;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class SpearsCommand extends SkillCommand {
|
||||
|
||||
|
||||
public SpearsCommand() {
|
||||
super(PrimarySkillType.SPEARS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance,
|
||||
boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (SkillUtils.canUseSubskill(player, SPEARS_SPEARS_LIMIT_BREAK)) {
|
||||
messages.add(getStatMessage(SPEARS_SPEARS_LIMIT_BREAK,
|
||||
String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player,
|
||||
SPEARS_SPEARS_LIMIT_BREAK, 1000))));
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
appendSubSkillTextComponents(player, textComponents, PrimarySkillType.SPEARS);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
||||
@@ -22,8 +22,8 @@ public class SwordsCommand extends SkillCommand {
|
||||
private String serratedStrikesLengthEndurance;
|
||||
|
||||
private String rupturePureTickDamageAgainstPlayers, rupturePureTickDamageAgainstMobs,
|
||||
ruptureExplosionDamageAgainstPlayers, ruptureExplosionDamageAgainstMobs,
|
||||
ruptureLengthSecondsAgainstPlayers, ruptureLengthSecondsAgainstMobs, ruptureChanceToApply, ruptureChanceToApplyLucky;
|
||||
ruptureLengthSecondsAgainstPlayers, ruptureLengthSecondsAgainstMobs,
|
||||
ruptureChanceToApply, ruptureChanceToApplyLucky;
|
||||
|
||||
private boolean canCounter;
|
||||
private boolean canSerratedStrike;
|
||||
@@ -56,11 +56,6 @@ public class SwordsCommand extends SkillCommand {
|
||||
rupturePureTickDamageAgainstMobs = String.valueOf(
|
||||
mcMMO.p.getAdvancedConfig().getRuptureTickDamage(false, ruptureRank));
|
||||
|
||||
ruptureExplosionDamageAgainstPlayers = String.valueOf(
|
||||
mcMMO.p.getAdvancedConfig().getRuptureExplosionDamage(true, ruptureRank));
|
||||
ruptureExplosionDamageAgainstMobs = String.valueOf(
|
||||
mcMMO.p.getAdvancedConfig().getRuptureExplosionDamage(false, ruptureRank));
|
||||
|
||||
ruptureChanceToApply =
|
||||
mcMMO.p.getAdvancedConfig().getRuptureChanceToApplyOnHit(ruptureRank) + "%";
|
||||
ruptureChanceToApplyLucky = String.valueOf(
|
||||
@@ -105,7 +100,6 @@ public class SwordsCommand extends SkillCommand {
|
||||
|
||||
messages.add(LocaleLoader.getString("Swords.SubSkill.Rupture.Stat.TickDamage",
|
||||
rupturePureTickDamageAgainstPlayers, rupturePureTickDamageAgainstMobs));
|
||||
// messages.add(LocaleLoader.getString("Swords.SubSkill.Rupture.Stat.ExplosionDamage", ruptureExplosionDamageAgainstPlayers, ruptureExplosionDamageAgainstMobs));
|
||||
|
||||
messages.add(LocaleLoader.getString("Swords.Combat.Rupture.Note.Update.One"));
|
||||
}
|
||||
@@ -134,7 +128,7 @@ public class SwordsCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.SWORDS);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -115,7 +115,7 @@ public class TamingCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, this.skill);
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents, this.skill);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public class TridentsCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.TRIDENTS);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -136,7 +136,7 @@ public class UnarmedCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.UNARMED);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -123,7 +123,7 @@ public class WoodcuttingCommand extends SkillCommand {
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents,
|
||||
TextComponentFactory.appendSubSkillTextComponents(player, textComponents,
|
||||
PrimarySkillType.WOODCUTTING);
|
||||
|
||||
return textComponents;
|
||||
|
||||
@@ -424,10 +424,6 @@ public class GeneralConfig extends BukkitConfig {
|
||||
return config.getBoolean("MySQL.Server.SSL", true);
|
||||
}
|
||||
|
||||
public boolean getMySQLDebug() {
|
||||
return config.getBoolean("MySQL.Debug", false);
|
||||
}
|
||||
|
||||
public boolean getMySQLPublicKeyRetrieval() {
|
||||
return config.getBoolean("MySQL.Server.allowPublicKeyRetrieval", true);
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ public enum PrimarySkillType {
|
||||
REPAIR,
|
||||
SALVAGE,
|
||||
SMELTING,
|
||||
SPEARS,
|
||||
SWORDS,
|
||||
TAMING,
|
||||
TRIDENTS,
|
||||
|
||||
@@ -83,6 +83,9 @@ public enum SubSkillType {
|
||||
SMELTING_SECOND_SMELT,
|
||||
SMELTING_UNDERSTANDING_THE_ART(8),
|
||||
|
||||
/* Spears */
|
||||
SPEARS_SPEARS_LIMIT_BREAK(10),
|
||||
|
||||
/* Swords */
|
||||
SWORDS_COUNTER_ATTACK(1),
|
||||
SWORDS_RUPTURE(4),
|
||||
|
||||
@@ -93,6 +93,13 @@ public enum SuperAbilityType {
|
||||
"Placeholder",
|
||||
"Placeholder",
|
||||
"Placeholder"),
|
||||
SPEARS_SUPER_ABILITY(
|
||||
"Placeholder",
|
||||
"Placeholder",
|
||||
"Placeholder",
|
||||
"Placeholder",
|
||||
"Placeholder",
|
||||
"Placeholder"),
|
||||
|
||||
/**
|
||||
* Has cooldown - but has to share a skill with Super Breaker, so needs special treatment
|
||||
@@ -216,8 +223,8 @@ public enum SuperAbilityType {
|
||||
case SUPER_BREAKER -> Permissions.superBreaker(player);
|
||||
case TREE_FELLER -> Permissions.treeFeller(player);
|
||||
// TODO: once implemented, return permissions for the following abilities
|
||||
case EXPLOSIVE_SHOT, TRIDENTS_SUPER_ABILITY, SUPER_SHOTGUN, MACES_SUPER_ABILITY ->
|
||||
false;
|
||||
case EXPLOSIVE_SHOT, TRIDENTS_SUPER_ABILITY, SUPER_SHOTGUN, MACES_SUPER_ABILITY,
|
||||
SPEARS_SUPER_ABILITY -> false;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.gmail.nossr50.skills.spears;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
|
||||
public class SpearsManager extends SkillManager {
|
||||
public SpearsManager(McMMOPlayer mmoPlayer) {
|
||||
super(mmoPlayer, PrimarySkillType.SPEARS);
|
||||
}
|
||||
}
|
||||
@@ -41,6 +41,7 @@ import com.gmail.nossr50.commands.skills.MmoInfoCommand;
|
||||
import com.gmail.nossr50.commands.skills.RepairCommand;
|
||||
import com.gmail.nossr50.commands.skills.SalvageCommand;
|
||||
import com.gmail.nossr50.commands.skills.SmeltingCommand;
|
||||
import com.gmail.nossr50.commands.skills.SpearsCommand;
|
||||
import com.gmail.nossr50.commands.skills.SwordsCommand;
|
||||
import com.gmail.nossr50.commands.skills.TamingCommand;
|
||||
import com.gmail.nossr50.commands.skills.TridentsCommand;
|
||||
@@ -101,6 +102,7 @@ public final class CommandRegistrationManager {
|
||||
case REPAIR -> command.setExecutor(new RepairCommand());
|
||||
case SALVAGE -> command.setExecutor(new SalvageCommand());
|
||||
case SMELTING -> command.setExecutor(new SmeltingCommand());
|
||||
case SPEARS -> command.setExecutor(new SpearsCommand());
|
||||
case SWORDS -> command.setExecutor(new SwordsCommand());
|
||||
case TAMING -> command.setExecutor(new TamingCommand());
|
||||
case TRIDENTS -> command.setExecutor(new TridentsCommand());
|
||||
|
||||
@@ -166,9 +166,20 @@ public class SkillTools {
|
||||
/*
|
||||
* Build categorized skill lists
|
||||
*/
|
||||
|
||||
// We are in a game version with Maces
|
||||
if (mcMMO.getCompatibilityManager().getMinecraftGameVersion().isAtLeast(1, 21, 0)) {
|
||||
if (mcMMO.getCompatibilityManager().getMinecraftGameVersion().isAtLeast(1, 21, 11)) {
|
||||
// We are in a game version with Spears and Maces
|
||||
COMBAT_SKILLS = ImmutableList.of(
|
||||
PrimarySkillType.ARCHERY,
|
||||
PrimarySkillType.AXES,
|
||||
PrimarySkillType.CROSSBOWS,
|
||||
PrimarySkillType.MACES,
|
||||
PrimarySkillType.SWORDS,
|
||||
PrimarySkillType.SPEARS,
|
||||
PrimarySkillType.TAMING,
|
||||
PrimarySkillType.TRIDENTS,
|
||||
PrimarySkillType.UNARMED);
|
||||
} else if (mcMMO.getCompatibilityManager().getMinecraftGameVersion().isAtLeast(1, 21, 0)) {
|
||||
// We are in a game version with Maces
|
||||
COMBAT_SKILLS = ImmutableList.of(
|
||||
PrimarySkillType.ARCHERY,
|
||||
PrimarySkillType.AXES,
|
||||
@@ -225,6 +236,7 @@ public class SkillTools {
|
||||
case TRIDENTS_SUPER_ABILITY -> PrimarySkillType.TRIDENTS;
|
||||
case EXPLOSIVE_SHOT -> PrimarySkillType.ARCHERY;
|
||||
case MACES_SUPER_ABILITY -> PrimarySkillType.MACES;
|
||||
case SPEARS_SUPER_ABILITY -> PrimarySkillType.SPEARS;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -544,7 +544,25 @@ public class TextComponentFactory {
|
||||
componentBuilder.append(Component.newline());
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use appendSubSkillTextComponents(Player, List<Component>, PrimarySkillType)
|
||||
* @param player target player
|
||||
* @param textComponents list to append to
|
||||
* @param parentSkill the parent skill
|
||||
*/
|
||||
@Deprecated(since = "2.2.046", forRemoval = true)
|
||||
public static void getSubSkillTextComponents(Player player, List<Component> textComponents,
|
||||
PrimarySkillType parentSkill) {
|
||||
appendSubSkillTextComponents(player, textComponents, parentSkill);
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends sub-skill text components to a list for a given parent skill
|
||||
* @param player target player
|
||||
* @param textComponents list to append to
|
||||
* @param parentSkill the parent skill
|
||||
*/
|
||||
public static void appendSubSkillTextComponents(Player player, List<Component> textComponents,
|
||||
PrimarySkillType parentSkill) {
|
||||
for (SubSkillType subSkillType : SubSkillType.values()) {
|
||||
if (subSkillType.getParentSkill() == parentSkill) {
|
||||
|
||||
Reference in New Issue
Block a user