mirror of
https://gitlab.com/phoenix-dvpmt/mmocore.git
synced 2025-11-18 06:24:17 +01:00
Fixed guild, party chat and some other messages
This commit is contained in:
parent
05bd396a40
commit
864f4a2f67
@ -5,32 +5,36 @@ import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.guild.provided.Guild;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class GuildChatEvent extends PlayerDataEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
private final Guild guild;
|
||||
|
||||
private boolean cancelled;
|
||||
|
||||
@Deprecated
|
||||
private String message;
|
||||
private boolean cancelled;
|
||||
|
||||
public GuildChatEvent(PlayerData playerData, String message) {
|
||||
super(playerData);
|
||||
|
||||
this.guild = playerData.getGuild();
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
public void setMessage(@Nullable String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Guild getGuild() {
|
||||
return guild;
|
||||
}
|
||||
|
||||
@ -5,6 +5,10 @@ import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.party.provided.Party;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class PartyChatEvent extends PlayerDataEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -12,23 +16,25 @@ public class PartyChatEvent extends PlayerDataEvent implements Cancellable {
|
||||
private final Party party;
|
||||
|
||||
private boolean cancelled;
|
||||
private String message;
|
||||
private String rawMessage;
|
||||
|
||||
public PartyChatEvent(Party party, PlayerData playerData, String message) {
|
||||
public PartyChatEvent(Party party, PlayerData playerData, String rawMessage) {
|
||||
super(playerData);
|
||||
|
||||
this.party = party;
|
||||
this.message = message;
|
||||
this.rawMessage = rawMessage;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
public void setMessage(@Nullable String rawMessage) {
|
||||
this.rawMessage = Objects.requireNonNull(rawMessage, "Message cannot be null");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getMessage() {
|
||||
return message;
|
||||
return rawMessage;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Party getParty() {
|
||||
return party;
|
||||
}
|
||||
|
||||
@ -42,8 +42,7 @@ public class WithdrawCommand extends RegisteredCommand {
|
||||
else amount = Integer.parseInt(args[args.length - 1]);
|
||||
Validate.isTrue(amount >= 0);
|
||||
} catch (IllegalArgumentException exception) {
|
||||
if (sender instanceof Player)
|
||||
Message.WITHDRAW_INVALID_AMOUNT.prepare("arg", args[0]).send((MMOPlayerData) sender);
|
||||
if (sender instanceof Player) Message.WITHDRAW_INVALID_AMOUNT.send((Player) sender, "arg", args[0]);
|
||||
else sender.sendMessage(ChatColor.RED + "Please specify a valid number.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ public class PvPModeListener implements Listener {
|
||||
if (event.getDamage() > 0) {
|
||||
final var left = targetData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||
final var leftFormatted = MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d);
|
||||
Message.PVP_MODE_CANNOT_HIT_INVULNERABLE_TARGET.prepare("left", leftFormatted).send(source);
|
||||
Message.PVP_MODE_CANNOT_HIT_INVULNERABLE_TARGET.send(source, "left", leftFormatted);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
@ -89,7 +89,7 @@ public class PvPModeListener implements Listener {
|
||||
if (event.getDamage() > 0) {
|
||||
final var left = sourceData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||
final var leftFormatted = MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d);
|
||||
Message.PVP_MODE_CANNOT_HIT_INVULNERABLE_SELF.prepare("left", leftFormatted).send(source);
|
||||
Message.PVP_MODE_CANNOT_HIT_INVULNERABLE_SELF.send(source, "left", leftFormatted);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
||||
@ -228,7 +228,7 @@ public class PlayerProfessions {
|
||||
var mainExpGiven = profession.getExperience().evaluate(newLevel, playerData);
|
||||
playerData.giveExperience(mainExpGiven, EXPSource.PROFESSION_TO_CLASS);
|
||||
} catch (FormulaFailsafeException exception) {
|
||||
exception.log("Could not evaluate profession newLevel-up exp for %s", profession.getId());
|
||||
exception.log("Could not evaluate profession level-up exp for %s", profession.getId());
|
||||
}
|
||||
|
||||
// Apply profession experience table
|
||||
@ -240,8 +240,10 @@ public class PlayerProfessions {
|
||||
if (newLevel > oldLevel) {
|
||||
setLevel(profession, newLevel, PlayerLevelChangeEvent.Reason.LEVEL_UP);
|
||||
|
||||
new SmallParticleEffect(playerData.getPlayer(), VParticle.INSTANT_EFFECT.get()); // TODO move to playerMessage
|
||||
Message.PROFESSION_LEVEL_UP.send(playerData, "newLevel", newLevel, "profession", profession.getName());
|
||||
if (playerData.isOnline()) {
|
||||
new SmallParticleEffect(playerData.getPlayer(), VParticle.INSTANT_EFFECT.get()); // TODO move to playerMessage
|
||||
Message.PROFESSION_LEVEL_UP.send(playerData, "level", newLevel, "profession", profession.getName());
|
||||
}
|
||||
}
|
||||
|
||||
if (playerData.isOnline()) {
|
||||
|
||||
@ -68,13 +68,14 @@ public class MMOCorePartyModule implements PartyModule, Listener {
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
// Running it in a delayed task is recommended
|
||||
// Run it on main server thread
|
||||
Bukkit.getScheduler().runTask(MMOCore.plugin, () -> {
|
||||
var rawMessage = event.getMessage().substring(MMOCore.plugin.configManager.partyChatPrefix.length());
|
||||
var message = Message.PARTY_CHAT.prepare("player", data.getPlayer().getName(), "message", rawMessage);
|
||||
var called = new PartyChatEvent(party, data, message.getRawContent());
|
||||
final var rawMessage = event.getMessage().substring(MMOCore.plugin.configManager.partyChatPrefix.length());
|
||||
final var called = new PartyChatEvent(party, data, rawMessage);
|
||||
Bukkit.getPluginManager().callEvent(called);
|
||||
if (!called.isCancelled()) party.getOnlineMembers().forEach(member -> message.send(member.getPlayer()));
|
||||
if (called.isCancelled() || called.getMessage() == null) return;
|
||||
|
||||
party.getOnlineMembers().forEach(member -> Message.PARTY_CHAT.send(member.getPlayer(), "player", data.getPlayer().getName(), "message", called.getMessage()));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,6 @@ package net.Indyuce.mmocore.player;
|
||||
|
||||
import io.lumine.mythic.lib.UtilityMethods;
|
||||
import io.lumine.mythic.lib.message.PlayerMessage;
|
||||
import io.lumine.mythic.lib.message.ReadyMessage;
|
||||
import io.lumine.mythic.lib.message.type.EmptyMessage;
|
||||
import io.lumine.mythic.lib.util.config.YamlFile;
|
||||
import io.lumine.mythic.lib.util.config.YamlUtils;
|
||||
@ -204,14 +203,8 @@ public enum Message {
|
||||
this.candidates = array;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ReadyMessage prepare(@NotNull Object... placeholders) {
|
||||
return this.wrapped.prepare(null, placeholders);
|
||||
}
|
||||
|
||||
public <T extends Player> void send(@NotNull Iterable<T> players, @NotNull Object... placeholders) {
|
||||
final var message = this.wrapped.prepare(null, placeholders);
|
||||
for (var player : players) message.send(player);
|
||||
for (var player : players) this.send(player, placeholders);
|
||||
}
|
||||
|
||||
public void send(@NotNull Player player, @NotNull Object... placeholders) {
|
||||
|
||||
@ -22,15 +22,17 @@ public class GuildListener implements Listener {
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
// Run it sync
|
||||
// Run it on main server thread
|
||||
Bukkit.getScheduler().runTask(MMOCore.plugin, () -> {
|
||||
var rawMessage = event.getMessage().substring(MMOCore.plugin.nativeGuildManager.getConfig().getPrefix().length());
|
||||
var message = Message.GUILD_CHAT.prepare("player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", rawMessage);
|
||||
GuildChatEvent called = new GuildChatEvent(data, message.getRawContent());
|
||||
final var rawMessage = event.getMessage().substring(MMOCore.plugin.nativeGuildManager.getConfig().getPrefix().length());
|
||||
final var called = new GuildChatEvent(data, rawMessage);
|
||||
Bukkit.getPluginManager().callEvent(called);
|
||||
if (!called.isCancelled()) data.getGuild().forEachMember(member -> {
|
||||
if (called.isCancelled() || called.getMessage() == null) return;
|
||||
|
||||
data.getGuild().forEachMember(member -> {
|
||||
Player online = Bukkit.getPlayer(member);
|
||||
if (online != null) message.send(online);
|
||||
if (online != null)
|
||||
Message.GUILD_CHAT.send(online, "player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", called.getMessage());
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user