1
mirror of https://github.com/CarmJos/UserPrefix.git synced 2026-06-04 15:28:21 +08:00

[2.4.1] 尝试修复 #9 问题。

This commit is contained in:
2022-02-18 18:26:12 +08:00
parent 821b42cc03
commit 3ec39b9ca3
4 changed files with 45 additions and 13 deletions
@@ -1,12 +1,17 @@
package cc.carm.plugin.userprefix.event;
import cc.carm.plugin.userprefix.Main;
import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.function.Consumer;
public class UserPrefixChangeEvent extends UserPrefixEvent implements Cancellable {
public static HandlerList handler = new HandlerList();
@@ -52,4 +57,19 @@ public class UserPrefixChangeEvent extends UserPrefixEvent implements Cancellabl
public HandlerList getHandlers() {
return handler;
}
public static void call(@NotNull Player who,
@Nullable ConfiguredPrefix before,
@NotNull ConfiguredPrefix after,
@Nullable Consumer<@Nullable ConfiguredPrefix> finish) {
new BukkitRunnable() {
@Override
public void run() {
UserPrefixChangeEvent event = new UserPrefixChangeEvent(who, before, after);
Bukkit.getPluginManager().callEvent(event);
if (finish != null) finish.accept(event.isCancelled() ? null : event.getAfter());
}
}.runTask(Main.getInstance());
}
}
@@ -1,8 +1,11 @@
package cc.carm.plugin.userprefix.event;
import cc.carm.plugin.userprefix.Main;
import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;
public class UserPrefixExpireEvent extends UserPrefixEvent {
@@ -27,4 +30,14 @@ public class UserPrefixExpireEvent extends UserPrefixEvent {
public HandlerList getHandlers() {
return handler;
}
public static void call(@NotNull Player player, @NotNull ConfiguredPrefix currentPrefix) {
new BukkitRunnable() {
@Override
public void run() {
Bukkit.getPluginManager().callEvent(new UserPrefixExpireEvent(player, currentPrefix));
}
}.runTask(Main.getInstance());
}
}
@@ -121,7 +121,7 @@ public class UserManager {
if (currentPrefix != null) {
//当前前缀不为空,则代表属于前缀过期的情况
Bukkit.getPluginManager().callEvent(new UserPrefixExpireEvent(player, currentPrefix));
UserPrefixExpireEvent.call(player, currentPrefix);
// 发送消息
PluginConfig.Messages.EXPIRED.sendWithPlaceholders(player,
@@ -139,17 +139,16 @@ public class UserManager {
);
}
UserPrefixChangeEvent event = new UserPrefixChangeEvent(player, currentPrefix, newPrefix);
Bukkit.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
// 更新前缀
UserManager.setPrefix(player, event.getAfter(), updateView);
}
UserPrefixChangeEvent.call(player, currentPrefix, newPrefix, (after) -> {
if (after != null) {
UserManager.setPrefix(player, after, updateView);
}
checkingPlayers.remove(player.getUniqueId());
});
} else {
checkingPlayers.remove(player.getUniqueId());
}
checkingPlayers.remove(player.getUniqueId());
}
public static void unloadNameTag(UUID uuid) {