mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 13:16:45 +01:00
Fix wiki links being outdated
This commit is contained in:
parent
ffc6061f8b
commit
4d98d25215
@ -1,4 +1,6 @@
|
|||||||
Version 2.2.006
|
Version 2.2.006
|
||||||
|
Updated outdated wiki URLs in commands to point to the new wiki
|
||||||
|
Removed the msg about skills being migrated to a new system when using /mmoinfo command
|
||||||
Added new config custom_item_support.yml
|
Added new config custom_item_support.yml
|
||||||
Added setting to disable repair on items with custom models, this is not on by default
|
Added setting to disable repair on items with custom models, this is not on by default
|
||||||
Added new locale entry 'Anvil.Repair.Reject.CustomModelData'
|
Added new locale entry 'Anvil.Repair.Reject.CustomModelData'
|
||||||
@ -9,6 +11,7 @@ Version 2.2.006
|
|||||||
This update adds a new config file to allow server owners to disable repair or salvage on items with custom models,
|
This update adds a new config file to allow server owners to disable repair or salvage on items with custom models,
|
||||||
This prevention mechanism is not enabled by default, change the settings in custom_item_support.yml if you want to enable it.
|
This prevention mechanism is not enabled by default, change the settings in custom_item_support.yml if you want to enable it.
|
||||||
This feature is off by default for now to keep compatibility with existing servers, but it may be enabled by default in the future if feedback suggests it should be.
|
This feature is off by default for now to keep compatibility with existing servers, but it may be enabled by default in the future if feedback suggests it should be.
|
||||||
|
As a reminder, anyone can update the wiki by clicking on the "edit on github" link on various pages, this will take you to the wiki's source code on GitHub, submit a PR to make changes
|
||||||
|
|
||||||
Version 2.2.005
|
Version 2.2.005
|
||||||
Fixed a bug where certain skills such as Dodge/Arrow Deflect had no skill cap and would continue improving forever
|
Fixed a bug where certain skills such as Dodge/Arrow Deflect had no skill cap and would continue improving forever
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands.skills;
|
package com.gmail.nossr50.commands.skills;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||||
import com.gmail.nossr50.listeners.InteractionManager;
|
|
||||||
import com.gmail.nossr50.locale.LocaleLoader;
|
import com.gmail.nossr50.locale.LocaleLoader;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
@ -29,14 +28,11 @@ public class MmoInfoCommand implements TabExecutor {
|
|||||||
*/
|
*/
|
||||||
if(commandSender instanceof Player player)
|
if(commandSender instanceof Player player)
|
||||||
{
|
{
|
||||||
if(args.length < 1)
|
if(args == null || args.length < 1 || args[0] == null || args[0].isEmpty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if(Permissions.mmoinfo(player))
|
if(Permissions.mmoinfo(player))
|
||||||
{
|
{
|
||||||
if(args == null || args[0] == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if(args[0].equalsIgnoreCase( "???"))
|
if(args[0].equalsIgnoreCase( "???"))
|
||||||
{
|
{
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
|
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
|
||||||
@ -44,14 +40,15 @@ public class MmoInfoCommand implements TabExecutor {
|
|||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
|
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Mystery"));
|
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Mystery"));
|
||||||
return true;
|
return true;
|
||||||
} else if(InteractionManager.getAbstractByName(args[0]) != null || mcMMO.p.getSkillTools().EXACT_SUBSKILL_NAMES.contains(args[0]))
|
|
||||||
{
|
|
||||||
displayInfo(player, args[0]);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Not a real skill
|
final SubSkillType subSkillType = matchSubSkill(args[0]);
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.NoMatch"));
|
if (subSkillType != null) {
|
||||||
|
displayInfo(player, subSkillType);
|
||||||
|
} else {
|
||||||
|
//Not a real skill
|
||||||
|
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.NoMatch"));
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -59,6 +56,16 @@ public class MmoInfoCommand implements TabExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SubSkillType matchSubSkill(String name) {
|
||||||
|
for(SubSkillType subSkillType : SubSkillType.values())
|
||||||
|
{
|
||||||
|
if(subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(name)
|
||||||
|
|| subSkillType.name().equalsIgnoreCase(name))
|
||||||
|
return subSkillType;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
@ -67,20 +74,13 @@ public class MmoInfoCommand implements TabExecutor {
|
|||||||
return ImmutableList.of();
|
return ImmutableList.of();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayInfo(Player player, String subSkillName)
|
private void displayInfo(Player player, SubSkillType subSkillType)
|
||||||
{
|
{
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
|
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", subSkillName));
|
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", subSkillType.getLocaleName()));
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
|
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
|
||||||
player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.OldSkill"));
|
|
||||||
|
|
||||||
for(SubSkillType subSkillType : SubSkillType.values())
|
|
||||||
{
|
|
||||||
if(subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(subSkillName))
|
|
||||||
subSkillName = subSkillType.getWikiName(subSkillType.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
//Send Player Wiki Link
|
//Send Player Wiki Link
|
||||||
TextComponentFactory.sendPlayerSubSkillWikiLink(player, subSkillName);
|
TextComponentFactory.sendPlayerSubSkillWikiLink(player, subSkillType.getLocaleName(), subSkillType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -213,35 +213,12 @@ public enum SubSkillType {
|
|||||||
return endResult.toString();
|
return endResult.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getWikiName(String subSkillName) {
|
public String getWikiUrl() {
|
||||||
/*
|
// remove the text before the first underscore
|
||||||
* Find where to begin our substring (after the prefix)
|
int subStringIndex = getSubStringIndex(name());
|
||||||
*/
|
String afterPrefix = name().substring(subStringIndex);
|
||||||
StringBuilder endResult = new StringBuilder();
|
// replace _ or spaces with -
|
||||||
int subStringIndex = getSubStringIndex(subSkillName);
|
return afterPrefix.replace("_", "-").replace(" ", "-").toLowerCase(Locale.ENGLISH);
|
||||||
|
|
||||||
/*
|
|
||||||
* Split the string up so we can capitalize each part
|
|
||||||
*/
|
|
||||||
String subskillNameWithoutPrefix = subSkillName.substring(subStringIndex);
|
|
||||||
if(subskillNameWithoutPrefix.contains("_"))
|
|
||||||
{
|
|
||||||
String[] splitStrings = subskillNameWithoutPrefix.split("_");
|
|
||||||
|
|
||||||
for(int i = 0; i < splitStrings.length; i++)
|
|
||||||
{
|
|
||||||
if(i+1 >= splitStrings.length)
|
|
||||||
endResult.append(StringUtils.getCapitalized(splitStrings[i]));
|
|
||||||
else {
|
|
||||||
endResult.append(StringUtils.getCapitalized(splitStrings[i]));
|
|
||||||
endResult.append("_");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
endResult.append(StringUtils.getCapitalized(subskillNameWithoutPrefix));
|
|
||||||
}
|
|
||||||
|
|
||||||
return endResult.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -34,8 +34,6 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import static java.util.Objects.requireNonNull;
|
|
||||||
|
|
||||||
public final class SkillUtils {
|
public final class SkillUtils {
|
||||||
/**
|
/**
|
||||||
* This is a static utility class, therefore we don't want any instances of
|
* This is a static utility class, therefore we don't want any instances of
|
||||||
|
@ -56,18 +56,23 @@ public class TextComponentFactory {
|
|||||||
return Component.text(text);
|
return Component.text(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPlayerSubSkillWikiLink(Player player, String subskillformatted) {
|
public static String getSubSkillWikiLink(SubSkillType subSkillType) {
|
||||||
|
return "https://wiki.mcmmo.org/en/skills/"
|
||||||
|
+ subSkillType.getParentSkill().toString().toLowerCase(Locale.ENGLISH) + "#"
|
||||||
|
+ subSkillType.getWikiUrl().toLowerCase(Locale.ENGLISH);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendPlayerSubSkillWikiLink(Player player, String subskillformatted, SubSkillType subSkillType) {
|
||||||
if (!mcMMO.p.getGeneralConfig().getUrlLinksEnabled())
|
if (!mcMMO.p.getGeneralConfig().getUrlLinksEnabled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
TextComponent.Builder wikiLinkComponent = Component.text().content(LocaleLoader.getString("Overhaul.mcMMO.MmoInfo.Wiki"));
|
TextComponent.Builder wikiLinkComponent = Component.text().content(LocaleLoader.getString("Overhaul.mcMMO.MmoInfo.Wiki"));
|
||||||
wikiLinkComponent.decoration(TextDecoration.UNDERLINED, true);
|
wikiLinkComponent.decoration(TextDecoration.UNDERLINED, true);
|
||||||
|
|
||||||
String wikiUrl = "https://wiki.mcmmo.org/" + subskillformatted;
|
final String subSkillWikiLink = getSubSkillWikiLink(subSkillType);
|
||||||
|
wikiLinkComponent.clickEvent(ClickEvent.openUrl(subSkillWikiLink));
|
||||||
|
|
||||||
wikiLinkComponent.clickEvent(ClickEvent.openUrl(wikiUrl));
|
TextComponent.Builder componentBuilder = Component.text().content(subskillformatted).append(Component.newline()).append(Component.text(subSkillWikiLink)).color(NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, true);
|
||||||
|
|
||||||
TextComponent.Builder componentBuilder = Component.text().content(subskillformatted).append(Component.newline()).append(Component.text(wikiUrl)).color(NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, true);
|
|
||||||
|
|
||||||
wikiLinkComponent.hoverEvent(HoverEvent.showText(componentBuilder.build()));
|
wikiLinkComponent.hoverEvent(HoverEvent.showText(componentBuilder.build()));
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
|
||||||
@ -74,8 +73,9 @@ class WoodcuttingTest extends MMOTestEnvironment {
|
|||||||
woodcuttingManager.processBonusDropCheck(blockState);
|
woodcuttingManager.processBonusDropCheck(blockState);
|
||||||
|
|
||||||
// verify bonus drops were spawned
|
// verify bonus drops were spawned
|
||||||
// TODO: Can fail if triple drops happen, need to update test
|
// TODO: using at least once since triple drops can also happen
|
||||||
Mockito.verify(woodcuttingManager, Mockito.times(1)).spawnHarvestLumberBonusDrops(blockState);
|
// TODO: Change the test env to disallow triple drop in the future
|
||||||
|
Mockito.verify(woodcuttingManager, Mockito.atLeastOnce()).spawnHarvestLumberBonusDrops(blockState);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
Reference in New Issue
Block a user