mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-07-17 13:04:42 +02:00
More work on Xbows/Tridents
This commit is contained in:
@ -34,6 +34,7 @@ public class CrossbowsCommand extends SkillCommand {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canSSG) {
|
||||
messages.add("Super Shotgun");
|
||||
//TODO: Implement SSG
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,53 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.skills.RankUtils;
|
||||
import com.gmail.nossr50.util.text.TextComponentFactory;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TridentsCommand extends SkillCommand {
|
||||
|
||||
private boolean canTridentsSuper;
|
||||
|
||||
public TridentsCommand() {
|
||||
super(PrimarySkillType.TRIDENTS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
// TODO: Implement data calculations
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void permissionsCheck(Player player) {
|
||||
canTridentsSuper = RankUtils.hasUnlockedSubskill(player, SubSkillType.TRIDENTS_TRIDENTS_SUPER_ABILITY)
|
||||
&& Permissions.superShotgun(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canTridentsSuper) {
|
||||
messages.add("Tridents Super Ability");
|
||||
//TODO: Implement SSG
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Component> getTextComponents(Player player) {
|
||||
List<Component> textComponents = new ArrayList<>();
|
||||
|
||||
TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.TRIDENTS);
|
||||
|
||||
return textComponents;
|
||||
}
|
||||
}
|
@ -1255,7 +1255,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
||||
// Acrobatics - Unused
|
||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.BLAST_MINING, COOLDOWN_BLAST_MINING, username);
|
||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.SUPER_SHOTGUN, COOLDOWN_SUPER_SHOTGUN, username);
|
||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.TRIDENT_ABILITY, COOLDOWN_TRIDENTS, username);
|
||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.TRIDENTS_SUPER_ABILITY, COOLDOWN_TRIDENTS, username);
|
||||
|
||||
UUID uuid;
|
||||
try {
|
||||
|
@ -96,6 +96,9 @@ public enum SubSkillType {
|
||||
TAMING_SHOCK_PROOF(1),
|
||||
TAMING_THICK_FUR(1),
|
||||
|
||||
/* Tridents */
|
||||
TRIDENTS_TRIDENTS_SUPER_ABILITY(1),
|
||||
|
||||
/* Unarmed */
|
||||
UNARMED_ARROW_DEFLECT(1),
|
||||
UNARMED_BERSERK(1),
|
||||
|
@ -72,7 +72,7 @@ public enum SuperAbilityType {
|
||||
"Crossbows.Skills.SSG.Refresh",
|
||||
null,
|
||||
"Crossbows.SubSkill.SuperShotgun.Name"),
|
||||
TRIDENT_ABILITY(
|
||||
TRIDENTS_SUPER_ABILITY(
|
||||
"Tridents.Skills.TA.On",
|
||||
"Tridents.Skills.TA.Off",
|
||||
"Tridents.Skills.TA.Other.On",
|
||||
@ -188,34 +188,20 @@ public enum SuperAbilityType {
|
||||
* @return true if the player has permissions, false otherwise
|
||||
*/
|
||||
public boolean getPermissions(Player player) {
|
||||
switch (this) {
|
||||
case BERSERK:
|
||||
return Permissions.berserk(player);
|
||||
|
||||
case BLAST_MINING:
|
||||
return Permissions.remoteDetonation(player);
|
||||
|
||||
case GIGA_DRILL_BREAKER:
|
||||
return Permissions.gigaDrillBreaker(player);
|
||||
|
||||
case GREEN_TERRA:
|
||||
return Permissions.greenTerra(player);
|
||||
|
||||
case SERRATED_STRIKES:
|
||||
return Permissions.serratedStrikes(player);
|
||||
|
||||
case SKULL_SPLITTER:
|
||||
return Permissions.skullSplitter(player);
|
||||
|
||||
case SUPER_BREAKER:
|
||||
return Permissions.superBreaker(player);
|
||||
|
||||
case TREE_FELLER:
|
||||
return Permissions.treeFeller(player);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return switch (this) {
|
||||
case BERSERK -> Permissions.berserk(player);
|
||||
case BLAST_MINING -> Permissions.remoteDetonation(player);
|
||||
case GIGA_DRILL_BREAKER -> Permissions.gigaDrillBreaker(player);
|
||||
case GREEN_TERRA -> Permissions.greenTerra(player);
|
||||
case SERRATED_STRIKES -> Permissions.serratedStrikes(player);
|
||||
case SKULL_SPLITTER -> Permissions.skullSplitter(player);
|
||||
case SUPER_BREAKER -> Permissions.superBreaker(player);
|
||||
case SUPER_SHOTGUN -> Permissions.superShotgun(player);
|
||||
case TREE_FELLER -> Permissions.treeFeller(player);
|
||||
case TRIDENTS_SUPER_ABILITY -> Permissions.tridentsSuper(player);
|
||||
default ->
|
||||
throw new RuntimeException("Unhandled SuperAbilityType in getPermissions(), devs need to add definition for " + this + "!");
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -227,6 +227,7 @@ public final class Permissions {
|
||||
public static boolean treeFeller(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.woodcutting.treefeller"); }
|
||||
/* CROSSBOWS */
|
||||
public static boolean superShotgun(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.crossbows.supershotgun"); }
|
||||
public static boolean tridentsSuper(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.tridents.superability"); }
|
||||
|
||||
/*
|
||||
* PARTY
|
||||
|
@ -180,7 +180,7 @@ public class SkillTools {
|
||||
case SERRATED_STRIKES -> PrimarySkillType.SWORDS;
|
||||
case GIGA_DRILL_BREAKER -> PrimarySkillType.EXCAVATION;
|
||||
case SUPER_SHOTGUN -> PrimarySkillType.CROSSBOWS;
|
||||
case TRIDENT_ABILITY -> PrimarySkillType.TRIDENTS;
|
||||
case TRIDENTS_SUPER_ABILITY -> PrimarySkillType.TRIDENTS;
|
||||
default ->
|
||||
throw new InvalidSkillException("No parent defined for super ability! " + superAbilityType.toString());
|
||||
};
|
||||
|
Reference in New Issue
Block a user