Compare commits

...

4 Commits

Author SHA1 Message Date
nossr50
bcf0f06fb9 update changelog 2025-05-06 13:18:52 -07:00
Griffen
2ba67d1393
Adds locale entries for commands in "/mcmmo help" (#5137)
* Fixed issue where you chuld not modify the color of the commands in the main help command

* Changed the headers for more consistency
2025-05-06 13:10:09 -07:00
Josh Taylor
a8976ae953
fix spectral arrows (#5173) 2025-05-06 13:08:09 -07:00
Tommm
f3a2199fd6
Added spawners to illegal drops for blast mining (#5178) 2025-05-06 13:07:15 -07:00
6 changed files with 49 additions and 44 deletions

View File

@ -1,5 +1,8 @@
Version 2.2.036
Fixed a bug where Chimaera Wing could cause an exception when used
Fixed bug where Mob Spawners could drop in Blast Mining (thanks TomBock)
Fixed Spectral Arrows not granting XP for Archery or Crossbows (thanks broccolai)
Added locale strings for /mcmmo help command (thanks Griffeng)
Version 2.2.035
Support for new additions from Minecraft 1.21.5

View File

@ -57,16 +57,16 @@ public class McmmoCommand implements CommandExecutor {
}
private void displayGeneralCommands(CommandSender sender) {
sender.sendMessage(ChatColor.DARK_AQUA + " /mcstats " + LocaleLoader.getString("Commands.Stats"));
sender.sendMessage(ChatColor.DARK_AQUA + " /<skill>" + LocaleLoader.getString("Commands.SkillInfo"));
sender.sendMessage(ChatColor.DARK_AQUA + " /mctop " + LocaleLoader.getString("Commands.Leaderboards"));
sender.sendMessage(LocaleLoader.getString("Commands.Stats"));
sender.sendMessage(LocaleLoader.getString("Commands.SkillInfo"));
sender.sendMessage(LocaleLoader.getString("Commands.Leaderboards"));
if (Permissions.inspect(sender)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /inspect " + LocaleLoader.getString("Commands.Inspect"));
sender.sendMessage(LocaleLoader.getString("Commands.Inspect"));
}
if (Permissions.mcability(sender)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
sender.sendMessage(LocaleLoader.getString("Commands.ToggleAbility"));
}
}
@ -78,38 +78,38 @@ public class McmmoCommand implements CommandExecutor {
sender.sendMessage(LocaleLoader.getString("Commands.Other"));
if (Permissions.skillreset(sender)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
sender.sendMessage(LocaleLoader.getString("Commands.Reset"));
}
if (Permissions.mmoedit(sender)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
sender.sendMessage(LocaleLoader.getString("Commands.mmoedit"));
}
if (Permissions.adminChat(sender)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
sender.sendMessage(LocaleLoader.getString("Commands.AdminToggle"));
}
if (Permissions.mcgod(sender)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /mcgod " + LocaleLoader.getString("Commands.mcgod"));
sender.sendMessage(LocaleLoader.getString("Commands.mcgod"));
}
}
private void displayPartyCommands(CommandSender sender) {
if (Permissions.party(sender)) {
sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party create <" + LocaleLoader.getString("Commands.Usage.PartyName") + "> " + LocaleLoader.getString("Commands.Party1"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party join <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party2"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party quit " + LocaleLoader.getString("Commands.Party.Quit"));
sender.sendMessage(LocaleLoader.getString("Commands.Party1"));
sender.sendMessage(LocaleLoader.getString("Commands.Party2"));
sender.sendMessage(LocaleLoader.getString("Commands.Party.Quit"));
if (Permissions.partyChat(sender)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
sender.sendMessage(LocaleLoader.getString("Commands.Party.Toggle"));
}
sender.sendMessage(ChatColor.DARK_AQUA + " /party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite"));
sender.sendMessage(ChatColor.DARK_AQUA + " /party accept " + LocaleLoader.getString("Commands.Party.Accept"));
sender.sendMessage(LocaleLoader.getString("Commands.Party.Invite"));
sender.sendMessage(LocaleLoader.getString("Commands.Party.Accept"));
if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
sender.sendMessage(ChatColor.DARK_AQUA + " /party teleport <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Teleport"));
sender.sendMessage(LocaleLoader.getString("Commands.Party.Teleport"));
}
}
}

View File

@ -274,14 +274,15 @@ public class MiningManager extends SkillManager {
/**
* Checks if it would be illegal (in vanilla) to obtain the block
* Certain things should never drop (such as budding_amethyst and infested blocks)
* Certain things should never drop (such as budding_amethyst, infested blocks or spawners)
*
* @param material target material
* @return true if it's not legal to get the block through normal gameplay
*/
public boolean isDropIllegal(@NotNull Material material) {
return isInfestedBlock(material.getKey().getKey())
|| material.getKey().getKey().equalsIgnoreCase(BUDDING_AMETHYST);
|| material.getKey().getKey().equalsIgnoreCase(BUDDING_AMETHYST)
|| material == Material.SPAWNER;
}
/**

View File

@ -181,7 +181,7 @@ public final class CombatUtils {
}
private static void processCrossbowsCombat(@NotNull LivingEntity target, @NotNull Player player,
@NotNull EntityDamageByEntityEvent event, @NotNull Arrow arrow) {
@NotNull EntityDamageByEntityEvent event, @NotNull AbstractArrow arrow) {
double initialDamage = event.getDamage();
final McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
@ -384,7 +384,7 @@ public final class CombatUtils {
}
private static void processArcheryCombat(@NotNull LivingEntity target, @NotNull Player player,
@NotNull EntityDamageByEntityEvent event, @NotNull Arrow arrow) {
@NotNull EntityDamageByEntityEvent event, @NotNull AbstractArrow arrow) {
double initialDamage = event.getDamage();
final McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
@ -566,7 +566,7 @@ public final class CombatUtils {
}
}
}
} else if (painSource instanceof Arrow arrow) {
} else if (painSource instanceof AbstractArrow arrow) {
ProjectileSource projectileSource = arrow.getShooter();
boolean isCrossbow = isCrossbowProjectile(arrow);
if (projectileSource instanceof Player player) {
@ -1055,7 +1055,7 @@ public final class CombatUtils {
*
* @param arrow the projectile
*/
public static void delayArrowMetaCleanup(@NotNull Arrow arrow) {
public static void delayArrowMetaCleanup(@NotNull AbstractArrow arrow) {
mcMMO.p.getFoliaLib().getScheduler().runLater(() -> ProjectileUtils.cleanupProjectileMetadata(arrow), 20*120);
}
}

View File

@ -3,6 +3,7 @@ package com.gmail.nossr50.util.skills;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.MetadataConstants;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.AbstractArrow;
import org.bukkit.entity.Arrow;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.metadata.MetadataValue;
@ -32,7 +33,7 @@ public class ProjectileUtils {
*
* @param arrow projectile
*/
public static void cleanupProjectileMetadata(@NotNull Arrow arrow) {
public static void cleanupProjectileMetadata(@NotNull AbstractArrow arrow) {
ARROW_METADATA_KEYS.stream()
.filter(arrow::hasMetadata)
.forEach(key -> arrow.removeMetadata(key, mcMMO.p));
@ -61,7 +62,7 @@ public class ProjectileUtils {
});
}
public static boolean isCrossbowProjectile(@NotNull Arrow arrow) {
public static boolean isCrossbowProjectile(@NotNull AbstractArrow arrow) {
return arrow.isShotFromCrossbow()
|| arrow.hasMetadata(MetadataConstants.METADATA_KEY_CROSSBOW_PROJECTILE);
}

View File

@ -102,10 +102,10 @@ Overhaul.Name.Maces=Maces
Overhaul.Name.Unarmed=Unarmed
Overhaul.Name.Woodcutting=Woodcutting
# /mcMMO Command Style Stuff
Commands.mcc.Header=&c---[]&amcMMO Commands&c[]---
Commands.Other=&c---[]&aSPECIAL COMMANDS&c[]---
Commands.Party.Header=&c-----[]&aPARTY&c[]-----
Commands.Party.Features.Header=&c-----[]&aFEATURES&c[]-----
Commands.mcc.Header=&c[]=====[] &amcMMO Commands &c[]=====[]
Commands.Other=&c[]=====[] &aSPECIAL COMMANDS &c[]=====[]
Commands.Party.Header=&c[]=====[] &aPARTY &c[]=====[]
Commands.Party.Features.Header=&c[]=====[] &aFEATURES &c[]=====[]
# XP BAR Allows for the following variables -- {0} = Skill Level, {1} Current XP, {2} XP Needed for next level, {3} Power Level, {4} Percentage of Level
# Make sure you turn on Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained if you want the XP bar title to update every time a player gains XP!
XPBar.Template={0}
@ -660,7 +660,7 @@ Commands.Ability.On=Ability use toggled &aon
Commands.Ability.Toggle=Ability use has been toggled for &e{0}
Commands.AdminChat.Off=Admin Chat only &cOff
Commands.AdminChat.On=Admin Chat only &aOn
Commands.AdminToggle=&a- Toggle admin chat
Commands.AdminToggle=&3 /adminchat &a- Toggle admin chat
Commands.Chat.Console=*Console*
Commands.Cooldowns.Header=&6--= &amcMMO Ability Cooldowns&6 =--
Commands.Cooldowns.Row.N=\ &c{0}&f - &6{1} seconds left
@ -682,10 +682,10 @@ Commands.Healthbars.Changed.HEARTS=[mcMMO] Your healthbar display type was chang
Commands.Healthbars.Changed.BAR=[mcMMO] Your healthbar display type was changed to &eBoxes&f.
Commands.Healthbars.Changed.DISABLED=[mcMMO] Your mob healthbars have been &7disabled&f.
Commands.Healthbars.Invalid=Invalid healthbar type!
Commands.Inspect=<player> &a- View detailed player info
Commands.Inspect=&3 /inspect <player> &a- View detailed player info
Commands.Invite.Success=&aInvite sent successfully.
Commands.Leaderboards=<skill> <page> &a- Leaderboards
Commands.mcgod=&a- Toggle GodMode
Commands.Leaderboards=&3 /mctop <skill> <page> &a- Leaderboards
Commands.mcgod=&3 /mcgod &a- Toggle GodMode
Commands.mchud.Invalid=That is not a valid HUD type.
Commands.mcpurge.Success=&aThe database was successfully purged!
Commands.mcrank.Heading=&6-=PERSONAL RANKINGS=-
@ -696,7 +696,7 @@ Commands.mcrank.Unranked=&fUnranked
Commands.mcrefresh.Success={0}''s cooldowns have been refreshed.
Commands.mcremove.Success=&a{0} was successfully removed from the database!
Commands.mctop.Tip=&6Tip: Use &c/mcrank&6 to view all of your personal rankings!
Commands.mmoedit=[player] <skill> <newvalue> &a - Modify target
Commands.mmoedit=&3 /mmoedit [player] <skill> <newvalue> &a - Modify target
Commands.mmoedit.AllSkills.1=&aYour level in all skills was set to {0}!
Commands.mmoedit.Modified.1=&aYour level in {0} was set to {1}!
Commands.mmoedit.Modified.2={0} has been modified for {1}.
@ -723,13 +723,13 @@ Commands.Party.ItemShare=&7ITEM &3({0})
Commands.Party.ExpShare=&7EXP &3({0})
Commands.Party.ItemShareCategories=&8Sharing Items: &7&o{0}
Commands.Party.MembersNear=&8NEAR YOU &3{0}&8/&3{1}
Commands.Party.Accept=&a- Accept party invite
Commands.Party.Accept=&3 /party accept &a- Accept party invite
Commands.Party.Chat.Off=Party Chat only &cOff
Commands.Party.Chat.On=Party Chat only &aOn
Commands.Party.Commands=&c---[]&aPARTY COMMANDS&c[]---
Commands.Party.Invite.0=&cALERT: &aYou have received a party invite for {0} from {1}
Commands.Party.Invite.1=&eType &a/party accept&e to accept the invite
Commands.Party.Invite=&a- Send party invite
Commands.Party.Invite=&3 /party invite <player> &a- Send party invite
Commands.Party.Invite.Accepted=&aInvite Accepted. You have joined party {0}
Commands.Party.Join=&7Joined Party: {0}
Commands.Party.PartyFull=&6{0}&c is full!
@ -744,11 +744,11 @@ Commands.Party.Kick=&cYou were kicked from party &a{0}&c!
Commands.Party.Leave=&eYou have left that party
Commands.Party.Members.Header=&c-----[]&aMEMBERS&c[]-----
Commands.Party.None=&cYou are not in a party.
Commands.Party.Quit=&a- Leave your current party
Commands.Party.Teleport=&a- Teleport to party member
Commands.Party.Toggle=&a- Toggle Party Chat
Commands.Party1=&a- Create a new party
Commands.Party2=&a- Join a players party
Commands.Party.Quit=&3 /party quit &a- Leave your current party
Commands.Party.Teleport=&3 /party teleport <player> &a- Teleport to party member
Commands.Party.Toggle=&3 /party chat &a- Toggle Party Chat
Commands.Party1=&3 /party create <name> &a- Create a new party
Commands.Party2=&3 /party join <player> &a- Join a players party
Commands.Party.Alliance.Header=&c-----[]&aPARTY ALLIANCE&c[]-----
Commands.Party.Alliance.Ally=&f{0} &8IS ALLIED WITH: &f{1}
Commands.Party.Alliance.Members.Header=&c-----[]&aALLIANCE MEMBERS&c[]-----
@ -773,7 +773,7 @@ Commands.PowerLevel.Capped=&4POWER LEVEL: &a{0} &4MAX LEVEL: &e{1}
Commands.PowerLevel=&4POWER LEVEL: &a{0}
Commands.Reset.All=&aAll of your skill levels have been reset successfully.
Commands.Reset.Single=&aYour {0} skill level has been reset successfully.
Commands.Reset=&a- Reset a skill's level to 0
Commands.Reset=&3 /skillreset <skill|all> &a- Reset a skill's level to 0
Commands.Scoreboard.Clear=&3mcMMO scoreboard cleared.
Commands.Scoreboard.NoBoard=&cThe mcMMO scoreboard is not active.
Commands.Scoreboard.Keep=&3The mcMMO scoreboard will stay up until you use &a/mcscoreboard clear&3.
@ -789,9 +789,9 @@ Commands.XPBar.SettingChanged=&6XP Bar setting for &a{0}&6 is now set to &a{1}
Commands.Skill.Invalid=That is not a valid skillname!
Commands.Skill.ChildSkill=Child skills are not valid for this command!
Commands.Skill.Leaderboard=-&e-mcMMO &9{0}&e Leaderboard--
Commands.SkillInfo=&a- View detailed information about a skill
Commands.Stats=&a- View your mcMMO stats
Commands.ToggleAbility=&a- Toggle ability activation with right click
Commands.SkillInfo=&3 /<skill> &a- View detailed information about a skill
Commands.Stats=&3 /mcstats &a- View your mcMMO stats
Commands.ToggleAbility=&3 /mcability &a- Toggle ability activation with right click
Commands.Usage.0=&cProper usage is /{0}
Commands.Usage.1=&cProper usage is /{0} {1}
Commands.Usage.2=&cProper usage is /{0} {1} {2}