mirror of
https://gitlab.com/phoenix-dvpmt/mmocore.git
synced 2025-02-22 14:41:51 +01:00
Fixed a bug when logging off while in combat
This commit is contained in:
parent
71d0f7219f
commit
76b0d51b2a
@ -2,47 +2,137 @@ package net.Indyuce.mmocore.api;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class ConfigMessage {
|
||||
private final List<String> messages;
|
||||
private final String key;
|
||||
private final List<String> lines;
|
||||
private final boolean papiPlaceholders, actionbar, raw;
|
||||
|
||||
public ConfigMessage(String key) {
|
||||
messages = MMOCore.plugin.configManager.getMessage(key);
|
||||
private ConfigMessage(@NotNull String key) {
|
||||
this.key = key;
|
||||
|
||||
final Object obj = MMOCore.plugin.configManager.getMessageObject(key);
|
||||
this.lines = obj == null ? Arrays.asList("<message_not_found:'" + key + "'>") : obj instanceof List<?> ? (List<String>) obj : Arrays.asList(obj.toString());
|
||||
|
||||
// Does message include placeholders
|
||||
boolean hasPlaceholders = false;
|
||||
for (String str : lines)
|
||||
if (str.contains("%")) {
|
||||
hasPlaceholders = true;
|
||||
break;
|
||||
}
|
||||
this.papiPlaceholders = hasPlaceholders;
|
||||
|
||||
// Is message for action bar
|
||||
actionbar = !lines.isEmpty() && lines.get(0).startsWith("%");
|
||||
if (actionbar) lines.set(0, lines.get(0).substring(1));
|
||||
|
||||
// Are messages raw (JSON format)
|
||||
raw = !lines.isEmpty() && (lines.get(0).startsWith("{") || lines.get(0).startsWith("["));
|
||||
}
|
||||
|
||||
public ConfigMessage addPlaceholders(String... placeholders) {
|
||||
for (int n = 0; n < messages.size(); n++) {
|
||||
String line = messages.get(n);
|
||||
/**
|
||||
* Useful for things like indicators or specific lore lines which are
|
||||
* string tags not requiring more than one string object. If the
|
||||
* message is empty, an error string is returned. Either way,
|
||||
* the returned value is non null for better user feedback.
|
||||
*
|
||||
* @return First line of message, if it exists.
|
||||
*/
|
||||
@NotNull
|
||||
public String asLine() {
|
||||
return lines.isEmpty() ? "<message_empty_" + key + ">" : lines.get(0);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<String> getLines() {
|
||||
return lines;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ConfigMessage addPlaceholders(@NotNull Object... placeholders) {
|
||||
|
||||
for (int n = 0; n < lines.size(); n++) {
|
||||
String line = lines.get(n);
|
||||
|
||||
// Apply placeholders to string
|
||||
for (int j = 0; j < placeholders.length - 1; j += 2) {
|
||||
String placeholder = placeholders[j];
|
||||
if (line.contains("{" + placeholder + "}"))
|
||||
line = line.replace("{" + placeholder + "}", placeholders[j + 1]);
|
||||
final String placeholder = String.valueOf(placeholders[j]);
|
||||
line = line.replace("{" + placeholder + "}", String.valueOf(placeholders[j + 1]));
|
||||
}
|
||||
messages.set(n, line);
|
||||
|
||||
lines.set(n, line);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public void send(CommandSender sender) {
|
||||
messages.forEach(line -> sender.sendMessage(format(sender, line)));
|
||||
@Deprecated
|
||||
public void sendAsJSon(Player player) {
|
||||
send(player);
|
||||
}
|
||||
|
||||
public void send(Player player) {
|
||||
for (String line : lines) send(player, line);
|
||||
}
|
||||
|
||||
public void send(Collection<? extends Player> players) {
|
||||
players.forEach(player -> messages.forEach(line -> player.sendMessage(format(player, line))));
|
||||
for (Player player : players) for (String line : lines) send(player, line);
|
||||
}
|
||||
|
||||
public void sendAsJSon(Player player) {
|
||||
messages.forEach(line -> MythicLib.plugin.getVersion().getWrapper().sendJson(player, format(player, line)));
|
||||
/**
|
||||
* Sends a line of text to a target player
|
||||
*
|
||||
* @param player Player to send message to. His player
|
||||
* data is not necessarily fully loaded
|
||||
* @param messageFormat Raw/normal message to send
|
||||
*/
|
||||
private void send(@NotNull Player player, String messageFormat) {
|
||||
Validate.notNull(player, "Player cannot be null");
|
||||
|
||||
final String rawMessage = format(player, messageFormat);
|
||||
final PlayerData playerData = PlayerData.has(player) ? PlayerData.get(player) : null;
|
||||
|
||||
// Handle special case with player data+action bar
|
||||
if (playerData != null && playerData.isOnline() && actionbar) {
|
||||
playerData.displayActionBar(rawMessage, raw);
|
||||
return;
|
||||
}
|
||||
|
||||
// Normal sender
|
||||
if (this.raw) {
|
||||
if (actionbar) MythicLib.plugin.getVersion().getWrapper().sendActionBarRaw(player, rawMessage);
|
||||
else MythicLib.plugin.getVersion().getWrapper().sendJson(player, rawMessage);
|
||||
} else {
|
||||
if (actionbar)
|
||||
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(rawMessage));
|
||||
else player.sendMessage(rawMessage);
|
||||
}
|
||||
}
|
||||
|
||||
private String format(CommandSender sender, String input) {
|
||||
String str = MythicLib.plugin.parseColors(input);
|
||||
return sender instanceof Player ? MMOCore.plugin.placeholderParser.parse((OfflinePlayer) sender, str) : str;
|
||||
@NotNull
|
||||
private String format(@Nullable Player player, String input) {
|
||||
input = MythicLib.plugin.parseColors(input);
|
||||
if (!papiPlaceholders || player == null) return input; // Optimization
|
||||
return MMOCore.plugin.placeholderParser.parse(player, input);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static ConfigMessage fromKey(@NotNull String key, Object... placeholders) {
|
||||
Validate.notNull(MMOCore.plugin.configManager, "MMOCore has not finished enabling");
|
||||
final ConfigMessage message = new ConfigMessage(key);
|
||||
if (placeholders.length != 0) message.addPlaceholders(placeholders);
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.util.item.CurrencyItemBuilder;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Sound;
|
||||
@ -28,7 +29,7 @@ public class Withdraw implements Listener {
|
||||
public Withdraw(Player player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
@ -38,7 +39,7 @@ public class Withdraw implements Listener {
|
||||
return;
|
||||
|
||||
withdrawing.add(player.getUniqueId());
|
||||
MMOCore.plugin.configManager.getSimpleMessage("withdrawing").send(player);
|
||||
ConfigMessage.fromKey("withdrawing").send(player);
|
||||
Bukkit.getPluginManager().registerEvents(this, MMOCore.plugin);
|
||||
Bukkit.getScheduler().runTaskLater(MMOCore.plugin, this::close, 20 * 20);
|
||||
}
|
||||
@ -60,7 +61,7 @@ public class Withdraw implements Listener {
|
||||
if (!event.getPlayer().equals(player))
|
||||
return;
|
||||
|
||||
MMOCore.plugin.configManager.getSimpleMessage("withdraw-cancel").send(player);
|
||||
ConfigMessage.fromKey("withdraw-cancel").send(player);
|
||||
close();
|
||||
}
|
||||
|
||||
@ -75,13 +76,13 @@ public class Withdraw implements Listener {
|
||||
try {
|
||||
worth = Integer.parseInt(event.getMessage());
|
||||
} catch (Exception e) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("wrong-number", "arg", event.getMessage()).send(player);
|
||||
ConfigMessage.fromKey("wrong-number").addPlaceholders("arg", event.getMessage()).send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
int left = (int) (MMOCore.plugin.economy.getEconomy().getBalance(player) - worth);
|
||||
if (left < 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-enough-money", "left", "" + -left).send(player);
|
||||
ConfigMessage.fromKey("not-enough-money").addPlaceholders("left", -left).send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -91,7 +92,7 @@ public class Withdraw implements Listener {
|
||||
MMOCore.plugin.economy.getEconomy().withdrawPlayer(player, worth);
|
||||
withdrawAlgorythm(worth);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 1);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("withdrew", "worth", "" + worth).send(player);
|
||||
ConfigMessage.fromKey("withdrew").addPlaceholders("worth", worth).send(player);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -357,7 +357,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
|
||||
/**
|
||||
* @return If the item is unlocked by the player
|
||||
* This is used for skills that can be locked & unlocked.
|
||||
* This is used for skills that can be locked & unlocked.
|
||||
*/
|
||||
public boolean hasUnlocked(Unlockable unlockable) {
|
||||
return unlockable.isUnlockedByDefault() || unlockedItems.contains(unlockable.getUnlockNamespacedKey());
|
||||
@ -726,7 +726,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
|
||||
setLastActivity(PlayerActivity.FRIEND_REQUEST);
|
||||
FriendRequest request = new FriendRequest(this, target);
|
||||
new ConfigMessage("friend-request").addPlaceholders("player", getPlayer().getName(), "uuid", request.getUniqueId().toString()).sendAsJSon(target.getPlayer());
|
||||
ConfigMessage.fromKey("friend-request").addPlaceholders("player", getPlayer().getName(), "uuid", request.getUniqueId().toString()).send(target.getPlayer());
|
||||
MMOCore.plugin.requestManager.registerRequest(request);
|
||||
}
|
||||
|
||||
@ -757,13 +757,13 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
public void run() {
|
||||
if (!isOnline() || getPlayer().getLocation().getBlockX() != x || getPlayer().getLocation().getBlockY() != y || getPlayer().getLocation().getBlockZ() != z) {
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.WARP_CANCELLED).playTo(getPlayer());
|
||||
MMOCore.plugin.configManager.getSimpleMessage("warping-canceled").send(getPlayer());
|
||||
ConfigMessage.fromKey("warping-canceled").send(getPlayer());
|
||||
giveStellium(cost, PlayerResourceUpdateEvent.UpdateReason.USE_WAYPOINT);
|
||||
cancel();
|
||||
return;
|
||||
}
|
||||
|
||||
MMOCore.plugin.configManager.getSimpleMessage("warping-comencing", "left", String.valueOf((warpTime - t) / 20)).send(getPlayer());
|
||||
ConfigMessage.fromKey("warping-comencing", "left", String.valueOf((warpTime - t) / 20)).send(getPlayer());
|
||||
if (hasPerm || t++ >= warpTime) {
|
||||
getPlayer().teleport(target.getLocation());
|
||||
getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 20, 1, false, false));
|
||||
@ -840,7 +840,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
|
||||
// Experience hologram
|
||||
if (hologramLocation != null && isOnline())
|
||||
MMOCoreUtils.displayIndicator(hologramLocation, MMOCore.plugin.configManager.getSimpleMessage("exp-hologram", "exp", MythicLib.plugin.getMMOConfig().decimal.format(event.getExperience())).message());
|
||||
MMOCoreUtils.displayIndicator(hologramLocation, ConfigMessage.fromKey("exp-hologram", "exp", MythicLib.plugin.getMMOConfig().decimal.format(event.getExperience())).asLine());
|
||||
|
||||
experience = Math.max(0, experience + event.getExperience());
|
||||
|
||||
@ -864,7 +864,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
if (level > oldLevel) {
|
||||
Bukkit.getPluginManager().callEvent(new PlayerLevelUpEvent(this, null, oldLevel, level));
|
||||
if (isOnline()) {
|
||||
new ConfigMessage("level-up").addPlaceholders("level", String.valueOf(level)).send(getPlayer());
|
||||
ConfigMessage.fromKey("level-up").addPlaceholders("level", String.valueOf(level)).send(getPlayer());
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.LEVEL_UP).playTo(getPlayer());
|
||||
new SmallParticleEffect(getPlayer(), Particle.SPELL_INSTANT);
|
||||
}
|
||||
@ -1017,7 +1017,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
|
||||
/**
|
||||
* @return If the PlayerEnterCastingModeEvent successfully put the player
|
||||
* into casting mode, otherwise if the event is cancelled, returns false.
|
||||
* into casting mode, otherwise if the event is cancelled, returns false.
|
||||
*/
|
||||
public boolean setSkillCasting() {
|
||||
Validate.isTrue(!isCasting(), "Player already in casting mode");
|
||||
@ -1036,7 +1036,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
|
||||
/**
|
||||
* @return If player successfully left skill casting i.e the Bukkit
|
||||
* event has not been cancelled
|
||||
* event has not been cancelled
|
||||
*/
|
||||
public boolean leaveSkillCasting() {
|
||||
return leaveSkillCasting(false);
|
||||
@ -1045,7 +1045,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
/**
|
||||
* @param skipEvent Skip firing the exit event
|
||||
* @return If player successfully left skill casting i.e the Bukkit
|
||||
* event has not been cancelled
|
||||
* event has not been cancelled
|
||||
*/
|
||||
public boolean leaveSkillCasting(boolean skipEvent) {
|
||||
Validate.isTrue(isCasting(), "Player not in casting mode");
|
||||
@ -1063,8 +1063,13 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
}
|
||||
|
||||
public void displayActionBar(String message) {
|
||||
displayActionBar(message, false);
|
||||
}
|
||||
|
||||
public void displayActionBar(String message, boolean raw) {
|
||||
setLastActivity(PlayerActivity.ACTION_BAR_MESSAGE);
|
||||
getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
|
||||
if (raw) MythicLib.plugin.getVersion().getWrapper().sendActionBarRaw(getPlayer(), message);
|
||||
else getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@ -1219,7 +1224,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
* checks if they could potentially upgrade to one of these
|
||||
*
|
||||
* @return If the player can change its current class to
|
||||
* a subclass
|
||||
* a subclass
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean canChooseSubclass() {
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.Indyuce.mmocore.api.player.social;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerActivity;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import org.bukkit.Sound;
|
||||
@ -21,8 +21,8 @@ public class FriendRequest extends Request {
|
||||
getCreator().addFriend(getTarget().getUniqueId());
|
||||
getTarget().addFriend(getCreator().getUniqueId());
|
||||
if (getCreator().isOnline()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", getTarget().getPlayer().getName()).send(getCreator().getPlayer());
|
||||
MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", getCreator().getPlayer().getName()).send(getTarget().getPlayer());
|
||||
ConfigMessage.fromKey("now-friends", "player", getTarget().getPlayer().getName()).send(getCreator().getPlayer());
|
||||
ConfigMessage.fromKey("now-friends", "player", getCreator().getPlayer().getName()).send(getTarget().getPlayer());
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package net.Indyuce.mmocore.api.util.input;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -12,8 +13,6 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.util.Consumer;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
|
||||
@Deprecated
|
||||
public class AnvilGUI extends PlayerInput {
|
||||
private final int containerId;
|
||||
@ -24,7 +23,7 @@ public class AnvilGUI extends PlayerInput {
|
||||
|
||||
ItemStack paper = new ItemStack(Material.PAPER);
|
||||
ItemMeta paperMeta = paper.getItemMeta();
|
||||
paperMeta.setDisplayName(MMOCore.plugin.configManager.getSimpleMessage("player-input.anvil." + type.getLowerCaseName()).message());
|
||||
paperMeta.setDisplayName(ConfigMessage.fromKey("player-input.anvil." + type.getLowerCaseName()).asLine());
|
||||
paper.setItemMeta(paperMeta);
|
||||
|
||||
MythicLib.plugin.getVersion().getWrapper().handleInventoryCloseEvent(player);
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.Indyuce.mmocore.api.util.input;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.gui.api.PluginInventory;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -37,8 +38,8 @@ public class ChatInput extends PlayerInput {
|
||||
this.lastOpened = lastOpened;
|
||||
|
||||
player.closeInventory();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("player-input.chat." + inputType.getLowerCaseName()).send(player);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("player-input.chat.cancel").send(player);
|
||||
ConfigMessage.fromKey("player-input.chat." + inputType.getLowerCaseName()).send(player);
|
||||
ConfigMessage.fromKey("player-input.chat.cancel").send(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -56,7 +57,7 @@ public class ChatInput extends PlayerInput {
|
||||
if (event.getMessage().equals("cancel")) {
|
||||
if (lastOpened != null)
|
||||
Bukkit.getScheduler().runTask(MMOCore.plugin, () -> lastOpened.open());
|
||||
MMOCore.plugin.configManager.getSimpleMessage("player-input.chat." + inputType.getLowerCaseName() + "-cancel").send(getPlayer());
|
||||
ConfigMessage.fromKey("player-input.chat." + inputType.getLowerCaseName() + "-cancel").send(getPlayer());
|
||||
} else
|
||||
// Run sync
|
||||
Bukkit.getScheduler().runTask(MMOCore.plugin, () -> output(event.getMessage()));
|
||||
|
@ -27,7 +27,7 @@ public class DepositCommand extends RegisteredCommand {
|
||||
|
||||
// if (sender instanceof Player)
|
||||
// if (!isNearEnderchest(((Player) sender).getLocation())) {
|
||||
// sender.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("stand-near-enderchest"));
|
||||
// sender.sendMessage(ConfigMessage.fromKey("stand-near-enderchest"));
|
||||
// return true;
|
||||
// }
|
||||
|
||||
|
@ -3,6 +3,7 @@ package net.Indyuce.mmocore.command;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.comp.flags.CustomFlag;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.command.api.RegisteredCommand;
|
||||
import net.Indyuce.mmocore.command.api.ToggleableCommand;
|
||||
@ -26,7 +27,7 @@ public class PvpModeCommand extends RegisteredCommand {
|
||||
}
|
||||
|
||||
if (!sender.hasPermission("mmocore.pvpmode")) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-enough-perms").send((Player) sender);
|
||||
ConfigMessage.fromKey("not-enough-perms").send((Player) sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -34,7 +35,7 @@ public class PvpModeCommand extends RegisteredCommand {
|
||||
|
||||
// Command cooldown
|
||||
if (playerData.getCooldownMap().isOnCooldown(COOLDOWN_KEY)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cooldown", "remaining", MythicLib.plugin.getMMOConfig().decimal.format(playerData.getCooldownMap().getCooldown(COOLDOWN_KEY))).send((Player) sender);
|
||||
ConfigMessage.fromKey("pvp-mode.cooldown", "remaining", MythicLib.plugin.getMMOConfig().decimal.format(playerData.getCooldownMap().getCooldown(COOLDOWN_KEY))).send((Player) sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -45,12 +46,12 @@ public class PvpModeCommand extends RegisteredCommand {
|
||||
if (playerData.getCombat().isInPvpMode() &&
|
||||
MythicLib.plugin.getFlags().isFlagAllowed(playerData.getPlayer(), CustomFlag.PVP_MODE)) {
|
||||
playerData.getCombat().setInvulnerable(MMOCore.plugin.configManager.pvpModeInvulnerabilityTimeCommand);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.toggle.on-invulnerable", "time",
|
||||
ConfigMessage.fromKey("pvp-mode.toggle.on-invulnerable", "time",
|
||||
MythicLib.plugin.getMMOConfig().decimal.format(MMOCore.plugin.configManager.pvpModeInvulnerabilityTimeCommand)).send(playerData.getPlayer());
|
||||
|
||||
// Just send message otherwise
|
||||
} else
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.toggle." + (playerData.getCombat().isInPvpMode() ? "on" : "off") + "-safe").send((Player) sender);
|
||||
ConfigMessage.fromKey("pvp-mode.toggle." + (playerData.getCombat().isInPvpMode() ? "on" : "off") + "-safe").send((Player) sender);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ package net.Indyuce.mmocore.command;
|
||||
|
||||
import io.lumine.mythic.lib.UtilityMethods;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.command.api.RegisteredCommand;
|
||||
import net.Indyuce.mmocore.command.api.ToggleableCommand;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
@ -45,7 +46,7 @@ public class SkillTreesCommand extends RegisteredCommand {
|
||||
InventoryManager.TREE_VIEW.newInventory(data).open();
|
||||
return true;
|
||||
} else {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("no-skill-tree").send(player);
|
||||
ConfigMessage.fromKey("no-skill-tree").send(player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
package net.Indyuce.mmocore.command;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.command.api.RegisteredCommand;
|
||||
import net.Indyuce.mmocore.command.api.ToggleableCommand;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
@ -27,7 +27,7 @@ public class SkillsCommand extends RegisteredCommand {
|
||||
if(event.isCancelled()) return true;
|
||||
|
||||
if (data.getUnlockedSkills().isEmpty()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("no-class-skill").send((Player) sender);
|
||||
ConfigMessage.fromKey("no-class-skill").send((Player) sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
package net.Indyuce.mmocore.command;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.eco.Withdraw;
|
||||
import net.Indyuce.mmocore.command.api.RegisteredCommand;
|
||||
import net.Indyuce.mmocore.command.api.ToggleableCommand;
|
||||
import org.apache.commons.lang.Validate;
|
||||
@ -11,8 +13,6 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import net.Indyuce.mmocore.api.eco.Withdraw;
|
||||
|
||||
public class WithdrawCommand extends RegisteredCommand {
|
||||
public WithdrawCommand(ConfigurationSection config) {
|
||||
super(config, ToggleableCommand.WITHDRAW);
|
||||
@ -37,7 +37,7 @@ public class WithdrawCommand extends RegisteredCommand {
|
||||
amount = Integer.parseInt(amountArgument);
|
||||
Validate.isTrue(amount >= 0);
|
||||
} catch (IllegalArgumentException exception) {
|
||||
sender.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("wrong-number", "arg", "" + args[0]).message());
|
||||
sender.sendMessage(ConfigMessage.fromKey("wrong-number", "arg", "" + args[0]).asLine());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -50,14 +50,14 @@ public class WithdrawCommand extends RegisteredCommand {
|
||||
|
||||
int left = (int) MMOCore.plugin.economy.getEconomy().getBalance(player) - amount;
|
||||
if (left < 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-enough-money", "left", "" + -left).send(player);
|
||||
ConfigMessage.fromKey("not-enough-money", "left", "" + -left).send(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
MMOCore.plugin.economy.getEconomy().withdrawPlayer(player, amount);
|
||||
request.withdrawAlgorythm(amount);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 1);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("withdrew", "worth", "" + amount).send(player);
|
||||
ConfigMessage.fromKey("withdrew", "worth", amount).send(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +1,20 @@
|
||||
package net.Indyuce.mmocore.command.rpg.admin;
|
||||
|
||||
import io.lumine.mythic.lib.command.api.CommandTreeNode;
|
||||
import io.lumine.mythic.lib.command.api.Parameter;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
|
||||
import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
|
||||
import net.Indyuce.mmocore.command.api.CommandVerbose;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
|
||||
import net.Indyuce.mmocore.command.api.CommandVerbose;
|
||||
import io.lumine.mythic.lib.command.api.CommandTreeNode;
|
||||
import io.lumine.mythic.lib.command.api.Parameter;
|
||||
|
||||
public class ClassCommandTreeNode extends CommandTreeNode {
|
||||
public ClassCommandTreeNode(CommandTreeNode parent) {
|
||||
super(parent, "class");
|
||||
@ -54,7 +54,7 @@ public class ClassCommandTreeNode extends CommandTreeNode {
|
||||
(data.hasSavedClass(profess) ? data.getClassInfo(profess)
|
||||
: new SavedClassInformation(MMOCore.plugin.dataProvider.getDataManager().getDefaultData())).load(profess, data);
|
||||
if (data.isOnline()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("class-select", "class", profess.getName()).send(data.getPlayer());
|
||||
ConfigMessage.fromKey("class-select", "class", profess.getName()).send(data.getPlayer());
|
||||
data.getPlayer().playSound(data.getPlayer().getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1);
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ public class CreateCommandTreeNode extends CommandTreeNode {
|
||||
|
||||
if (args[2].equalsIgnoreCase("main")) {
|
||||
MMOCore.plugin.boosterManager.register(new Booster(args.length > 5 ? args[5] : null, extra, length));
|
||||
new ConfigMessage("booster-main").addPlaceholders("multiplier", "" + (1 + extra)).send(Bukkit.getOnlinePlayers());
|
||||
ConfigMessage.fromKey("booster-main").addPlaceholders("multiplier", "" + (1 + extra)).send(Bukkit.getOnlinePlayers());
|
||||
Bukkit.getOnlinePlayers().forEach(player -> player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1));
|
||||
return CommandResult.SUCCESS;
|
||||
}
|
||||
@ -62,7 +62,7 @@ public class CreateCommandTreeNode extends CommandTreeNode {
|
||||
|
||||
Profession profession = MMOCore.plugin.professionManager.get(format);
|
||||
MMOCore.plugin.boosterManager.register(new Booster(args.length > 5 ? args[5] : null, profession, extra, length));
|
||||
new ConfigMessage("booster-skill").addPlaceholders("multiplier", "" + (1 + extra), "profession", profession.getName())
|
||||
ConfigMessage.fromKey("booster-skill").addPlaceholders("multiplier", "" + (1 + extra), "profession", profession.getName())
|
||||
.send(Bukkit.getOnlinePlayers());
|
||||
Bukkit.getOnlinePlayers().forEach(player -> player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1));
|
||||
return CommandResult.SUCCESS;
|
||||
|
@ -143,9 +143,8 @@ public class RPGPlaceholders extends PlaceholderExpansion {
|
||||
} else if (identifier.startsWith("cooldown_bound_")) {
|
||||
int slot = Math.max(0, Integer.parseInt(identifier.substring(15)));
|
||||
if (playerData.hasSkillBound(slot))
|
||||
return "" + playerData.getCooldownMap().getCooldown(playerData.getBoundSkill(slot));
|
||||
else
|
||||
return MMOCore.plugin.configManager.noSkillBoundPlaceholder;
|
||||
return Double.toString(playerData.getCooldownMap().getCooldown(playerData.getBoundSkill(slot)));
|
||||
else return MMOCore.plugin.configManager.noSkillBoundPlaceholder;
|
||||
} else if (identifier.startsWith("profession_experience_"))
|
||||
return MythicLib.plugin.getMMOConfig().decimal.format(
|
||||
playerData.getCollectionSkills().getExperience(identifier.substring(22).replace(" ", "-").replace("_", "-").toLowerCase()));
|
||||
|
@ -10,6 +10,7 @@ import com.sk89q.worldguard.session.MoveType;
|
||||
import com.sk89q.worldguard.session.Session;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
|
||||
public class PvPFlagHandler extends MMOCoreFlagHandler {
|
||||
|
||||
@ -50,7 +51,7 @@ public class PvPFlagHandler extends MMOCoreFlagHandler {
|
||||
// Send message
|
||||
if (canSendMessage()) {
|
||||
lastMessage = System.currentTimeMillis();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.enter.pvp-mode-on", "time",
|
||||
ConfigMessage.fromKey("pvp-mode.enter.pvp-mode-on", "time",
|
||||
MythicLib.plugin.getMMOConfig().decimal.format(MMOCore.plugin.configManager.pvpModeInvulnerabilityTimeRegionChange)).send(playerData.getPlayer());
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.comp.flags.CustomFlag;
|
||||
import io.lumine.mythic.lib.comp.flags.WorldGuardFlags;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.command.PvpModeCommand;
|
||||
|
||||
import java.util.Objects;
|
||||
@ -64,7 +65,7 @@ public class PvPModeHandler extends MMOCoreFlagHandler {
|
||||
final boolean pvpEnabled = playerData.getCombat().isInPvpMode() && !playerData.getCombat().canQuitPvpMode() && pvpFlag;
|
||||
lastMessage = System.currentTimeMillis();
|
||||
final double remaining = (playerData.getCombat().getLastHit() + MMOCore.plugin.configManager.pvpModeCombatTimeout * 1000.0D - System.currentTimeMillis()) / 1000.0D;
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.leave.pvp-" + (pvpEnabled ? "allowed" : "denied"), "remaining",
|
||||
ConfigMessage.fromKey("pvp-mode.leave.pvp-" + (pvpEnabled ? "allowed" : "denied"), "remaining",
|
||||
(MythicLib.plugin.getMMOConfig()).decimal.format(remaining)).send(playerData.getPlayer());
|
||||
}
|
||||
} else if (newPvpMode && !lastPvpMode) {
|
||||
@ -80,7 +81,7 @@ public class PvPModeHandler extends MMOCoreFlagHandler {
|
||||
// Send message
|
||||
if (canSendMessage()) {
|
||||
lastMessage = System.currentTimeMillis();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.enter.pvp-mode-" + (applyInvulnerability ? "on" : "off"), "time",
|
||||
ConfigMessage.fromKey("pvp-mode.enter.pvp-mode-" + (applyInvulnerability ? "on" : "off"), "time",
|
||||
MythicLib.plugin.getMMOConfig().decimal.format(MMOCore.plugin.configManager.pvpModeInvulnerabilityTimeRegionChange)).send(playerData.getPlayer());
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.UtilityMethods;
|
||||
import io.lumine.mythic.lib.comp.flags.CustomFlag;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -53,14 +54,14 @@ public class PvPModeListener implements Listener {
|
||||
if (targetData.getLevel() < minLevel) {
|
||||
event.setCancelled(true);
|
||||
if (event.getDamage() > 0)
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.low-level-target").send(source);
|
||||
ConfigMessage.fromKey("pvp-mode.cannot-hit.low-level-target").send(source);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sourceData.getLevel() < minLevel) {
|
||||
event.setCancelled(true);
|
||||
if (event.getDamage() > 0)
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.low-level-self").send(source);
|
||||
ConfigMessage.fromKey("pvp-mode.cannot-hit.low-level-self").send(source);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -68,7 +69,7 @@ public class PvPModeListener implements Listener {
|
||||
if (maxLevelDiff > 0 && Math.abs(targetData. getLevel() - sourceData.getLevel()) > maxLevelDiff) {
|
||||
event.setCancelled(true);
|
||||
if (event.getDamage() > 0)
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.high-level-difference").send(source);
|
||||
ConfigMessage.fromKey("pvp-mode.cannot-hit.high-level-difference").send(source);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -80,7 +81,7 @@ public class PvPModeListener implements Listener {
|
||||
if (targetData.getCombat().isInvulnerable()) {
|
||||
if (event.getDamage() > 0) {
|
||||
final long left = targetData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-target",
|
||||
ConfigMessage.fromKey("pvp-mode.cannot-hit.invulnerable-target",
|
||||
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
@ -91,7 +92,7 @@ public class PvPModeListener implements Listener {
|
||||
if (!MMOCore.plugin.configManager.pvpModeInvulnerabilityCanDamage && sourceData.getCombat().isInvulnerable()) {
|
||||
if (event.getDamage() > 0) {
|
||||
final long left = sourceData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-self",
|
||||
ConfigMessage.fromKey("pvp-mode.cannot-hit.invulnerable-self",
|
||||
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
@ -108,14 +109,14 @@ public class PvPModeListener implements Listener {
|
||||
if (!targetData.getCombat().isInPvpMode()) {
|
||||
event.setCancelled(true);
|
||||
if (event.getDamage() > 0)
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.pvp-mode-disabled-target").send(source);
|
||||
ConfigMessage.fromKey("pvp-mode.cannot-hit.pvp-mode-disabled-target").send(source);
|
||||
}
|
||||
|
||||
// Attacker has not enabled PvP mode
|
||||
else if (!sourceData.getCombat().isInPvpMode()) {
|
||||
event.setCancelled(true);
|
||||
if (event.getDamage() > 0)
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.pvp-mode-disabled-self").send(source);
|
||||
ConfigMessage.fromKey("pvp-mode.cannot-hit.pvp-mode-disabled-self").send(source);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -191,7 +191,7 @@ public class PlayerProfessions {
|
||||
|
||||
// Display hologram
|
||||
if (hologramLocation != null)
|
||||
MMOCoreUtils.displayIndicator(hologramLocation.add(.5, 1.5, .5), MMOCore.plugin.configManager.getSimpleMessage("exp-hologram", "exp", MythicLib.plugin.getMMOConfig().decimal.format(event.getExperience())).message());
|
||||
MMOCoreUtils.displayIndicator(hologramLocation.add(.5, 1.5, .5), ConfigMessage.fromKey("exp-hologram", "exp", MythicLib.plugin.getMMOConfig().decimal.format(event.getExperience())).asLine());
|
||||
|
||||
exp.put(profession.getId(), Math.max(0, exp.getOrDefault(profession.getId(), 0d) + event.getExperience()));
|
||||
int level, oldLevel = getLevel(profession);
|
||||
@ -222,7 +222,7 @@ public class PlayerProfessions {
|
||||
if (check) {
|
||||
Bukkit.getPluginManager().callEvent(new PlayerLevelUpEvent(playerData, profession, oldLevel, level));
|
||||
new SmallParticleEffect(playerData.getPlayer(), Particle.SPELL_INSTANT);
|
||||
new ConfigMessage("profession-level-up").addPlaceholders("level", String.valueOf(level), "profession", profession.getName())
|
||||
ConfigMessage.fromKey("profession-level-up").addPlaceholders("level", String.valueOf(level), "profession", profession.getName())
|
||||
.send(playerData.getPlayer());
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.LEVEL_UP).playTo(playerData.getPlayer());
|
||||
playerData.getStats().updateStats();
|
||||
@ -233,7 +233,7 @@ public class PlayerProfessions {
|
||||
for (int j = 0; j < 20; j++)
|
||||
bar.append(j == chars ? "" + ChatColor.WHITE + ChatColor.BOLD : "").append("|");
|
||||
if (playerData.isOnline())
|
||||
MMOCore.plugin.configManager.getSimpleMessage("exp-notification", "profession", profession.getName(), "progress", bar.toString(), "ratio",
|
||||
ConfigMessage.fromKey("exp-notification", "profession", profession.getName(), "progress", bar.toString(), "ratio",
|
||||
MythicLib.plugin.getMMOConfig().decimal.format(exp / needed * 100)).send(playerData.getPlayer());
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package net.Indyuce.mmocore.gui;
|
||||
|
||||
import io.lumine.mythic.lib.manager.StatManager;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
@ -95,13 +96,13 @@ public class AttributeView extends EditableInventory {
|
||||
if (item.getFunction().equalsIgnoreCase("reallocation")) {
|
||||
int spent = playerData.getAttributes().countPoints();
|
||||
if (spent < 1) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("no-attribute-points-spent").send(player);
|
||||
ConfigMessage.fromKey("no-attribute-points-spent").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerData.getAttributeReallocationPoints() < 1) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-attribute-reallocation-point").send(player);
|
||||
ConfigMessage.fromKey("not-attribute-reallocation-point").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
@ -109,7 +110,7 @@ public class AttributeView extends EditableInventory {
|
||||
playerData.getAttributes().getInstances().forEach(ins -> ins.setBase(0));
|
||||
playerData.giveAttributePoints(spent);
|
||||
playerData.giveAttributeReallocationPoints(-1);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("attribute-points-reallocated", "points", String.valueOf(playerData.getAttributePoints())).send(player);
|
||||
ConfigMessage.fromKey("attribute-points-reallocated", "points", String.valueOf(playerData.getAttributePoints())).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.RESET_ATTRIBUTES).playTo(getPlayer());
|
||||
open();
|
||||
}
|
||||
@ -118,14 +119,14 @@ public class AttributeView extends EditableInventory {
|
||||
PlayerAttribute attribute = ((AttributeItem) item).attribute;
|
||||
|
||||
if (playerData.getAttributePoints() < 1) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-attribute-point").send(player);
|
||||
ConfigMessage.fromKey("not-attribute-point").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerAttributes.AttributeInstance ins = playerData.getAttributes().getInstance(attribute);
|
||||
if (attribute.hasMax() && ins.getBase() >= attribute.getMax()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("attribute-max-points-hit").send(player);
|
||||
ConfigMessage.fromKey("attribute-max-points-hit").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
@ -137,7 +138,7 @@ public class AttributeView extends EditableInventory {
|
||||
pointsSpent = Math.min(pointsSpent, attribute.getMax() - ins.getBase());
|
||||
|
||||
if (shiftClick && playerData.getAttributePoints() < pointsSpent) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-attribute-point-shift", "shift_points", String.valueOf(pointsSpent)).send(player);
|
||||
ConfigMessage.fromKey("not-attribute-point-shift", "shift_points", String.valueOf(pointsSpent)).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
@ -150,7 +151,7 @@ public class AttributeView extends EditableInventory {
|
||||
while (pointsSpent-- > 0)
|
||||
attribute.getExperienceTable().claim(playerData, ins.getBase(), attribute);
|
||||
|
||||
MMOCore.plugin.configManager.getSimpleMessage("attribute-level-up", "attribute", attribute.getName(), "level", String.valueOf(ins.getBase())).send(player);
|
||||
ConfigMessage.fromKey("attribute-level-up", "attribute", attribute.getName(), "level", String.valueOf(ins.getBase())).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.LEVEL_ATTRIBUTE).playTo(getPlayer());
|
||||
|
||||
PlayerAttributeUseEvent playerAttributeUseEvent = new PlayerAttributeUseEvent(playerData, attribute);
|
||||
|
@ -2,6 +2,7 @@ package net.Indyuce.mmocore.gui;
|
||||
|
||||
import io.lumine.mythic.lib.UtilityMethods;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
@ -145,7 +146,7 @@ public class ClassConfirmation extends EditableInventory {
|
||||
else
|
||||
(playerData.hasSavedClass(profess) ? playerData.getClassInfo(profess)
|
||||
: new SavedClassInformation(MMOCore.plugin.dataProvider.getDataManager().getDefaultData())).load(profess, playerData);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("class-select", "class", profess.getName()).send(player);
|
||||
ConfigMessage.fromKey("class-select", "class", profess.getName()).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.SELECT_CLASS).playTo(player);
|
||||
player.closeInventory();
|
||||
if (profileRunnable != null) profileRunnable.run();
|
||||
|
@ -28,10 +28,8 @@ import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ClassSelect extends EditableInventory {
|
||||
public ClassSelect() {
|
||||
@ -125,19 +123,19 @@ public class ClassSelect extends EditableInventory {
|
||||
|
||||
if (profileRunnable == null && playerData.getClassPoints() < 1) {
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.CANT_SELECT_CLASS).playTo(player);
|
||||
new ConfigMessage("cant-choose-new-class").send(player);
|
||||
ConfigMessage.fromKey("cant-choose-new-class").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (profess.hasOption(ClassOption.NEEDS_PERMISSION) && !player.hasPermission("mmocore.class." + profess.getId().toLowerCase())) {
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.CANT_SELECT_CLASS).playTo(player);
|
||||
new ConfigMessage("no-permission-for-class").send(player);
|
||||
ConfigMessage.fromKey("no-permission-for-class").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (profess.equals(playerData.getProfess())) {
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.CANT_SELECT_CLASS).playTo(player);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("already-on-class", "class", profess.getName()).send(player);
|
||||
ConfigMessage.fromKey("already-on-class", "class", profess.getName()).send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,9 @@ import io.lumine.mythic.lib.api.stat.modifier.StatModifier;
|
||||
import io.lumine.mythic.lib.manager.StatManager;
|
||||
import io.lumine.mythic.lib.version.VersionMaterial;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.experience.Booster;
|
||||
import net.Indyuce.mmocore.experience.Profession;
|
||||
@ -18,12 +20,10 @@ import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import net.Indyuce.mmocore.party.AbstractParty;
|
||||
import net.Indyuce.mmocore.player.stats.StatInfo;
|
||||
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
|
||||
@ -307,7 +307,7 @@ public class PlayerStats extends EditableInventory {
|
||||
holders.register("author", boost.hasAuthor() ? boost.getAuthor() : "Server");
|
||||
holders.register("value", (int) (boost.getExtra() * 100));
|
||||
holders.register("left", boost.isTimedOut() ?
|
||||
MMOCore.plugin.configManager.getSimpleMessage("booster-expired").message()
|
||||
ConfigMessage.fromKey("booster-expired").asLine()
|
||||
: new DelayFormat(2).format(boost.getLeft()));
|
||||
|
||||
return holders;
|
||||
@ -332,7 +332,7 @@ public class PlayerStats extends EditableInventory {
|
||||
holders.register("profession", boost.getProfession().getName());
|
||||
holders.register("value", (int) (boost.getExtra() * 100));
|
||||
holders.register("left", boost.isTimedOut() ?
|
||||
MMOCore.plugin.configManager.getSimpleMessage("booster-expired").message()
|
||||
ConfigMessage.fromKey("booster-expired").asLine()
|
||||
: new DelayFormat(2).format(boost.getLeft()));
|
||||
|
||||
return holders;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.Indyuce.mmocore.gui;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.quest.Quest;
|
||||
@ -225,70 +226,53 @@ public class QuestViewer extends EditableInventory {
|
||||
|
||||
if (playerData.getQuestData().hasCurrent()) {
|
||||
|
||||
/*
|
||||
* check if the player is cancelling his ongoing quest.
|
||||
*/
|
||||
// Check if the player is cancelling his ongoing quest
|
||||
if (playerData.getQuestData().hasCurrent(quest)) {
|
||||
if (context.getClickType() == ClickType.RIGHT) {
|
||||
playerData.getQuestData().start(null);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.CANCEL_QUEST).playTo(player);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("cancel-quest").send(player);
|
||||
ConfigMessage.fromKey("cancel-quest").send(player);
|
||||
open();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* the player cannot start a new quest if he is already
|
||||
* doing one.
|
||||
*/
|
||||
MMOCore.plugin.configManager.getSimpleMessage("already-on-quest").send(player);
|
||||
// The player cannot start a new quest if he is already doing one
|
||||
ConfigMessage.fromKey("already-on-quest").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* check for level requirements.
|
||||
*/
|
||||
// Check for level requirements.
|
||||
int level;
|
||||
if (playerData.getLevel() < (level = quest.getLevelRestriction(null))) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("quest-level-restriction", "level", "Lvl", "count", "" + level).send(player);
|
||||
ConfigMessage.fromKey("quest-level-restriction", "level", "Lvl", "count", "" + level).send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
for (Profession profession : quest.getLevelRestrictions())
|
||||
if (playerData.getCollectionSkills().getLevel(profession) < (level = quest.getLevelRestriction(profession))) {
|
||||
MMOCore.plugin.configManager
|
||||
.getSimpleMessage("quest-level-restriction", "level", profession.getName() + " Lvl", "count", "" + level)
|
||||
.send(player);
|
||||
return;
|
||||
}
|
||||
for (Profession profession : quest.getLevelRestrictions())
|
||||
if (playerData.getCollectionSkills().getLevel(profession) < (level = quest.getLevelRestriction(profession))) {
|
||||
ConfigMessage.fromKey("quest-level-restriction", "level", profession.getName() + " Lvl", "count", "" + level)
|
||||
.send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerData.getQuestData().hasFinished(quest)) {
|
||||
|
||||
/*
|
||||
* if the player has already finished this quest, he can't
|
||||
* start it again.
|
||||
*/
|
||||
// If the player has already finished this quest, he can't start it again
|
||||
if (!quest.isRedoable()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("cant-redo-quest").send(player);
|
||||
ConfigMessage.fromKey("cant-redo-quest").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
if (!playerData.getQuestData().checkCooldownAvailability(quest)) {
|
||||
MMOCore.plugin.configManager
|
||||
.getSimpleMessage("quest-cooldown", "delay", new DelayFormat(2).format(playerData.getQuestData().getDelayFeft(quest)))
|
||||
.send(player);
|
||||
return;
|
||||
}
|
||||
// Has the player waited long enough
|
||||
if (!playerData.getQuestData().checkCooldownAvailability(quest)) {
|
||||
ConfigMessage.fromKey("quest-cooldown", "delay", new DelayFormat(2).format(playerData.getQuestData().getDelayFeft(quest))).send(player);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* eventually start a new quest.
|
||||
*/
|
||||
MMOCore.plugin.configManager.getSimpleMessage("start-quest", "quest", quest.getName()).send(player);
|
||||
// Eventually start the quest
|
||||
ConfigMessage.fromKey("start-quest", "quest", quest.getName()).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.START_QUEST).playTo(player);
|
||||
playerData.getQuestData().start(quest);
|
||||
open();
|
||||
|
@ -4,9 +4,9 @@ import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.ItemTag;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.skill.binding.SkillSlot;
|
||||
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
@ -16,6 +16,7 @@ import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import net.Indyuce.mmocore.skill.ClassSkill;
|
||||
import net.Indyuce.mmocore.skill.RegisteredSkill;
|
||||
import net.Indyuce.mmocore.skill.binding.SkillSlot;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
@ -416,13 +417,13 @@ public class SkillList extends EditableInventory {
|
||||
int spent = getPlayerData().countSkillPointsSpent();
|
||||
|
||||
if (spent < 1) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("no-skill-points-spent").send(player);
|
||||
ConfigMessage.fromKey("no-skill-points-spent").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerData.getSkillReallocationPoints() < 1) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-skill-reallocation-point").send(player);
|
||||
ConfigMessage.fromKey("not-skill-reallocation-point").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
@ -432,7 +433,7 @@ public class SkillList extends EditableInventory {
|
||||
|
||||
playerData.giveSkillPoints(spent);
|
||||
playerData.setSkillReallocationPoints(playerData.getSkillReallocationPoints() - 1);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("skill-points-reallocated", "points", "" + playerData.getSkillPoints()).send(player);
|
||||
ConfigMessage.fromKey("skill-points-reallocated", "points", "" + playerData.getSkillPoints()).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.RESET_SKILLS).playTo(getPlayer());
|
||||
open();
|
||||
}
|
||||
@ -465,12 +466,12 @@ public class SkillList extends EditableInventory {
|
||||
// unbind if there is a current spell.
|
||||
if (context.getClickType() == ClickType.RIGHT) {
|
||||
if (!playerData.hasSkillBound(index)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("no-skill-bound").send(player);
|
||||
ConfigMessage.fromKey("no-skill-bound").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
if (!playerData.getProfess().getSkillSlot(index).canManuallyBind()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("cant-manually-bind").send(player);
|
||||
ConfigMessage.fromKey("cant-manually-bind").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
@ -481,19 +482,19 @@ public class SkillList extends EditableInventory {
|
||||
}
|
||||
|
||||
if (!playerData.hasUnlockedLevel(selected)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("skill-level-not-met").send(player);
|
||||
ConfigMessage.fromKey("skill-level-not-met").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!skillSlot.canManuallyBind()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("cant-manually-bind").send(player);
|
||||
ConfigMessage.fromKey("cant-manually-bind").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!skillSlot.acceptsSkill(selected)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-compatible-skill").send(player);
|
||||
ConfigMessage.fromKey("not-compatible-skill").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
@ -509,26 +510,26 @@ public class SkillList extends EditableInventory {
|
||||
int shiftCost = ((UpgradeItem) item).shiftCost;
|
||||
|
||||
if (!playerData.hasUnlockedLevel(selected)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("skill-level-not-met").send(player);
|
||||
ConfigMessage.fromKey("skill-level-not-met").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerData.getSkillPoints() < 1) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-enough-skill-points").send(player);
|
||||
ConfigMessage.fromKey("not-enough-skill-points").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (selected.hasMaxLevel() && playerData.getSkillLevel(selected.getSkill()) >= selected.getMaxLevel()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("skill-max-level-hit").send(player);
|
||||
ConfigMessage.fromKey("skill-max-level-hit").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (context.getClickType().isShiftClick()) {
|
||||
if (playerData.getSkillPoints() < shiftCost) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-enough-skill-points-shift", "shift_points", "" + shiftCost).send(player);
|
||||
ConfigMessage.fromKey("not-enough-skill-points-shift", "shift_points", "" + shiftCost).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 2);
|
||||
return;
|
||||
}
|
||||
@ -540,7 +541,7 @@ public class SkillList extends EditableInventory {
|
||||
playerData.setSkillLevel(selected.getSkill(), playerData.getSkillLevel(selected.getSkill()) + 1);
|
||||
}
|
||||
|
||||
MMOCore.plugin.configManager.getSimpleMessage("upgrade-skill", "skill", selected.getSkill().getName(), "level",
|
||||
ConfigMessage.fromKey("upgrade-skill", "skill", selected.getSkill().getName(), "level",
|
||||
"" + playerData.getSkillLevel(selected.getSkill())).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 2);
|
||||
open();
|
||||
|
@ -14,9 +14,7 @@ import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
import net.Indyuce.mmocore.api.player.profess.Subclass;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
@ -28,7 +26,6 @@ import org.bukkit.persistence.PersistentDataType;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SubclassSelect extends EditableInventory {
|
||||
public SubclassSelect() {
|
||||
@ -123,12 +120,12 @@ public class SubclassSelect extends EditableInventory {
|
||||
if (playerData.getClassPoints() < 1) {
|
||||
player.closeInventory();
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.CANT_SELECT_CLASS).playTo(getPlayer());
|
||||
new ConfigMessage("cant-choose-new-class").send(player);
|
||||
ConfigMessage.fromKey("cant-choose-new-class").send(player);
|
||||
return;
|
||||
}
|
||||
if (profess.hasOption(ClassOption.NEEDS_PERMISSION) && !player.hasPermission("mmocore.class." + profess.getId().toLowerCase())) {
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.CANT_SELECT_CLASS).playTo(player);
|
||||
new ConfigMessage("no-permission-for-class").send(player);
|
||||
ConfigMessage.fromKey("no-permission-for-class").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.Indyuce.mmocore.gui;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerActivity;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
@ -244,25 +245,25 @@ public class WaypointViewer extends EditableInventory {
|
||||
// Locked waypoint?
|
||||
Waypoint waypoint = MMOCore.plugin.waypointManager.get(tag);
|
||||
if (!playerData.hasWaypoint(waypoint)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-unlocked-waypoint").send(player);
|
||||
ConfigMessage.fromKey("not-unlocked-waypoint").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
// Cannot teleport to current waypoint
|
||||
if (waypoint.equals(current)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("standing-on-waypoint").send(player);
|
||||
ConfigMessage.fromKey("standing-on-waypoint").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
// Waypoint does not have target as destination
|
||||
if (current != null && current.getPath(waypoint) == null) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("cannot-teleport-to").send(player);
|
||||
ConfigMessage.fromKey("cannot-teleport-to").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
// Not dynamic waypoint
|
||||
if (current == null && !paths.containsKey(waypoint)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-dynamic-waypoint").send(player);
|
||||
ConfigMessage.fromKey("not-dynamic-waypoint").send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -270,7 +271,7 @@ public class WaypointViewer extends EditableInventory {
|
||||
double withdraw = paths.get(waypoint).getCost();
|
||||
double left = withdraw - playerData.getStellium();
|
||||
if (left > 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-enough-stellium", "more", decimal.format(left)).send(player);
|
||||
ConfigMessage.fromKey("not-enough-stellium", "more", decimal.format(left)).send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3,13 +3,13 @@ package net.Indyuce.mmocore.gui.eco;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.api.util.SmartGive;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.util.item.SimpleItemBuilder;
|
||||
import net.Indyuce.mmocore.gui.api.PluginInventory;
|
||||
import net.Indyuce.mmocore.util.item.SimpleItemBuilder;
|
||||
import net.milkbowl.vault.economy.EconomyResponse;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
@ -57,7 +57,7 @@ public class DepositMenu extends PluginInventory {
|
||||
event.getInventory().clear();
|
||||
player.closeInventory();
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 2);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("deposit", "worth", String.valueOf(deposit)).send(player);
|
||||
ConfigMessage.fromKey("deposit", "worth", String.valueOf(deposit)).send(player);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3,9 +3,7 @@ package net.Indyuce.mmocore.gui.skilltree;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.UtilityMethods;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
|
||||
@ -34,6 +32,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SkillTreeViewer extends EditableInventory {
|
||||
@ -469,13 +468,13 @@ public class SkillTreeViewer extends EditableInventory {
|
||||
if (item.getFunction().equals("reallocation")) {
|
||||
int spent = playerData.getPointSpent(skillTree);
|
||||
if (spent < 1) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("no-skill-tree-points-spent").send(player);
|
||||
ConfigMessage.fromKey("no-skill-tree-points-spent").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
|
||||
if (getPlayerData().getSkillTreeReallocationPoints() <= 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-skill-tree-reallocation-point").send(player);
|
||||
ConfigMessage.fromKey("not-skill-tree-reallocation-point").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
} else {
|
||||
@ -485,7 +484,7 @@ public class SkillTreeViewer extends EditableInventory {
|
||||
playerData.giveSkillTreeReallocationPoints(-1);
|
||||
playerData.resetSkillTree(skillTree);
|
||||
skillTree.setupNodeStates(playerData);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("reallocated-points", "points", "" + playerData.getSkillTreePoint(skillTree.getId()), "skill-tree", skillTree.getName()).send(player);
|
||||
ConfigMessage.fromKey("reallocated-points", "points", "" + playerData.getSkillTreePoint(skillTree.getId()), "skill-tree", skillTree.getName()).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.RESET_SKILL_TREE).playTo(player);
|
||||
open();
|
||||
return;
|
||||
@ -512,31 +511,31 @@ public class SkillTreeViewer extends EditableInventory {
|
||||
}
|
||||
SkillTreeNode node = skillTree.getNode(new IntegerCoordinates(x, y));
|
||||
if (playerData.getPointSpent(skillTree) >= skillTree.getMaxPointSpent()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("max-points-reached").send(player);
|
||||
ConfigMessage.fromKey("max-points-reached").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerData.canIncrementNodeLevel(node)) {
|
||||
playerData.incrementNodeLevel(node);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("upgrade-skill-node", "skill-node", node.getName(), "level", "" + playerData.getNodeLevel(node)).send(player);
|
||||
ConfigMessage.fromKey("upgrade-skill-node", "skill-node", node.getName(), "level", "" + playerData.getNodeLevel(node)).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.LEVEL_UP).playTo(getPlayer());
|
||||
open();
|
||||
} else if (playerData.getNodeStatus(node) == SkillTreeStatus.LOCKED || playerData.getNodeStatus(node) == SkillTreeStatus.FULLY_LOCKED) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("locked-node").send(player);
|
||||
ConfigMessage.fromKey("locked-node").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
|
||||
} else if (playerData.getNodeLevel(node) >= node.getMaxLevel()) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("skill-node-max-level-hit").send(player);
|
||||
ConfigMessage.fromKey("skill-node-max-level-hit").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
} else if (!node.hasPermissionRequirement(playerData)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("missing-skill-node-permission").send(player);
|
||||
ConfigMessage.fromKey("missing-skill-node-permission").send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
}
|
||||
|
||||
//Else the player doesn't doesn't have the skill tree points
|
||||
else {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-enough-skill-tree-points", "point", "" + node.getSkillTreePointsConsumed()).send(player);
|
||||
ConfigMessage.fromKey("not-enough-skill-tree-points", "point", "" + node.getSkillTreePointsConsumed()).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
|
||||
}
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
package net.Indyuce.mmocore.gui.social.friend;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerActivity;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.api.util.input.ChatInput;
|
||||
import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
@ -199,7 +200,7 @@ public class EditableFriendList extends EditableInventory {
|
||||
|
||||
long remaining = playerData.getActivityTimeOut(PlayerActivity.FRIEND_REQUEST);
|
||||
if (remaining > 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("friend-request-cooldown", "cooldown", new DelayFormat().format(remaining))
|
||||
ConfigMessage.fromKey("friend-request-cooldown", "cooldown", new DelayFormat().format(remaining))
|
||||
.send(player);
|
||||
return;
|
||||
}
|
||||
@ -207,28 +208,28 @@ public class EditableFriendList extends EditableInventory {
|
||||
new ChatInput(player, InputType.FRIEND_REQUEST, context.getInventoryHolder(), input -> {
|
||||
Player target = Bukkit.getPlayer(input);
|
||||
if (target == null) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player);
|
||||
ConfigMessage.fromKey("not-online-player", "player", input).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerData.hasFriend(target.getUniqueId())) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("already-friends", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("already-friends", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerData.getUniqueId().equals(target.getUniqueId())) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("cant-request-to-yourself").send(player);
|
||||
ConfigMessage.fromKey("cant-request-to-yourself").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
playerData.sendFriendRequest(PlayerData.get(target));
|
||||
MMOCore.plugin.configManager.getSimpleMessage("sent-friend-request", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("sent-friend-request", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||
open();
|
||||
});
|
||||
|
@ -1,13 +1,13 @@
|
||||
package net.Indyuce.mmocore.gui.social.friend;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.manager.data.OfflinePlayerData;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import net.Indyuce.mmocore.manager.data.OfflinePlayerData;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
@ -52,7 +52,7 @@ public class EditableFriendRemoval extends EditableInventory {
|
||||
playerData.removeFriend(friend.getUniqueId());
|
||||
OfflinePlayerData.get(friend.getUniqueId()).removeFriend(playerData.getUniqueId());
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("no-longer-friends", "unfriend", friend.getName()).send(player);
|
||||
ConfigMessage.fromKey("no-longer-friends", "unfriend", friend.getName()).send(player);
|
||||
last.open();
|
||||
}
|
||||
|
||||
|
@ -1,16 +1,17 @@
|
||||
package net.Indyuce.mmocore.gui.social.guild;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.api.util.input.ChatInput;
|
||||
import net.Indyuce.mmocore.api.util.input.PlayerInput;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.NamespacedKey;
|
||||
@ -147,7 +148,7 @@ public class EditableGuildAdmin extends EditableInventory {
|
||||
if (item.getFunction().equals("invite")) {
|
||||
|
||||
if (playerData.getGuild().countMembers() >= max) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("guild-is-full").send(player);
|
||||
ConfigMessage.fromKey("guild-is-full").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
return;
|
||||
}
|
||||
@ -155,7 +156,7 @@ public class EditableGuildAdmin extends EditableInventory {
|
||||
new ChatInput(player, PlayerInput.InputType.GUILD_INVITE, context.getInventoryHolder(), input -> {
|
||||
Player target = Bukkit.getPlayer(input);
|
||||
if (target == null) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player);
|
||||
ConfigMessage.fromKey("not-online-player", "player", input).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
@ -163,7 +164,7 @@ public class EditableGuildAdmin extends EditableInventory {
|
||||
|
||||
long remaining = playerData.getGuild().getLastInvite(target) + 60 * 2 * 1000 - System.currentTimeMillis();
|
||||
if (remaining > 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("guild-invite-cooldown", "player", target.getName(), "cooldown",
|
||||
ConfigMessage.fromKey("guild-invite-cooldown", "player", target.getName(), "cooldown",
|
||||
new DelayFormat().format(remaining)).send(player);
|
||||
open();
|
||||
return;
|
||||
@ -171,14 +172,14 @@ public class EditableGuildAdmin extends EditableInventory {
|
||||
|
||||
PlayerData targetData = PlayerData.get(target);
|
||||
if (playerData.getGuild().hasMember(target.getUniqueId())) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("already-in-guild", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("already-in-guild", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
playerData.getGuild().sendGuildInvite(playerData, targetData);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("sent-guild-invite", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("sent-guild-invite", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||
open();
|
||||
});
|
||||
@ -193,7 +194,7 @@ public class EditableGuildAdmin extends EditableInventory {
|
||||
return;
|
||||
|
||||
playerData.getGuild().removeMember(target.getUniqueId());
|
||||
MMOCore.plugin.configManager.getSimpleMessage("kick-from-guild", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("kick-from-guild", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,17 @@
|
||||
package net.Indyuce.mmocore.gui.social.guild;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import net.Indyuce.mmocore.manager.data.GuildDataManager;
|
||||
import net.Indyuce.mmocore.api.util.input.ChatInput;
|
||||
import net.Indyuce.mmocore.api.util.input.PlayerInput;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import net.Indyuce.mmocore.manager.data.GuildDataManager;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -78,13 +79,13 @@ public class EditableGuildCreation extends EditableInventory {
|
||||
if(!MMOCore.plugin.dataProvider.getGuildManager().isRegistered(input))
|
||||
return true;
|
||||
else
|
||||
reason = MMOCore.plugin.configManager.getSimpleMessage("guild-creation.reasons.already-taken").message();
|
||||
reason = ConfigMessage.fromKey("guild-creation.reasons.already-taken").asLine();
|
||||
else
|
||||
reason = MMOCore.plugin.configManager.getSimpleMessage("guild-creation.reasons.invalid-characters").message();
|
||||
reason = ConfigMessage.fromKey("guild-creation.reasons.invalid-characters").asLine();
|
||||
else
|
||||
reason = MMOCore.plugin.configManager.getSimpleMessage("guild-creation.reasons.invalid-length", "min", "" + rules.getMin(), "max", "" + rules.getMax()).message();
|
||||
reason = ConfigMessage.fromKey("guild-creation.reasons.invalid-length", "min", "" + rules.getMin(), "max", "" + rules.getMax()).asLine();
|
||||
|
||||
MMOCore.plugin.configManager.getSimpleMessage("guild-creation.failed", "reason", reason).send(player);
|
||||
ConfigMessage.fromKey("guild-creation.failed", "reason", reason).send(player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,18 @@
|
||||
package net.Indyuce.mmocore.gui.social.guild;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.api.util.input.ChatInput;
|
||||
import net.Indyuce.mmocore.api.util.input.PlayerInput;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import net.Indyuce.mmocore.manager.data.OfflinePlayerData;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
@ -196,7 +197,7 @@ public class EditableGuildView extends EditableInventory {
|
||||
|
||||
/*
|
||||
* if (playerData.getGuild().getMembers().count() >= max) {
|
||||
* MMOCore.plugin.configManager.getSimpleMessage("guild-is-full").send(player);
|
||||
* ConfigMessage.fromKey("guild-is-full").send(player);
|
||||
* player.playSound(player.getLocation(),
|
||||
* Sound.ENTITY_VILLAGER_NO, 1, 1); return; }
|
||||
*/
|
||||
@ -204,7 +205,7 @@ public class EditableGuildView extends EditableInventory {
|
||||
new ChatInput(player, PlayerInput.InputType.GUILD_INVITE, context.getInventoryHolder(), input -> {
|
||||
Player target = Bukkit.getPlayer(input);
|
||||
if (target == null) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player);
|
||||
ConfigMessage.fromKey("not-online-player", "player", input).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
@ -212,21 +213,21 @@ public class EditableGuildView extends EditableInventory {
|
||||
|
||||
long remaining = playerData.getGuild().getLastInvite(target) + 60 * 2 * 1000 - System.currentTimeMillis();
|
||||
if (remaining > 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("guild-invite-cooldown", "player", target.getName(), "cooldown", new DelayFormat().format(remaining)).send(player);
|
||||
ConfigMessage.fromKey("guild-invite-cooldown", "player", target.getName(), "cooldown", new DelayFormat().format(remaining)).send(player);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerData targetData = PlayerData.get(target);
|
||||
if (playerData.getGuild().hasMember(targetData.getUniqueId())) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("already-in-guild", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("already-in-guild", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
playerData.getGuild().sendGuildInvite(playerData, targetData);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("sent-guild-invite", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("sent-guild-invite", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||
open();
|
||||
});
|
||||
@ -245,7 +246,7 @@ public class EditableGuildView extends EditableInventory {
|
||||
return;
|
||||
|
||||
playerData.getGuild().removeMember(target.getUniqueId());
|
||||
MMOCore.plugin.configManager.getSimpleMessage("kick-from-guild", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("kick-from-guild", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,18 @@
|
||||
package net.Indyuce.mmocore.gui.social.party;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.party.provided.Party;
|
||||
import net.Indyuce.mmocore.api.util.input.ChatInput;
|
||||
import net.Indyuce.mmocore.api.util.input.PlayerInput;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
|
||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||
import net.Indyuce.mmocore.party.provided.Party;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
@ -147,7 +148,7 @@ public class EditablePartyView extends EditableInventory {
|
||||
if (item.getFunction().equals("invite")) {
|
||||
|
||||
if (party.getMembers().size() >= MMOCore.plugin.configManager.maxPartyPlayers) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("party-is-full").send(player);
|
||||
ConfigMessage.fromKey("party-is-full").send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
return;
|
||||
}
|
||||
@ -155,7 +156,7 @@ public class EditablePartyView extends EditableInventory {
|
||||
new ChatInput(player, PlayerInput.InputType.PARTY_INVITE, context.getInventoryHolder(), input -> {
|
||||
Player target = Bukkit.getPlayer(input);
|
||||
if (target == null) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player);
|
||||
ConfigMessage.fromKey("not-online-player", "player", input).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
@ -163,14 +164,14 @@ public class EditablePartyView extends EditableInventory {
|
||||
|
||||
long remaining = party.getLastInvite(target) + 60 * 2 * 1000 - System.currentTimeMillis();
|
||||
if (remaining > 0) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("party-invite-cooldown", "player", target.getName(), "cooldown", new DelayFormat().format(remaining)).send(player);
|
||||
ConfigMessage.fromKey("party-invite-cooldown", "player", target.getName(), "cooldown", new DelayFormat().format(remaining)).send(player);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerData targetData = PlayerData.get(target);
|
||||
if (party.hasMember(target)) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("already-in-party", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("already-in-party", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
@ -178,14 +179,14 @@ public class EditablePartyView extends EditableInventory {
|
||||
|
||||
int levelDifference = Math.abs(targetData.getLevel() - party.getLevel());
|
||||
if (levelDifference > MMOCore.plugin.configManager.maxPartyLevelDifference) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("high-level-difference", "player", target.getName(), "diff", String.valueOf(levelDifference)).send(player);
|
||||
ConfigMessage.fromKey("high-level-difference", "player", target.getName(), "diff", String.valueOf(levelDifference)).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
|
||||
open();
|
||||
return;
|
||||
}
|
||||
|
||||
party.sendInvite(playerData, targetData);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("sent-party-invite", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("sent-party-invite", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||
open();
|
||||
});
|
||||
@ -200,7 +201,7 @@ public class EditablePartyView extends EditableInventory {
|
||||
return;
|
||||
|
||||
party.removeMember(PlayerData.get(target));
|
||||
MMOCore.plugin.configManager.getSimpleMessage("kick-from-party", "player", target.getName()).send(player);
|
||||
ConfigMessage.fromKey("kick-from-party", "player", target.getName()).send(player);
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package net.Indyuce.mmocore.guild.provided;
|
||||
|
||||
import io.lumine.mythic.lib.comp.interaction.relation.Relationship;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
@ -82,7 +81,7 @@ public class Guild implements AbstractGuild {
|
||||
// Transfer ownership
|
||||
if (owner.equals(uuid)) {
|
||||
owner = members.stream().findAny().get();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("transfer-guild-ownership").send(Bukkit.getPlayer(owner));
|
||||
ConfigMessage.fromKey("transfer-guild-ownership").send(Bukkit.getPlayer(owner));
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +111,7 @@ public class Guild implements AbstractGuild {
|
||||
public void sendGuildInvite(PlayerData inviter, PlayerData target) {
|
||||
invites.put(target.getUniqueId(), System.currentTimeMillis());
|
||||
Request request = new GuildInvite(this, inviter, target);
|
||||
new ConfigMessage("guild-invite").addPlaceholders("player", inviter.getPlayer().getName(), "uuid", request.getUniqueId().toString()).sendAsJSon(target.getPlayer());
|
||||
ConfigMessage.fromKey("guild-invite").addPlaceholders("player", inviter.getPlayer().getName(), "uuid", request.getUniqueId().toString()).send(target.getPlayer());
|
||||
MMOCore.plugin.requestManager.registerRequest(request);
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
package net.Indyuce.mmocore.guild.provided;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import net.Indyuce.mmocore.api.player.social.Request;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class GuildInvite extends Request {
|
||||
@ -29,10 +29,10 @@ public class GuildInvite extends Request {
|
||||
guild.removeLastInvite(getCreator().getPlayer());
|
||||
guild.forEachMember(member -> {
|
||||
if (Bukkit.getPlayer(member) != null) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("guild-joined-other", "player",
|
||||
ConfigMessage.fromKey("guild-joined-other", "player",
|
||||
getTarget().getPlayer().getName()).send(Bukkit.getPlayer(member));
|
||||
|
||||
MMOCore.plugin.configManager.getSimpleMessage("guild-joined", "owner",
|
||||
ConfigMessage.fromKey("guild-joined", "owner",
|
||||
Bukkit.getPlayer(guild.getOwner()).getName()).send(getTarget().getPlayer());
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,9 @@
|
||||
package net.Indyuce.mmocore.manager;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.UtilityMethods;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigFile;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.util.input.ChatInput;
|
||||
import net.Indyuce.mmocore.api.util.input.PlayerInput;
|
||||
import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType;
|
||||
@ -16,6 +15,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.util.Consumer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -125,7 +125,7 @@ public class ConfigManager {
|
||||
lootChestExpireTime = Math.max(MMOCore.plugin.getConfig().getInt("loot-chests.chest-expire-time"), 1) * 20;
|
||||
lootChestPlayerCooldown = (long) MMOCore.plugin.getConfig().getDouble("player-cooldown") * 1000L;
|
||||
globalSkillCooldown = MMOCore.plugin.getConfig().getLong("global-skill-cooldown") * 50;
|
||||
noSkillBoundPlaceholder = getSimpleMessage("no-skill-placeholder").message();
|
||||
noSkillBoundPlaceholder = String.valueOf(messages.get("no-skill-placeholder"));
|
||||
lootChestsChanceWeight = MMOCore.plugin.getConfig().getDouble("chance-stat-weight.loot-chests");
|
||||
dropItemsChanceWeight = MMOCore.plugin.getConfig().getDouble("chance-stat-weight.drop-items");
|
||||
fishingDropsChanceWeight = MMOCore.plugin.getConfig().getDouble("chance-stat-weight.fishing-drops");
|
||||
@ -202,48 +202,41 @@ public class ConfigManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public List<String> getMessage(String key) {
|
||||
return messages.getStringList(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated TODO Merge with {@link net.Indyuce.mmocore.api.ConfigMessage}
|
||||
*/
|
||||
@Deprecated
|
||||
public SimpleMessage getSimpleMessage(String key, String... placeholders) {
|
||||
String format = messages.getString(key, "{MessageNotFound:\"" + key + "\"}");
|
||||
for (int j = 0; j < placeholders.length - 1; j += 2)
|
||||
format = format.replace("{" + placeholders[j] + "}", placeholders[j + 1]);
|
||||
return new SimpleMessage(MythicLib.plugin.parseColors(format));
|
||||
@Nullable
|
||||
public Object getMessageObject(String key) {
|
||||
return messages.get(key);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public SimpleMessage getSimpleMessage(String key, String... placeholders) {
|
||||
SimpleMessage wrapper = new SimpleMessage(ConfigMessage.fromKey(key));
|
||||
wrapper.message.addPlaceholders(placeholders);
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated TODO Merge with {@link net.Indyuce.mmocore.api.ConfigMessage}
|
||||
*/
|
||||
@Deprecated
|
||||
public static class SimpleMessage {
|
||||
private final String message;
|
||||
private final boolean actionbar;
|
||||
private final boolean hasPlaceholders;
|
||||
private final ConfigMessage message;
|
||||
|
||||
public SimpleMessage(String message) {
|
||||
this.actionbar = message.startsWith("%");
|
||||
this.message = actionbar ? message.substring(1) : message;
|
||||
this.hasPlaceholders = this.message.contains("%");
|
||||
@Deprecated
|
||||
public SimpleMessage(ConfigMessage message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String message() {
|
||||
return message;
|
||||
return message.getLines().isEmpty() ? "" : message.getLines().get(0);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean send(Player player) {
|
||||
String msg = hasPlaceholders ? MMOCore.plugin.placeholderParser.parse(player, message) : message;
|
||||
|
||||
if (!msg.isEmpty()) {
|
||||
if (actionbar) PlayerData.get(player).displayActionBar(msg);
|
||||
else player.sendMessage(msg);
|
||||
}
|
||||
return !msg.isEmpty();
|
||||
message.send(player);
|
||||
return !message.getLines().isEmpty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ public class Party implements AbstractParty {
|
||||
if (owner.equals(data)) {
|
||||
owner = members.get(0);
|
||||
if (notify && owner.isOnline())
|
||||
MMOCore.plugin.configManager.getSimpleMessage("transfer-party-ownership").send(owner.getPlayer());
|
||||
ConfigMessage.fromKey("transfer-party-ownership").send(owner.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
@ -158,8 +158,8 @@ public class Party implements AbstractParty {
|
||||
public void sendInvite(PlayerData inviter, PlayerData target) {
|
||||
invites.put(target.getUniqueId(), System.currentTimeMillis());
|
||||
Request request = new PartyInvite(this, inviter, target);
|
||||
new ConfigMessage("party-invite").addPlaceholders("player", inviter.getPlayer().getName(), "uuid", request.getUniqueId().toString())
|
||||
.sendAsJSon(target.getPlayer());
|
||||
ConfigMessage.fromKey("party-invite").addPlaceholders("player", inviter.getPlayer().getName(), "uuid", request.getUniqueId().toString())
|
||||
.send(target.getPlayer());
|
||||
|
||||
MMOCore.plugin.requestManager.registerRequest(request);
|
||||
}
|
||||
|
@ -1,9 +1,10 @@
|
||||
package net.Indyuce.mmocore.party.provided;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import net.Indyuce.mmocore.api.player.social.Request;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
|
||||
public class PartyInvite extends Request {
|
||||
private final Party party;
|
||||
@ -26,17 +27,17 @@ public class PartyInvite extends Request {
|
||||
@Override
|
||||
public void whenAccepted() {
|
||||
if (party.getMembers().size() >= MMOCore.plugin.configManager.maxPartyPlayers) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("party-is-full").send(getTarget().getPlayer());
|
||||
ConfigMessage.fromKey("party-is-full").send(getTarget().getPlayer());
|
||||
return;
|
||||
}
|
||||
if (getCreator().isOnline())
|
||||
party.removeLastInvite(getCreator().getPlayer());
|
||||
party.getMembers().forEach(member -> {
|
||||
if (member.isOnline())
|
||||
MMOCore.plugin.configManager.getSimpleMessage("party-joined-other", "player", getTarget().getPlayer().getName()).send(member.getPlayer());
|
||||
ConfigMessage.fromKey("party-joined-other", "player", getTarget().getPlayer().getName()).send(member.getPlayer());
|
||||
});
|
||||
if (party.getOwner().isOnline())
|
||||
MMOCore.plugin.configManager.getSimpleMessage("party-joined", "owner", party.getOwner().getPlayer().getName()).send(getTarget().getPlayer());
|
||||
ConfigMessage.fromKey("party-joined", "owner", party.getOwner().getPlayer().getName()).send(getTarget().getPlayer());
|
||||
party.addMember(getTarget());
|
||||
InventoryManager.PARTY_VIEW.newInventory(getTarget()).open();
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
package net.Indyuce.mmocore.party.provided;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.event.social.PartyChatEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.manager.ConfigManager;
|
||||
import net.Indyuce.mmocore.party.AbstractParty;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -32,13 +32,12 @@ public class PartyListener implements Listener {
|
||||
event.setCancelled(true);
|
||||
|
||||
// Running it in a delayed task is recommended
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> {
|
||||
ConfigManager.SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("party-chat", "player", data.getPlayer().getName(), "message",
|
||||
Bukkit.getScheduler().runTask(MMOCore.plugin, () -> {
|
||||
ConfigMessage message = ConfigMessage.fromKey("party-chat", "player", data.getPlayer().getName(), "message",
|
||||
event.getMessage().substring(MMOCore.plugin.configManager.partyChatPrefix.length()));
|
||||
PartyChatEvent called = new PartyChatEvent(party, data, format.message());
|
||||
PartyChatEvent called = new PartyChatEvent(party, data, message.asLine());
|
||||
Bukkit.getPluginManager().callEvent(called);
|
||||
if (!called.isCancelled())
|
||||
party.getOnlineMembers().forEach(member -> format.send(member.getPlayer()));
|
||||
if (!called.isCancelled()) party.getOnlineMembers().forEach(member -> message.send(member.getPlayer()));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package net.Indyuce.mmocore.player;
|
||||
|
||||
import io.lumine.mythic.lib.util.Closeable;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.event.PlayerCombatEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.command.PvpModeCommand;
|
||||
@ -37,7 +38,7 @@ public class CombatHandler implements Closeable {
|
||||
// Entering combat
|
||||
} else {
|
||||
lastEntry = System.currentTimeMillis();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("now-in-combat").send(player.getPlayer());
|
||||
ConfigMessage.fromKey("now-in-combat").send(player.getPlayer());
|
||||
Bukkit.getPluginManager().callEvent(new PlayerCombatEvent(player, true));
|
||||
task = newTask();
|
||||
}
|
||||
@ -109,7 +110,7 @@ public class CombatHandler implements Closeable {
|
||||
|
||||
if (player.isOnline()) {
|
||||
Bukkit.getPluginManager().callEvent(new PlayerCombatEvent(player, false));
|
||||
MMOCore.plugin.configManager.getSimpleMessage("leave-combat").send(player.getPlayer());
|
||||
ConfigMessage.fromKey("leave-combat").send(player.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ public class CastableSkill extends Skill {
|
||||
|
||||
// Skill is not usable yet
|
||||
if (!playerData.hasUnlockedLevel(skill)) {
|
||||
if (loud) MMOCore.plugin.configManager.getSimpleMessage("skill-level-not-met").send(playerData.getPlayer());
|
||||
if (loud) ConfigMessage.fromKey("skill-level-not-met").send(playerData.getPlayer());
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -59,14 +59,14 @@ public class CastableSkill extends Skill {
|
||||
|
||||
// Cooldown check
|
||||
if (skillMeta.getCaster().getData().getCooldownMap().isOnCooldown(this)) {
|
||||
if (loud) MMOCore.plugin.configManager.getSimpleMessage("casting.on-cooldown",
|
||||
if (loud) ConfigMessage.fromKey("casting.on-cooldown",
|
||||
"cooldown", MythicLib.plugin.getMMOConfig().decimal.format(skillMeta.getCaster().getData().getCooldownMap().getCooldown(this))).send(playerData.getPlayer());
|
||||
return false;
|
||||
}
|
||||
|
||||
// Mana cost
|
||||
if (playerData.getMana() < skillMeta.getParameter("mana")) {
|
||||
if (loud) MMOCore.plugin.configManager.getSimpleMessage("casting.no-mana",
|
||||
if (loud) ConfigMessage.fromKey("casting.no-mana",
|
||||
"mana-required", MythicLib.plugin.getMMOConfig().decimal.format((skillMeta.getParameter("mana") - playerData.getMana())),
|
||||
"mana", playerData.getProfess().getManaDisplay().getName()).send(playerData.getPlayer());
|
||||
return false;
|
||||
@ -75,7 +75,7 @@ public class CastableSkill extends Skill {
|
||||
// Stamina cost
|
||||
if (playerData.getStamina() < skillMeta.getParameter("stamina")) {
|
||||
|
||||
if (loud) MMOCore.plugin.configManager.getSimpleMessage("casting.no-stamina").send(playerData.getPlayer());
|
||||
if (loud) ConfigMessage.fromKey("casting.no-stamina").send(playerData.getPlayer());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -5,11 +5,15 @@ import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.player.PlayerMetadata;
|
||||
import io.lumine.mythic.lib.skill.trigger.TriggerMetadata;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.skill.ClassSkill;
|
||||
import net.Indyuce.mmocore.skill.cast.*;
|
||||
import net.Indyuce.mmocore.skill.cast.PlayerKey;
|
||||
import net.Indyuce.mmocore.skill.cast.SkillCastingHandler;
|
||||
import net.Indyuce.mmocore.skill.cast.SkillCastingInstance;
|
||||
import net.Indyuce.mmocore.skill.cast.SkillCastingMode;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -59,11 +63,11 @@ public class SkillBar extends SkillCastingHandler {
|
||||
}
|
||||
|
||||
public class CustomSkillCastingInstance extends SkillCastingInstance {
|
||||
private final String ready = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.ready").message();
|
||||
private final String onCooldown = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.on-cooldown").message();
|
||||
private final String noMana = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.no-mana").message();
|
||||
private final String noStamina = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.no-stamina").message();
|
||||
private final String split = MMOCore.plugin.configManager.getSimpleMessage("casting.split").message();
|
||||
private final String ready = ConfigMessage.fromKey("casting.action-bar.ready").asLine();
|
||||
private final String onCooldown = ConfigMessage.fromKey("casting.action-bar.on-cooldown").asLine();
|
||||
private final String noMana = ConfigMessage.fromKey("casting.action-bar.no-mana").asLine();
|
||||
private final String noStamina = ConfigMessage.fromKey("casting.action-bar.no-stamina").asLine();
|
||||
private final String split = ConfigMessage.fromKey("casting.split").asLine();
|
||||
|
||||
private int j;
|
||||
|
||||
@ -113,7 +117,7 @@ public class SkillBar extends SkillCastingHandler {
|
||||
|
||||
if (getCaster().leaveSkillCasting()) {
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.SPELL_CAST_END).playTo(player);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("casting.no-longer").send(getCaster().getPlayer());
|
||||
ConfigMessage.fromKey("casting.no-longer").send(getCaster().getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package net.Indyuce.mmocore.listener;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.UtilityMethods;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.block.BlockInfo;
|
||||
import net.Indyuce.mmocore.api.block.VanillaBlockType;
|
||||
import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
|
||||
@ -77,13 +78,11 @@ public class BlockListener implements Listener {
|
||||
boolean canBreak = true;
|
||||
ItemStack item = player.getInventory().getItemInMainHand();
|
||||
if (!MMOCore.plugin.restrictionManager.checkPermissions(item, info.getBlock())) {
|
||||
MMOCore.plugin.configManager.getSimpleMessage("cannot-break").send(player);
|
||||
ConfigMessage.fromKey("cannot-break").send(player);
|
||||
canBreak = false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Find the block drops
|
||||
*/
|
||||
// Find the block drops
|
||||
boolean conditionsMet = !info.hasDropTable() || info.getDropTable().areConditionsMet(new ConditionInstance(player));
|
||||
List<ItemStack> drops = conditionsMet && info.hasDropTable() ? info.getDropTable().collect(new LootBuilder(PlayerData.get(player), 0)) : new ArrayList<>();
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
package net.Indyuce.mmocore.listener;
|
||||
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.event.social.GuildChatEvent;
|
||||
import net.Indyuce.mmocore.manager.ConfigManager;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -10,8 +11,6 @@ import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
|
||||
public class GuildListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void a(AsyncPlayerChatEvent event) {
|
||||
@ -24,12 +23,10 @@ public class GuildListener implements Listener {
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
/*
|
||||
* running it in a delayed task is recommended
|
||||
*/
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> {
|
||||
ConfigManager.SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("guild-chat", "player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", event.getMessage().substring(MMOCore.plugin.dataProvider.getGuildManager().getConfig().getPrefix().length()));
|
||||
GuildChatEvent called = new GuildChatEvent(data, format.message());
|
||||
// Run it sync
|
||||
Bukkit.getScheduler().runTask(MMOCore.plugin, () -> {
|
||||
ConfigMessage format = ConfigMessage.fromKey("guild-chat", "player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", event.getMessage().substring(MMOCore.plugin.dataProvider.getGuildManager().getConfig().getPrefix().length()));
|
||||
GuildChatEvent called = new GuildChatEvent(data, format.asLine());
|
||||
Bukkit.getPluginManager().callEvent(called);
|
||||
if (!called.isCancelled())
|
||||
data.getGuild().forEachMember(member -> {
|
||||
|
@ -2,12 +2,13 @@ package net.Indyuce.mmocore.listener;
|
||||
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.waypoint.Waypoint;
|
||||
import net.Indyuce.mmocore.waypoint.WaypointOption;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
|
||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||
import net.Indyuce.mmocore.waypoint.Waypoint;
|
||||
import net.Indyuce.mmocore.waypoint.WaypointOption;
|
||||
import org.bukkit.Particle;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -35,7 +36,7 @@ public class WaypointsListener implements Listener {
|
||||
if (waypoint.hasOption(WaypointOption.UNLOCKABLE) && !data.hasWaypoint(waypoint)) {
|
||||
data.unlockWaypoint(waypoint);
|
||||
new SmallParticleEffect(player, Particle.SPELL_WITCH);
|
||||
MMOCore.plugin.configManager.getSimpleMessage("new-waypoint", "waypoint", waypoint.getName()).send(player);
|
||||
ConfigMessage.fromKey("new-waypoint", "waypoint", waypoint.getName()).send(player);
|
||||
MMOCore.plugin.soundManager.getSound(SoundEvent.WARP_UNLOCK).playTo(player);
|
||||
return;
|
||||
}
|
||||
@ -64,7 +65,7 @@ public class WaypointsListener implements Listener {
|
||||
|
||||
playerData.unlockWaypoint(waypoint);
|
||||
event.getItem().setAmount(event.getItem().getAmount() - 1); // Consume item
|
||||
MMOCore.plugin.configManager.getSimpleMessage("new-waypoint-book", "waypoint", waypoint.getName()).send(event.getPlayer());
|
||||
ConfigMessage.fromKey("new-waypoint-book", "waypoint", waypoint.getName()).send(event.getPlayer());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,6 @@ public class DeathExperienceLoss implements Listener {
|
||||
int loss = (int) (data.getExperience() * this.loss);
|
||||
data.setExperience(data.getExperience() - loss);
|
||||
if (data.isOnline())
|
||||
new ConfigMessage("death-exp-loss").addPlaceholders("loss", "" + loss).send(data.getPlayer());
|
||||
ConfigMessage.fromKey("death-exp-loss").addPlaceholders("loss", "" + loss).send(data.getPlayer());
|
||||
}
|
||||
}
|
||||
|
@ -2,10 +2,11 @@ package net.Indyuce.mmocore.listener.profession;
|
||||
|
||||
import io.lumine.mythic.lib.version.VersionSound;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.event.CustomPlayerFishEvent;
|
||||
import net.Indyuce.mmocore.experience.EXPSource;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
|
||||
import net.Indyuce.mmocore.experience.EXPSource;
|
||||
import net.Indyuce.mmocore.loot.LootBuilder;
|
||||
import net.Indyuce.mmocore.loot.fishing.FishingDropItem;
|
||||
import net.Indyuce.mmocore.manager.profession.FishingManager.FishingDropTable;
|
||||
@ -50,7 +51,7 @@ public class FishingListener implements Listener {
|
||||
return;
|
||||
|
||||
new FishingData(player, hook, table);
|
||||
MMOCoreUtils.displayIndicator(hook.getLocation().add(0, 1.25, 0), MMOCore.plugin.configManager.getSimpleMessage("caught-fish").message());
|
||||
MMOCoreUtils.displayIndicator(hook.getLocation().add(0, 1.25, 0), ConfigMessage.fromKey("caught-fish").asLine());
|
||||
}
|
||||
}
|
||||
|
||||
@ -186,7 +187,7 @@ public class FishingListener implements Listener {
|
||||
// Calculate yeet velocity
|
||||
Item item = hook.getWorld().dropItemNaturally(hook.getLocation(), collect);
|
||||
MMOCoreUtils.displayIndicator(location.add(0, 1.25, 0),
|
||||
MMOCore.plugin.configManager.getSimpleMessage("fish-out-water" + (isCriticalFish() ? "-crit" : "")).message());
|
||||
ConfigMessage.fromKey("fish-out-water" + (isCriticalFish() ? "-crit" : "")).asLine());
|
||||
Vector vec = player.getLocation().subtract(hook.getLocation()).toVector();
|
||||
vec.setY(vec.getY() * .031 + vec.length() * .05);
|
||||
vec.setX(vec.getX() * .08);
|
||||
|
Loading…
Reference in New Issue
Block a user