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