!Everything needed for Custom Blocks

This commit is contained in:
Aria 2019-10-19 20:28:04 +02:00
parent 5a16632610
commit 4f228fd40a
40 changed files with 198 additions and 144 deletions

View File

@ -2,6 +2,7 @@ package net.Indyuce.mmocore;
import java.io.File; import java.io.File;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.text.DecimalFormat;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -208,7 +209,7 @@ public class MMOCore extends JavaPlugin {
Bukkit.getServer().getPluginManager().registerEvents(new MythicMobsDrops(), this); Bukkit.getServer().getPluginManager().registerEvents(new MythicMobsDrops(), this);
getLogger().log(Level.INFO, "Hooked onto MythicMobs"); getLogger().log(Level.INFO, "Hooked onto MythicMobs");
} }
/* /*
* resource regeneration. must check if entity is dead otherwise regen * resource regeneration. must check if entity is dead otherwise regen
* will make the 'respawn' button glitched plus HURT entity effect bug * will make the 'respawn' button glitched plus HURT entity effect bug
@ -246,6 +247,30 @@ public class MMOCore extends JavaPlugin {
saveDefaultConfig(); saveDefaultConfig();
reloadPlugin(); reloadPlugin();
/*
* default action bar.
* only ran if the action bar is enabled
*/
if(getConfig().getBoolean("action-bar.enabled")) {
DecimalFormat format = new DecimalFormat(getConfig().getString("action-bar.decimal"), configManager.formatSymbols);
new BukkitRunnable() {
public void run() {
for (PlayerData data : PlayerData.getAll()) {
if(!data.isCasting()) {
data.displayActionBar(placeholderParser.parse(data.getPlayer(), ChatColor.translateAlternateColorCodes('&', getConfig().getString("action-bar.format")
.replace("{health}", format.format(data.getPlayer().getHealth())).replace("{max_health}", "" + StatType.MAX_HEALTH.format(data.getStats().getStat(StatType.MAX_HEALTH)))
.replace("{mana}", format.format(data.getMana())).replace("{max_mana}", "" + StatType.MAX_MANA.format(data.getStats().getStat(StatType.MAX_MANA)))
.replace("{stamina}", format.format(data.getStamina())).replace("{max_stamina}", "" + StatType.MAX_STAMINA.format(data.getStats().getStat(StatType.MAX_STAMINA)))
.replace("{stellium}", format.format(data.getStellium())).replace("{max_stellium}", "" + StatType.MAX_STELLIUM.format(data.getStats().getStat(StatType.MAX_STELLIUM)))
.replace("{class}", data.getProfess().getName()).replace("{xp}", "" + data.getExperience()).replace("{armor}", "" + StatType.ARMOR.format(data.getStats().getStat(StatType.ARMOR)))
.replace("{level}", "" + data.getLevel()).replace("{name}", data.getPlayer().getDisplayName()))));
}
}
}
}.runTaskTimerAsynchronously(MMOCore.plugin, 100, getConfig().getInt("action-bar.ticks-to-update"));
}
/* /*
* enable debug mode for extra debug tools. * enable debug mode for extra debug tools.
*/ */
@ -293,19 +318,19 @@ public class MMOCore extends JavaPlugin {
FileConfiguration config = new ConfigFile("commands").getConfig(); FileConfiguration config = new ConfigFile("commands").getConfig();
commandMap.register("mmocore", new PlayerStatsCommand(config.getConfigurationSection("player"))); if(config.contains("player")) commandMap.register("mmocore", new PlayerStatsCommand(config.getConfigurationSection("player")));
commandMap.register("mmocore", new AttributesCommand(config.getConfigurationSection("attributes"))); if(config.contains("attributes")) commandMap.register("mmocore", new AttributesCommand(config.getConfigurationSection("attributes")));
commandMap.register("mmocore", new ClassCommand(config.getConfigurationSection("class"))); if(config.contains("class")) commandMap.register("mmocore", new ClassCommand(config.getConfigurationSection("class")));
commandMap.register("mmocore", new WaypointsCommand(config.getConfigurationSection("waypoints"))); if(config.contains("waypoints")) commandMap.register("mmocore", new WaypointsCommand(config.getConfigurationSection("waypoints")));
commandMap.register("mmocore", new QuestsCommand(config.getConfigurationSection("quests"))); if(config.contains("quests")) commandMap.register("mmocore", new QuestsCommand(config.getConfigurationSection("quests")));
commandMap.register("mmocore", new SkillsCommand(config.getConfigurationSection("skills"))); if(config.contains("skills")) commandMap.register("mmocore", new SkillsCommand(config.getConfigurationSection("skills")));
commandMap.register("mmocore", new FriendsCommand(config.getConfigurationSection("friends"))); if(config.contains("friends")) commandMap.register("mmocore", new FriendsCommand(config.getConfigurationSection("friends")));
commandMap.register("mmocore", new PartyCommand(config.getConfigurationSection("party"))); if(config.contains("party")) commandMap.register("mmocore", new PartyCommand(config.getConfigurationSection("party")));
commandMap.register("mmocore", new GuildCommand(config.getConfigurationSection("guild"))); if(config.contains("guild")) commandMap.register("mmocore", new GuildCommand(config.getConfigurationSection("guild")));
if (hasEconomy() && economy.isValid()) { if (hasEconomy() && economy.isValid()) {
commandMap.register("mmocore", new WithdrawCommand(config.getConfigurationSection("withdraw"))); if(config.contains("withdraw")) commandMap.register("mmocore", new WithdrawCommand(config.getConfigurationSection("withdraw")));
commandMap.register("mmocore", new DepositCommand(config.getConfigurationSection("deposit"))); if(config.contains("deposit")) commandMap.register("mmocore", new DepositCommand(config.getConfigurationSection("deposit")));
} }
} }
catch(NoSuchFieldException | IllegalArgumentException | IllegalAccessException ex) { catch(NoSuchFieldException | IllegalArgumentException | IllegalAccessException ex) {

View File

@ -38,7 +38,7 @@ public class Withdraw implements Listener {
return; return;
withdrawing.add(player.getUniqueId()); withdrawing.add(player.getUniqueId());
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("withdrawing")); MMOCore.plugin.configManager.getSimpleMessage("withdrawing").send(player);
Bukkit.getPluginManager().registerEvents(this, MMOCore.plugin); Bukkit.getPluginManager().registerEvents(this, MMOCore.plugin);
Bukkit.getScheduler().runTaskLater(MMOCore.plugin, () -> close(), 20 * 20); Bukkit.getScheduler().runTaskLater(MMOCore.plugin, () -> close(), 20 * 20);
} }
@ -60,7 +60,7 @@ public class Withdraw implements Listener {
if (!event.getPlayer().equals(player)) if (!event.getPlayer().equals(player))
return; return;
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("withdraw-cancel")); MMOCore.plugin.configManager.getSimpleMessage("withdraw-cancel").send(player);
close(); close();
} }
@ -75,13 +75,13 @@ public class Withdraw implements Listener {
try { try {
worth = Integer.parseInt(event.getMessage()); worth = Integer.parseInt(event.getMessage());
} catch (Exception e) { } catch (Exception e) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("wrong-number", "arg", event.getMessage())); MMOCore.plugin.configManager.getSimpleMessage("wrong-number", "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) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-enough-money", "left", "" + -left)); MMOCore.plugin.configManager.getSimpleMessage("not-enough-money", "left", "" + -left).send(player);
return; return;
} }
@ -91,7 +91,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);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("withdrew", "worth", "" + worth)); MMOCore.plugin.configManager.getSimpleMessage("withdrew", "worth", "" + worth).send(player);
}); });
} }

View File

@ -51,9 +51,6 @@ public class Profession {
if (config.contains("on-mine")) if (config.contains("on-mine"))
MMOCore.plugin.mineManager.loadDropTables(config.getConfigurationSection("on-mine")); MMOCore.plugin.mineManager.loadDropTables(config.getConfigurationSection("on-mine"));
if (config.contains("on-mine-playerhead"))
MMOCore.plugin.mineManager.loadPHDropTables(config.getConfigurationSection("on-mine-playerhead"));
if (config.contains("alchemy-experience")) { if (config.contains("alchemy-experience")) {

View File

@ -22,7 +22,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())); paperMeta.setDisplayName(MMOCore.plugin.configManager.getSimpleMessage("player-input.anvil." + type.getLowerCaseName()).message());
paper.setItemMeta(paperMeta); paper.setItemMeta(paperMeta);
MMOCore.plugin.nms.handleInventoryCloseEvent(player); MMOCore.plugin.nms.handleInventoryCloseEvent(player);

View File

@ -15,8 +15,8 @@ public class ChatInput extends PlayerInput {
super(player, output); super(player, output);
player.closeInventory(); player.closeInventory();
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("player-input.chat." + type.getLowerCaseName())); MMOCore.plugin.configManager.getSimpleMessage("player-input.chat." + type.getLowerCaseName()).send(player);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("player-input.chat.cancel")); MMOCore.plugin.configManager.getSimpleMessage("player-input.chat.cancel").send(player);
} }
@Override @Override

View File

@ -18,7 +18,7 @@ public class CombatRunnable extends BukkitRunnable {
config = MMOCore.plugin.configManager; config = MMOCore.plugin.configManager;
if(!config.getSimpleMessage("now-in-combat").isEmpty()) player.getPlayer().sendMessage(config.getSimpleMessage("now-in-combat")); config.getSimpleMessage("now-in-combat").send(player.getPlayer());
Bukkit.getPluginManager().callEvent(new PlayerCombatEvent(player, true)); Bukkit.getPluginManager().callEvent(new PlayerCombatEvent(player, true));
runTaskTimer(MMOCore.plugin, 20, 20); runTaskTimer(MMOCore.plugin, 20, 20);
} }
@ -31,7 +31,7 @@ public class CombatRunnable extends BukkitRunnable {
public void run() { public void run() {
if (lastHit + 10000 < System.currentTimeMillis()) { if (lastHit + 10000 < System.currentTimeMillis()) {
Bukkit.getPluginManager().callEvent(new PlayerCombatEvent(player, false)); Bukkit.getPluginManager().callEvent(new PlayerCombatEvent(player, false));
if(!config.getSimpleMessage("leave-combat").isEmpty()) player.getPlayer().sendMessage(config.getSimpleMessage("leave-combat")); config.getSimpleMessage("leave-combat").send(player.getPlayer());
close(); close();
} }
} }

View File

@ -437,19 +437,18 @@ public class PlayerData {
giveStellium(-waypoint.getStelliumCost()); giveStellium(-waypoint.getStelliumCost());
new BukkitRunnable() { new BukkitRunnable() {
String message = MMOCore.plugin.configManager.getSimpleMessage("warping-comencing");
int x = player.getLocation().getBlockX(), y = player.getLocation().getBlockY(), z = player.getLocation().getBlockZ(), t; int x = player.getLocation().getBlockX(), y = player.getLocation().getBlockY(), z = player.getLocation().getBlockZ(), t;
public void run() { public void run() {
if (player.getLocation().getBlockX() != x || player.getLocation().getBlockY() != y || player.getLocation().getBlockZ() != z) { if (player.getLocation().getBlockX() != x || player.getLocation().getBlockY() != y || player.getLocation().getBlockZ() != z) {
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, .5f); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, .5f);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("warping-canceled")); MMOCore.plugin.configManager.getSimpleMessage("warping-canceled").send(player);
giveStellium(waypoint.getStelliumCost()); giveStellium(waypoint.getStelliumCost());
cancel(); cancel();
return; return;
} }
displayActionBar(message.replace("{left}", "" + ((120 - t) / 20))); MMOCore.plugin.configManager.getSimpleMessage("warping-comencing", "left", "" + ((120 - t) / 20)).send(player);
if (t++ >= 100) { if (t++ >= 100) {
player.teleport(waypoint.getLocation()); player.teleport(waypoint.getLocation());
player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 20, 1, false, false)); player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 20, 1, false, false));
@ -739,10 +738,10 @@ public class PlayerData {
if (!cast.isSuccessful()) { if (!cast.isSuccessful()) {
if (cast.getCancelReason() == CancelReason.MANA) if (cast.getCancelReason() == CancelReason.MANA)
getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("casting.no-mana")); MMOCore.plugin.configManager.getSimpleMessage("casting.no-mana").send(player);
if (cast.getCancelReason() == CancelReason.COOLDOWN) if (cast.getCancelReason() == CancelReason.COOLDOWN)
getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("casting.on-cooldown")); MMOCore.plugin.configManager.getSimpleMessage("casting.on-cooldown").send(player);
return cast; return cast;
} }

View File

@ -87,7 +87,7 @@ public class Professions {
// display hologram // display hologram
if (loc != null && MMOCore.plugin.hologramSupport != null) if (loc != null && MMOCore.plugin.hologramSupport != null)
MMOCore.plugin.hologramSupport.displayIndicator(loc, MMOCore.plugin.configManager.getSimpleMessage("exp-hologram", "exp", "" + value), playerData.getPlayer()); MMOCore.plugin.hologramSupport.displayIndicator(loc, MMOCore.plugin.configManager.getSimpleMessage("exp-hologram", "exp", "" + value).message(), playerData.getPlayer());
int needed, exp, level; int needed, exp, level;
boolean check = false; boolean check = false;
@ -108,6 +108,6 @@ public class Professions {
int chars = (int) ((double) exp / needed * 20); int chars = (int) ((double) exp / needed * 20);
for (int j = 0; j < 20; j++) for (int j = 0; j < 20; j++)
bar += (j == chars ? "" + ChatColor.WHITE + ChatColor.BOLD : "") + "|"; bar += (j == chars ? "" + ChatColor.WHITE + ChatColor.BOLD : "") + "|";
playerData.displayActionBar(MMOCore.plugin.configManager.getSimpleMessage("exp-notification", "profession", profession.getName(), "progress", bar, "ratio", MMOCore.plugin.configManager.decimal.format((double) exp / needed * 100))); MMOCore.plugin.configManager.getSimpleMessage("exp-notification", "profession", profession.getName(), "progress", bar, "ratio", MMOCore.plugin.configManager.decimal.format((double) exp / needed * 100)).send(playerData.getPlayer());
} }
} }

View File

@ -27,8 +27,8 @@ public class FriendRequest extends Request {
getCreator().setLastFriendRequest(0); getCreator().setLastFriendRequest(0);
getCreator().addFriend(target.getUniqueId()); getCreator().addFriend(target.getUniqueId());
target.addFriend(getCreator().getUniqueId()); target.addFriend(getCreator().getUniqueId());
getCreator().getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", target.getPlayer().getName())); MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", target.getPlayer().getName()).send(getCreator().getPlayer());
target.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", getCreator().getPlayer().getName())); MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", getCreator().getPlayer().getName()).send(target.getPlayer());
MMOCore.plugin.requestManager.unregisterRequest(getUniqueId()); MMOCore.plugin.requestManager.unregisterRequest(getUniqueId());
} }
} }

View File

@ -67,7 +67,7 @@ public class Party {
// transfer ownership // transfer ownership
if (owner.equals(data)) { if (owner.equals(data)) {
owner = members.get(0); owner = members.get(0);
owner.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("transfer-party-ownership")); MMOCore.plugin.configManager.getSimpleMessage("transfer-party-ownership").send(owner.getPlayer());
} }
} }

View File

@ -29,8 +29,8 @@ public class PartyInvite extends Request {
public void accept() { public void accept() {
party.removeLastInvite(getCreator().getPlayer()); party.removeLastInvite(getCreator().getPlayer());
party.getMembers().forEach(member -> member.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-joined-other", "player", target.getPlayer().getName()))); party.getMembers().forEach(member -> MMOCore.plugin.configManager.getSimpleMessage("party-joined-other", "player", target.getPlayer().getName()).send(member.getPlayer()));
target.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-joined", "owner", party.getOwner().getPlayer().getName())); MMOCore.plugin.configManager.getSimpleMessage("party-joined", "owner", party.getOwner().getPlayer().getName()).send(target.getPlayer());
party.addMember(target); party.addMember(target);
InventoryManager.PARTY_VIEW.newInventory(target).open(); InventoryManager.PARTY_VIEW.newInventory(target).open();
MMOCore.plugin.requestManager.unregisterRequest(getUniqueId()); MMOCore.plugin.requestManager.unregisterRequest(getUniqueId());

View File

@ -74,7 +74,7 @@ public class Guild {
// transfer ownership // transfer ownership
if (owner.equals(data)) { if (owner.equals(data)) {
owner = members.get(0); owner = members.get(0);
owner.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("transfer-guild-ownership")); MMOCore.plugin.configManager.getSimpleMessage("transfer-guild-ownership").send(owner.getPlayer());
} }
} }

View File

@ -30,8 +30,8 @@ public class GuildInvite extends Request {
public void accept() { public void accept() {
guild.removeLastInvite(getCreator().getPlayer()); guild.removeLastInvite(getCreator().getPlayer());
guild.getMembers().forEach(member -> member.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("guild-joined-other", "player", target.getPlayer().getName()))); guild.getMembers().forEach(member -> MMOCore.plugin.configManager.getSimpleMessage("guild-joined-other", "player", target.getPlayer().getName()).send(member.getPlayer()));
target.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("guild-joined", "owner", guild.getOwner().getPlayer().getName())); MMOCore.plugin.configManager.getSimpleMessage("guild-joined", "owner", guild.getOwner().getPlayer().getName()).send(target.getPlayer());
guild.addMember(target); guild.addMember(target);
InventoryManager.GUILD_VIEW.newInventory(target).open(); InventoryManager.GUILD_VIEW.newInventory(target).open();
MMOCore.plugin.requestManager.unregisterRequest(getUniqueId()); MMOCore.plugin.requestManager.unregisterRequest(getUniqueId());

View File

@ -22,7 +22,7 @@ public class SkillsCommand extends BukkitCommand {
if (sender instanceof Player) { if (sender instanceof Player) {
PlayerData data = PlayerData.get((Player) sender); PlayerData data = PlayerData.get((Player) sender);
if (data.getProfess().getSkills().size() < 1) { if (data.getProfess().getSkills().size() < 1) {
sender.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("no-class-skill")); MMOCore.plugin.configManager.getSimpleMessage("no-class-skill").send((Player) sender);
return true; return true;
} }

View File

@ -39,7 +39,7 @@ public class WithdrawCommand extends BukkitCommand {
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])); sender.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("wrong-number", "arg", "" + args[0]).message());
return true; return true;
} }
@ -52,14 +52,14 @@ public class WithdrawCommand extends BukkitCommand {
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) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-enough-money", "left", "" + -left)); MMOCore.plugin.configManager.getSimpleMessage("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);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("withdrew", "worth", "" + amount)); MMOCore.plugin.configManager.getSimpleMessage("withdrew", "worth", "" + amount).send(player);
return true; return true;
} }
} }

View File

@ -89,13 +89,13 @@ public class AttributeView extends EditableInventory {
if (item.getFunction().equalsIgnoreCase("reallocation")) { if (item.getFunction().equalsIgnoreCase("reallocation")) {
int spent = playerData.getAttributes().countSkillPoints(); int spent = playerData.getAttributes().countSkillPoints();
if (spent < 1) { if (spent < 1) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("no-attribute-points-spent")); MMOCore.plugin.configManager.getSimpleMessage("no-attribute-points-spent").send(player);
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
return; return;
} }
if (playerData.getAttributeReallocationPoints() < 1) { if (playerData.getAttributeReallocationPoints() < 1) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-attribute-reallocation-point")); MMOCore.plugin.configManager.getSimpleMessage("not-attribute-reallocation-point").send(player);
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
return; return;
} }
@ -103,7 +103,7 @@ public class AttributeView extends EditableInventory {
playerData.getAttributes().getAttributeInstances().forEach(ins -> ins.setBase(0)); playerData.getAttributes().getAttributeInstances().forEach(ins -> ins.setBase(0));
playerData.giveAttributePoints(spent); playerData.giveAttributePoints(spent);
playerData.giveAttributeReallocationPoints(-1); playerData.giveAttributeReallocationPoints(-1);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("attribute-points-reallocated", "points", "" + playerData.getAttributePoints())); MMOCore.plugin.configManager.getSimpleMessage("attribute-points-reallocated", "points", "" + playerData.getAttributePoints()).send(player);
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 1);
open(); open();
} }
@ -112,21 +112,21 @@ public class AttributeView extends EditableInventory {
PlayerAttribute attribute = ((AttributeItem) item).attribute; PlayerAttribute attribute = ((AttributeItem) item).attribute;
if (playerData.getAttributePoints() < 1) { if (playerData.getAttributePoints() < 1) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-attribute-point")); MMOCore.plugin.configManager.getSimpleMessage("not-attribute-point").send(player);
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
return; return;
} }
AttributeInstance ins = playerData.getAttributes().getInstance(attribute); AttributeInstance ins = playerData.getAttributes().getInstance(attribute);
if (attribute.hasMax() && ins.getBase() >= attribute.getMax()) { if (attribute.hasMax() && ins.getBase() >= attribute.getMax()) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("attribute-max-points-hit")); MMOCore.plugin.configManager.getSimpleMessage("attribute-max-points-hit").send(player);
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
return; return;
} }
ins.addBase(1); ins.addBase(1);
playerData.giveAttributePoints(-1); playerData.giveAttributePoints(-1);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("attribute-level-up", "attribute", attribute.getName(), "level", "" + ins.getBase())); MMOCore.plugin.configManager.getSimpleMessage("attribute-level-up", "attribute", attribute.getName(), "level", "" + ins.getBase()).send(player);
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 1);
open(); open();
} }

View File

@ -131,7 +131,7 @@ public class ClassConfirmation extends EditableInventory {
(playerData.hasSavedClass(profess) ? playerData.getClassInfo(profess) : new SavedClassInformation(1, 0, 0, 0, 0)).load(profess, playerData); (playerData.hasSavedClass(profess) ? playerData.getClassInfo(profess) : new SavedClassInformation(1, 0, 0, 0, 0)).load(profess, playerData);
while (playerData.hasSkillBound(0)) while (playerData.hasSkillBound(0))
playerData.unbindSkill(0); playerData.unbindSkill(0);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("class-select", "class", profess.getName())); MMOCore.plugin.configManager.getSimpleMessage("class-select", "class", profess.getName()).send(player);
player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1); player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1);
player.closeInventory(); player.closeInventory();
} }

View File

@ -124,7 +124,7 @@ public class ClassSelect extends EditableInventory {
PlayerClass profess = MMOCore.plugin.classManager.get(tag); PlayerClass profess = MMOCore.plugin.classManager.get(tag);
if (profess.equals(playerData.getProfess())) { if (profess.equals(playerData.getProfess())) {
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("already-on-class", "class", profess.getName())); MMOCore.plugin.configManager.getSimpleMessage("already-on-class", "class", profess.getName()).send(player);
return; return;
} }

View File

@ -211,7 +211,7 @@ public class QuestViewer extends EditableInventory {
if (event.getAction() == InventoryAction.PICKUP_HALF) { if (event.getAction() == InventoryAction.PICKUP_HALF) {
playerData.getQuestData().start(null); playerData.getQuestData().start(null);
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1, 1);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("cancel-quest")); MMOCore.plugin.configManager.getSimpleMessage("cancel-quest").send(player);
open(); open();
} }
return; return;
@ -221,7 +221,7 @@ public class QuestViewer extends EditableInventory {
* the player cannot start a new quest if he is already * the player cannot start a new quest if he is already
* doing one. * doing one.
*/ */
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("already-on-quest")); MMOCore.plugin.configManager.getSimpleMessage("already-on-quest").send(player);
return; return;
} }
@ -230,13 +230,13 @@ public class QuestViewer extends EditableInventory {
*/ */
int level; int level;
if (playerData.getLevel() < (level = quest.getLevelRestriction(null))) { if (playerData.getLevel() < (level = quest.getLevelRestriction(null))) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("quest-level-restriction", "level", "Lvl", "count", "" + level)); MMOCore.plugin.configManager.getSimpleMessage("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))) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("quest-level-restriction", "level", profession.getName() + " Lvl", "count", "" + level)); MMOCore.plugin.configManager.getSimpleMessage("quest-level-restriction", "level", profession.getName() + " Lvl", "count", "" + level).send(player);
return; return;
} }
@ -247,7 +247,7 @@ public class QuestViewer extends EditableInventory {
* start it again. * start it again.
*/ */
if (!quest.isRedoable()) { if (!quest.isRedoable()) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("cant-redo-quest")); MMOCore.plugin.configManager.getSimpleMessage("cant-redo-quest").send(player);
return; return;
} }
@ -255,7 +255,7 @@ public class QuestViewer extends EditableInventory {
* *
*/ */
if (!playerData.getQuestData().checkCooldownAvailability(quest)) { if (!playerData.getQuestData().checkCooldownAvailability(quest)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("quest-cooldown", "delay", new DelayFormat(2).format(playerData.getQuestData().getDelayFeft(quest)))); MMOCore.plugin.configManager.getSimpleMessage("quest-cooldown", "delay", new DelayFormat(2).format(playerData.getQuestData().getDelayFeft(quest))).send(player);
return; return;
} }
} }
@ -263,7 +263,7 @@ public class QuestViewer extends EditableInventory {
/* /*
* eventually start a new quest. * eventually start a new quest.
*/ */
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("start-quest", "quest", quest.getName())); MMOCore.plugin.configManager.getSimpleMessage("start-quest", "quest", quest.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);
playerData.getQuestData().start(quest); playerData.getQuestData().start(quest);
open(); open();

View File

@ -336,7 +336,7 @@ public class SkillList extends EditableInventory {
// unbind if there is a current spell. // unbind if there is a current spell.
if (event.getAction() == InventoryAction.PICKUP_HALF) { if (event.getAction() == InventoryAction.PICKUP_HALF) {
if (!playerData.hasSkillBound(index)) { if (!playerData.hasSkillBound(index)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("no-skill-bound")); MMOCore.plugin.configManager.getSimpleMessage("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;
} }
@ -351,13 +351,13 @@ public class SkillList extends EditableInventory {
return; return;
if (selected.getSkill().isPassive()) { if (selected.getSkill().isPassive()) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-active-skill")); MMOCore.plugin.configManager.getSimpleMessage("not-active-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;
} }
if (!selected.isUnlocked(playerData)) { if (!selected.isUnlocked(playerData)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-unlocked-skill")); MMOCore.plugin.configManager.getSimpleMessage("not-unlocked-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;
} }
@ -382,26 +382,26 @@ public class SkillList extends EditableInventory {
*/ */
} else if (item.getFunction().equals("upgrade")) { } else if (item.getFunction().equals("upgrade")) {
if (!selected.isUnlocked(playerData)) { if (!selected.isUnlocked(playerData)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-unlocked-skill")); MMOCore.plugin.configManager.getSimpleMessage("not-unlocked-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;
} }
if (playerData.getSkillPoints() < 1) { if (playerData.getSkillPoints() < 1) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-enough-skill-points")); MMOCore.plugin.configManager.getSimpleMessage("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 (playerData.getSkillLevel(selected.getSkill()) >= selected.getMaxLevel()) { if (playerData.getSkillLevel(selected.getSkill()) >= selected.getMaxLevel()) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("skill-max-level-hit")); MMOCore.plugin.configManager.getSimpleMessage("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;
} }
playerData.giveSkillPoints(-1); playerData.giveSkillPoints(-1);
playerData.setSkillLevel(selected.getSkill(), playerData.getSkillLevel(selected.getSkill()) + 1); playerData.setSkillLevel(selected.getSkill(), playerData.getSkillLevel(selected.getSkill()) + 1);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("upgrade-skill", "skill", selected.getSkill().getName(), "level", "" + playerData.getSkillLevel(selected.getSkill()))); MMOCore.plugin.configManager.getSimpleMessage("upgrade-skill", "skill", selected.getSkill().getName(), "level", "" + 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();
} }

View File

@ -67,7 +67,7 @@ public class SubclassConfirmation extends EditableInventory {
return; return;
playerData.setClass(profess); playerData.setClass(profess);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("class-select", "class", profess.getName())); MMOCore.plugin.configManager.getSimpleMessage("class-select", "class", profess.getName()).send(player);
player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1); player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1);
player.closeInventory(); player.closeInventory();
} }

View File

@ -179,29 +179,29 @@ public class WaypointViewer extends EditableInventory {
Waypoint waypoint = MMOCore.plugin.waypointManager.get(tag); Waypoint waypoint = MMOCore.plugin.waypointManager.get(tag);
if (!playerData.hasWaypoint(waypoint)) { if (!playerData.hasWaypoint(waypoint)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-unlocked-waypoint")); MMOCore.plugin.configManager.getSimpleMessage("not-unlocked-waypoint").send(player);
return; return;
} }
if (waypoint.equals(current)) { if (waypoint.equals(current)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("standing-on-waypoint")); MMOCore.plugin.configManager.getSimpleMessage("standing-on-waypoint").send(player);
return; return;
} }
if (current == null && !waypoint.isDynamic()) { if (current == null && !waypoint.isDynamic()) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-dynamic-waypoint")); MMOCore.plugin.configManager.getSimpleMessage("not-dynamic-waypoint").send(player);
return; return;
} }
double left = waypoint.getStelliumCost() - playerData.getStellium(); double left = waypoint.getStelliumCost() - playerData.getStellium();
if (left > 0) { if (left > 0) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-enough-stellium", "more", decimal.format(left))); MMOCore.plugin.configManager.getSimpleMessage("not-enough-stellium", "more", decimal.format(left)).send(player);
return; return;
} }
double next = (double) playerData.getNextWaypointMillis() / 1000; double next = (double) playerData.getNextWaypointMillis() / 1000;
if (next < 0) { if (next < 0) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-enough-stellium", "cooldown", decimal.format(next))); MMOCore.plugin.configManager.getSimpleMessage("not-enough-stellium", "cooldown", decimal.format(next)).send(player);
return; return;
} }

View File

@ -63,7 +63,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);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("deposit", "worth", "" + deposit)); MMOCore.plugin.configManager.getSimpleMessage("deposit", "worth", "" + deposit).send(player);
return; return;
} }

View File

@ -197,35 +197,35 @@ public class EditableFriendList extends EditableInventory {
long remaining = playerData.getLastFriendRequest() + 60 * 2 * 1000 - System.currentTimeMillis(); long remaining = playerData.getLastFriendRequest() + 60 * 2 * 1000 - System.currentTimeMillis();
if (remaining > 0) { if (remaining > 0) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("friend-request-cooldown", "cooldown", new DelayFormat().format(remaining))); MMOCore.plugin.configManager.getSimpleMessage("friend-request-cooldown", "cooldown", new DelayFormat().format(remaining)).send(player);
return; return;
} }
MMOCore.plugin.configManager.newPlayerInput(player, InputType.FRIEND_REQUEST, (input) -> { MMOCore.plugin.configManager.newPlayerInput(player, InputType.FRIEND_REQUEST, (input) -> {
Player target = Bukkit.getPlayer(input); Player target = Bukkit.getPlayer(input);
if (target == null) { if (target == null) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input)); MMOCore.plugin.configManager.getSimpleMessage("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())) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("already-friends", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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())) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("cant-request-to-yourself")); MMOCore.plugin.configManager.getSimpleMessage("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));
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("sent-friend-request", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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();
}); });

View File

@ -55,7 +55,7 @@ public class EditableFriendRemoval extends EditableInventory {
playerData.removeFriend(friend.getUniqueId()); playerData.removeFriend(friend.getUniqueId());
new OfflinePlayerData(friend.getUniqueId()).removeFriend(playerData.getUniqueId()); new OfflinePlayerData(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);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("no-longer-friends", "unfriend", friend.getName())); MMOCore.plugin.configManager.getSimpleMessage("no-longer-friends", "unfriend", friend.getName()).send(player);
last.open(); last.open();
} }

View File

@ -135,7 +135,7 @@ public class EditableGuildView extends EditableInventory {
if (item.getFunction().equals("invite")) { if (item.getFunction().equals("invite")) {
if (playerData.getGuild().getMembers().count() >= max) { if (playerData.getGuild().getMembers().count() >= max) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("guild-is-full")); MMOCore.plugin.configManager.getSimpleMessage("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;
} }
@ -143,7 +143,7 @@ public class EditableGuildView extends EditableInventory {
MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_INVITE, (input) -> { MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_INVITE, (input) -> {
Player target = Bukkit.getPlayer(input); Player target = Bukkit.getPlayer(input);
if (target == null) { if (target == null) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input)); MMOCore.plugin.configManager.getSimpleMessage("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;
@ -151,21 +151,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) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("guild-invite-cooldown", "player", target.getName(), "cooldown", new DelayFormat().format(remaining))); MMOCore.plugin.configManager.getSimpleMessage("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().getMembers().has(targetData)) { if (playerData.getGuild().getMembers().has(targetData)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("already-in-guild", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("sent-guild-invite", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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();
}); });
@ -180,7 +180,7 @@ public class EditableGuildView extends EditableInventory {
return; return;
playerData.getGuild().removeMember(PlayerData.get(target)); playerData.getGuild().removeMember(PlayerData.get(target));
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("kick-from-guild", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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);
} }
} }

View File

@ -135,7 +135,7 @@ public class EditablePartyView extends EditableInventory {
if (item.getFunction().equals("invite")) { if (item.getFunction().equals("invite")) {
if (playerData.getParty().getMembers().count() >= max) { if (playerData.getParty().getMembers().count() >= max) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-is-full")); MMOCore.plugin.configManager.getSimpleMessage("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;
} }
@ -143,7 +143,7 @@ public class EditablePartyView extends EditableInventory {
MMOCore.plugin.configManager.newPlayerInput(player, InputType.PARTY_INVITE, (input) -> { MMOCore.plugin.configManager.newPlayerInput(player, InputType.PARTY_INVITE, (input) -> {
Player target = Bukkit.getPlayer(input); Player target = Bukkit.getPlayer(input);
if (target == null) { if (target == null) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input)); MMOCore.plugin.configManager.getSimpleMessage("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;
@ -151,21 +151,21 @@ public class EditablePartyView extends EditableInventory {
long remaining = playerData.getParty().getLastInvite(target) + 60 * 2 * 1000 - System.currentTimeMillis(); long remaining = playerData.getParty().getLastInvite(target) + 60 * 2 * 1000 - System.currentTimeMillis();
if (remaining > 0) { if (remaining > 0) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-invite-cooldown", "player", target.getName(), "cooldown", new DelayFormat().format(remaining))); MMOCore.plugin.configManager.getSimpleMessage("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 (playerData.getParty().getMembers().has(targetData)) { if (playerData.getParty().getMembers().has(targetData)) {
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("already-in-party", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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;
} }
playerData.getParty().sendPartyInvite(playerData, targetData); playerData.getParty().sendPartyInvite(playerData, targetData);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("sent-party-invite", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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();
}); });
@ -180,7 +180,7 @@ public class EditablePartyView extends EditableInventory {
return; return;
playerData.getParty().removeMember(PlayerData.get(target)); playerData.getParty().removeMember(PlayerData.get(target));
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("kick-from-party", "player", target.getName())); MMOCore.plugin.configManager.getSimpleMessage("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);
} }
} }

View File

@ -105,7 +105,7 @@ public class BlockListener implements Listener {
* enable block regen. * enable block regen.
*/ */
if (info.hasRegen()) if (info.hasRegen())
MMOCore.plugin.mineManager.initialize(info.generateRegenInfo(event.getBlock().getLocation())); MMOCore.plugin.mineManager.initialize(info.generateRegenInfo(event.getBlock()));
} }
} }

View File

@ -9,6 +9,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.social.GuildChatEvent; import net.Indyuce.mmocore.api.event.social.GuildChatEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.ConfigManager.SimpleMessage;
public class GuildListener implements Listener { public class GuildListener implements Listener {
@ -27,13 +28,13 @@ public class GuildListener implements Listener {
* running it in a delayed task is recommended * running it in a delayed task is recommended
*/ */
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> { Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> {
String format = MMOCore.plugin.configManager.getSimpleMessage("guild-chat", "player", data.getPlayer().getName(), "message", event.getMessage().substring(MMOCore.plugin.configManager.guildChatPrefix.length())); SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("guild-chat", "player", data.getPlayer().getName(), "message", event.getMessage().substring(MMOCore.plugin.configManager.guildChatPrefix.length()));
GuildChatEvent called = new GuildChatEvent(data, format); GuildChatEvent called = new GuildChatEvent(data, format.message());
Bukkit.getPluginManager().callEvent(called); Bukkit.getPluginManager().callEvent(called);
if (!called.isCancelled()) ; //remove if (!called.isCancelled()) ; //remove
//data.getGuild().members.forEach(member -> { //data.getGuild().members.forEach(member -> {
//if (member.isOnline()) //if (member.isOnline())
// member.getPlayer().sendMessage(format); // format.send(member.getPlayer());
//}); //});
}); });
} }

View File

@ -9,6 +9,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
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.SimpleMessage;
public class PartyListener implements Listener { public class PartyListener implements Listener {
@ -27,13 +28,13 @@ public class PartyListener implements Listener {
* running it in a delayed task is recommended * running it in a delayed task is recommended
*/ */
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> { Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> {
String format = MMOCore.plugin.configManager.getSimpleMessage("party-chat", "player", data.getPlayer().getName(), "message", event.getMessage().substring(MMOCore.plugin.configManager.partyChatPrefix.length())); SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("party-chat", "player", data.getPlayer().getName(), "message", event.getMessage().substring(MMOCore.plugin.configManager.partyChatPrefix.length()));
PartyChatEvent called = new PartyChatEvent(data, format); PartyChatEvent called = new PartyChatEvent(data, format.message());
Bukkit.getPluginManager().callEvent(called); Bukkit.getPluginManager().callEvent(called);
if (!called.isCancelled()) if (!called.isCancelled())
data.getParty().getMembers().forEach(member -> { data.getParty().getMembers().forEach(member -> {
if (member.isOnline()) if (member.isOnline())
member.getPlayer().sendMessage(format); format.send(member.getPlayer());
}); });
}); });
} }

View File

@ -48,10 +48,10 @@ public class SpellCast implements Listener {
public class SkillCasting extends BukkitRunnable implements Listener { public class SkillCasting extends BukkitRunnable implements Listener {
private final PlayerData playerData; private final PlayerData playerData;
private final String ready = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.ready"); private final String ready = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.ready").message();
private final String onCooldown = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.on-cooldown"); private final String onCooldown = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.on-cooldown").message();
private final String noMana = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.no-mana"); private final String noMana = MMOCore.plugin.configManager.getSimpleMessage("casting.action-bar.no-mana").message();
private final String split = MMOCore.plugin.configManager.getSimpleMessage("casting.split"); private final String split = MMOCore.plugin.configManager.getSimpleMessage("casting.split").message();
private int j; private int j;
@ -93,7 +93,7 @@ public class SpellCast implements Listener {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (event.getPlayer().equals(playerData.getPlayer()) && !player.isSneaking()) { if (event.getPlayer().equals(playerData.getPlayer()) && !player.isSneaking()) {
player.playSound(player.getLocation(), Sound.BLOCK_FIRE_EXTINGUISH, 1, 2); player.playSound(player.getLocation(), Sound.BLOCK_FIRE_EXTINGUISH, 1, 2);
playerData.displayActionBar(MMOCore.plugin.configManager.getSimpleMessage("casting.no-longer")); MMOCore.plugin.configManager.getSimpleMessage("casting.no-longer").send(playerData.getPlayer());
close(); close();
} }
} }

View File

@ -28,7 +28,7 @@ public class WaypointsListener implements Listener {
if (!data.hasWaypoint(waypoint)) { if (!data.hasWaypoint(waypoint)) {
data.unlockWaypoint(waypoint); data.unlockWaypoint(waypoint);
new SmallParticleEffect(player, Particle.SPELL_WITCH); new SmallParticleEffect(player, Particle.SPELL_WITCH);
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("new-waypoint", "waypoint", waypoint.getName())); MMOCore.plugin.configManager.getSimpleMessage("new-waypoint", "waypoint", waypoint.getName()).send(player);
player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1.2f); player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1, 1.2f);
return; return;
} }

View File

@ -51,7 +51,7 @@ public class FishingListener implements Listener {
new FishingData(player, hook, table); new FishingData(player, hook, table);
if (MMOCore.plugin.hasHolograms()) if (MMOCore.plugin.hasHolograms())
MMOCore.plugin.hologramSupport.displayIndicator(hook.getLocation(), MMOCore.plugin.configManager.getSimpleMessage("caught-fish")); MMOCore.plugin.hologramSupport.displayIndicator(hook.getLocation(), MMOCore.plugin.configManager.getSimpleMessage("caught-fish").message());
} }
} }
@ -163,7 +163,7 @@ public class FishingListener implements Listener {
// calculate velocity // calculate velocity
Item item = hook.getWorld().dropItemNaturally(hook.getLocation(), collect); Item item = hook.getWorld().dropItemNaturally(hook.getLocation(), collect);
if (MMOCore.plugin.hasHolograms()) if (MMOCore.plugin.hasHolograms())
MMOCore.plugin.hologramSupport.displayIndicator(location, MMOCore.plugin.configManager.getSimpleMessage("fish-out-water" + (isCrit() ? "-crit" : ""))); MMOCore.plugin.hologramSupport.displayIndicator(location, MMOCore.plugin.configManager.getSimpleMessage("fish-out-water" + (isCrit() ? "-crit" : "")).message());
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);

View File

@ -22,6 +22,7 @@ import net.Indyuce.mmocore.api.input.AnvilGUI;
import net.Indyuce.mmocore.api.input.ChatInput; import net.Indyuce.mmocore.api.input.ChatInput;
import net.Indyuce.mmocore.api.input.PlayerInput; import net.Indyuce.mmocore.api.input.PlayerInput;
import net.Indyuce.mmocore.api.input.PlayerInput.InputType; import net.Indyuce.mmocore.api.input.PlayerInput.InputType;
import net.Indyuce.mmocore.api.player.PlayerData;
public class ConfigManager { public class ConfigManager {
@ -31,7 +32,7 @@ public class ConfigManager {
public String partyChatPrefix, guildChatPrefix; public String partyChatPrefix, guildChatPrefix;
public ChatColor manaFull, manaHalf, manaEmpty, staminaFull, staminaHalf, staminaEmpty; public ChatColor manaFull, manaHalf, manaEmpty, staminaFull, staminaHalf, staminaEmpty;
private final DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols(); public final DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols();
public final DecimalFormat decimal = new DecimalFormat("0.#", formatSymbols), decimals = new DecimalFormat("0.##", formatSymbols); public final DecimalFormat decimal = new DecimalFormat("0.#", formatSymbols), decimals = new DecimalFormat("0.##", formatSymbols);
private List<Integer> neededExp = new ArrayList<>(); private List<Integer> neededExp = new ArrayList<>();
@ -176,10 +177,29 @@ public class ConfigManager {
return messages.getStringList(key); return messages.getStringList(key);
} }
public String getSimpleMessage(String key, String... placeholders) { public SimpleMessage getSimpleMessage(String key, String... placeholders) {
String format = messages.getString(key); String format = messages.getString(key, "");
for (int j = 0; j < placeholders.length - 1; j += 2) for (int j = 0; j < placeholders.length - 1; j += 2)
format = format.replace("{" + placeholders[j] + "}", placeholders[j + 1]); format = format.replace("{" + placeholders[j] + "}", placeholders[j + 1]);
return ChatColor.translateAlternateColorCodes('&', format); return new SimpleMessage(ChatColor.translateAlternateColorCodes('&', format));
}
public class SimpleMessage {
String message;
SimpleMessage(String m) {
message = m;
}
public String message()
{ return message.startsWith("%") ? message.substring(1) : message; }
public boolean send(Player player) {
if(!message.isEmpty()) {
if(message.startsWith("%")) PlayerData.get(player.getUniqueId()).displayActionBar(message.substring(1));
else player.sendMessage(message);
}
return !message.isEmpty();
}
} }
} }

View File

@ -2,9 +2,11 @@ package net.Indyuce.mmocore.manager;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
@ -29,7 +31,7 @@ import net.Indyuce.mmocore.version.VersionMaterial;
public class CustomBlockManager extends MMOManager { public class CustomBlockManager extends MMOManager {
private final Map<String, BlockInfo> map = new HashMap<>(); private final Map<String, BlockInfo> map = new HashMap<>();
private final Map<RegenInfo, BlockData> active = new HashMap<>(); private final Set<RegenInfo> active = new HashSet<>();
/* list in which both block regen and block permissions are enabled. */ /* list in which both block regen and block permissions are enabled. */
private final List<Condition> customMineConditions = new ArrayList<>(); private final List<Condition> customMineConditions = new ArrayList<>();
@ -38,7 +40,7 @@ public class CustomBlockManager extends MMOManager {
for (String key : config.getKeys(false)) for (String key : config.getKeys(false))
try { try {
BlockInfo info = new BlockInfo(config.getConfigurationSection(key)); BlockInfo info = new BlockInfo(config.getConfigurationSection(key));
register(info.getBlock() == Material.PLAYER_HEAD ? info.getHeadValue() : info.getBlock().name(), info); register(info.getHeadValue().isEmpty() ? info.getBlock().name() : info.getHeadValue(), info);
} catch (IllegalArgumentException exception) { } catch (IllegalArgumentException exception) {
MMOCore.log(Level.WARNING, "Could not load custom block '" + key + "': " + exception.getMessage()); MMOCore.log(Level.WARNING, "Could not load custom block '" + key + "': " + exception.getMessage());
} }
@ -51,7 +53,7 @@ public class CustomBlockManager extends MMOManager {
public BlockInfo getInfo(Block block) { public BlockInfo getInfo(Block block) {
if(isPlayerSkull(block.getType())) { if(isPlayerSkull(block.getType())) {
String skullValue = MMOCore.plugin.nms.getSkullValue(block); String skullValue = MMOCore.plugin.nms.getSkullValue(block);
return map.getOrDefault(skullValue, null); return map.getOrDefault(skullValue, map.getOrDefault(block.getType().name(), null));
} }
return map.getOrDefault(block.getType().name(), null); return map.getOrDefault(block.getType().name(), null);
@ -62,21 +64,21 @@ public class CustomBlockManager extends MMOManager {
* are reset and put back in place. * are reset and put back in place.
*/ */
public void resetRemainingBlocks() { public void resetRemainingBlocks() {
active.keySet().forEach(info -> { active.forEach(info -> {
info.getLocation().getBlock().setType(info.getRegen().getBlock()); regen(info);
}); });
} }
public void initialize(RegenInfo info) { public void initialize(RegenInfo info) {
active.put(info, info.getLocation().getBlock().getBlockData()); active.add(info);
info.getLocation().getBlock().setType(info.getRegen().getTemporaryBlock());
if(isPlayerSkull(info.getLocation().getBlock().getType())) { if(isPlayerSkull(info.getLocation().getBlock().getType())) {
if(!isPlayerSkull(info.getRegen().getTemporaryBlock())) info.getLocation().getBlock().setType(info.getRegen().getTemporaryBlock()); if(isPlayerSkull(info.getRegen().getBlock())) info.getLocation().getBlock().setBlockData(info.getBlockData());
MMOCore.plugin.nms.setSkullValue(info.getLocation().getBlock(), info.getRegen().regenHeadValue); MMOCore.plugin.nms.setSkullValue(info.getLocation().getBlock(), info.getRegen().getRegenHeadValue());
info.getLocation().getBlock().getState().update();
} }
else info.getLocation().getBlock().setType(info.getRegen().getTemporaryBlock());
System.out.println("Regen Time: " + info.getRegen().getRegenTime());
new BukkitRunnable() { new BukkitRunnable() {
public void run() { public void run() {
regen(info); regen(info);
@ -85,12 +87,11 @@ public class CustomBlockManager extends MMOManager {
} }
private void regen(RegenInfo info) { private void regen(RegenInfo info) {
info.getLocation().getBlock().setType(info.getRegen().getBlock()); System.out.println("Material: " + info.getBlockData().getMaterial());
//info.getLocation().getBlock().setType(info.getRegen().getBlock());
if(isPlayerSkull(info.getRegen().getBlock())) info.getLocation().getBlock().setBlockData(info.getBlockData());
MMOCore.plugin.nms.setSkullValue(info.getLocation().getBlock(), info.getRegen().headValue); if(isPlayerSkull(info.getLocation().getBlock().getType()))
MMOCore.plugin.nms.setSkullValue(info.getLocation().getBlock(), info.getRegen().getHeadValue());
info.getLocation().getBlock().setBlockData(active.get(info));
active.remove(info); active.remove(info);
} }
@ -108,7 +109,8 @@ public class CustomBlockManager extends MMOManager {
} }
private boolean isPlayerSkull(Material block) { private boolean isPlayerSkull(Material block) {
return block == VersionMaterial.PLAYER_HEAD.toMaterial() || block == VersionMaterial.PLAYER_WALL_HEAD.toMaterial(); return block == VersionMaterial.PLAYER_HEAD.toMaterial() ||
block == VersionMaterial.PLAYER_WALL_HEAD.toMaterial();
} }
public class BlockInfo { public class BlockInfo {
@ -156,18 +158,6 @@ public class CustomBlockManager extends MMOManager {
Optional<Trigger> opt = triggers.stream().filter(trigger -> (trigger instanceof ExperienceTrigger)).findFirst(); Optional<Trigger> opt = triggers.stream().filter(trigger -> (trigger instanceof ExperienceTrigger)).findFirst();
experience = opt.isPresent() ? (ExperienceTrigger) opt.get() : null; experience = opt.isPresent() ? (ExperienceTrigger) opt.get() : null;
} }
public BlockInfo(Material block, DropTable table, boolean vanillaDrops, List<Trigger> triggers, ExperienceTrigger experience, Material temporary, int regenTime, String headValue, String regenHeadValue) {
this.block = block;
this.headValue = headValue;
this.table = table;
this.vanillaDrops = vanillaDrops;
this.temporary = temporary;
this.regenHeadValue = regenHeadValue;
this.regenTime = regenTime;
this.triggers.addAll(triggers);
this.experience = experience;
}
public String getHeadValue() { public String getHeadValue() {
return headValue; return headValue;
@ -209,8 +199,8 @@ public class CustomBlockManager extends MMOManager {
return regenHeadValue; return regenHeadValue;
} }
public RegenInfo generateRegenInfo(Location loc) { public RegenInfo generateRegenInfo(Block b) {
return new RegenInfo(loc, this); return new RegenInfo(b, this);
} }
public boolean hasExperience() { public boolean hasExperience() {
@ -231,13 +221,15 @@ public class CustomBlockManager extends MMOManager {
} }
public class RegenInfo { public class RegenInfo {
private final BlockData blockData;
private final Location loc; private final Location loc;
private final BlockInfo regen; private final BlockInfo regen;
private final long date = System.currentTimeMillis(); private final long date = System.currentTimeMillis();
public RegenInfo(Location loc, BlockInfo regen) { public RegenInfo(Block block, BlockInfo regen) {
this.loc = loc; this.blockData = block.getBlockData().clone();
this.loc = block.getLocation();
this.regen = regen; this.regen = regen;
} }
@ -245,6 +237,10 @@ public class CustomBlockManager extends MMOManager {
return date + regen.getRegenTime() * 50 < System.currentTimeMillis(); return date + regen.getRegenTime() * 50 < System.currentTimeMillis();
} }
public BlockData getBlockData() {
return blockData;
}
public Location getLocation() { public Location getLocation() {
return loc; return loc;
} }

View File

@ -203,5 +203,6 @@ public class NMSHandler_1_12_R1 implements NMSHandler {
GameProfile profile = new GameProfile(UUID.randomUUID(), null); GameProfile profile = new GameProfile(UUID.randomUUID(), null);
profile.getProperties().put("textures", new Property("textures", value)); profile.getProperties().put("textures", new Property("textures", value));
skullTile.setGameProfile(profile); skullTile.setGameProfile(profile);
skullTile.update();
} }
} }

View File

@ -201,5 +201,6 @@ public class NMSHandler_1_13_R1 implements NMSHandler {
GameProfile profile = new GameProfile(UUID.randomUUID(), null); GameProfile profile = new GameProfile(UUID.randomUUID(), null);
profile.getProperties().put("textures", new Property("textures", value)); profile.getProperties().put("textures", new Property("textures", value));
skullTile.setGameProfile(profile); skullTile.setGameProfile(profile);
skullTile.update();
} }
} }

View File

@ -202,5 +202,6 @@ public class NMSHandler_1_13_R2 implements NMSHandler {
GameProfile profile = new GameProfile(UUID.randomUUID(), null); GameProfile profile = new GameProfile(UUID.randomUUID(), null);
profile.getProperties().put("textures", new Property("textures", value)); profile.getProperties().put("textures", new Property("textures", value));
skullTile.setGameProfile(profile); skullTile.setGameProfile(profile);
skullTile.update();
} }
} }

View File

@ -224,5 +224,6 @@ public class NMSHandler_1_14_R1 implements NMSHandler {
GameProfile profile = new GameProfile(UUID.randomUUID(), null); GameProfile profile = new GameProfile(UUID.randomUUID(), null);
profile.getProperties().put("textures", new Property("textures", value)); profile.getProperties().put("textures", new Property("textures", value));
skullTile.setGameProfile(profile); skullTile.setGameProfile(profile);
skullTile.update();
} }
} }

View File

@ -36,6 +36,17 @@ lootsplosion:
offset: .2 offset: .2
height: .6 height: .6
# settings for the default action bar
action-bar:
# Whether or not to use the default action bar. (This doesn't change any other action bars provided by MMOCore.)
enabled: true
# the decimal format for stats (not including stat formats in stats.yml)
decimal: "0.#"
# The amount of ticks before updating the info
ticks-to-update: 5
# how to display the data.
format: "&c❤ {health}/{max_health} &f| &9⭐ {mana}/{max_mana} &f| &7⛨ {armor}"
party: party:
# Edit party buffs here. You may # Edit party buffs here. You may