1
mirror of https://github.com/CarmJos/UserPrefix.git synced 2026-06-05 00:35:02 +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
+2 -2
View File
@@ -13,7 +13,7 @@
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<artifactId>userprefix</artifactId> <artifactId>userprefix</artifactId>
<version>2.4.0</version> <version>2.4.1</version>
<name>UserPrefix</name> <name>UserPrefix</name>
<description>轻便、高效、实时的用户前缀系统。</description> <description>轻便、高效、实时的用户前缀系统。</description>
@@ -123,7 +123,7 @@
<dependency> <dependency>
<groupId>org.bstats</groupId> <groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId> <artifactId>bstats-bukkit</artifactId>
<version>2.2.1</version> <version>3.0.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
@@ -1,12 +1,17 @@
package cc.carm.plugin.userprefix.event; package cc.carm.plugin.userprefix.event;
import cc.carm.plugin.userprefix.Main;
import cc.carm.plugin.userprefix.model.ConfiguredPrefix; import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.function.Consumer;
public class UserPrefixChangeEvent extends UserPrefixEvent implements Cancellable { public class UserPrefixChangeEvent extends UserPrefixEvent implements Cancellable {
public static HandlerList handler = new HandlerList(); public static HandlerList handler = new HandlerList();
@@ -52,4 +57,19 @@ public class UserPrefixChangeEvent extends UserPrefixEvent implements Cancellabl
public HandlerList getHandlers() { public HandlerList getHandlers() {
return handler; 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; package cc.carm.plugin.userprefix.event;
import cc.carm.plugin.userprefix.Main;
import cc.carm.plugin.userprefix.model.ConfiguredPrefix; import cc.carm.plugin.userprefix.model.ConfiguredPrefix;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class UserPrefixExpireEvent extends UserPrefixEvent { public class UserPrefixExpireEvent extends UserPrefixEvent {
@@ -27,4 +30,14 @@ public class UserPrefixExpireEvent extends UserPrefixEvent {
public HandlerList getHandlers() { public HandlerList getHandlers() {
return handler; 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) { if (currentPrefix != null) {
//当前前缀不为空,则代表属于前缀过期的情况 //当前前缀不为空,则代表属于前缀过期的情况
Bukkit.getPluginManager().callEvent(new UserPrefixExpireEvent(player, currentPrefix)); UserPrefixExpireEvent.call(player, currentPrefix);
// 发送消息 // 发送消息
PluginConfig.Messages.EXPIRED.sendWithPlaceholders(player, PluginConfig.Messages.EXPIRED.sendWithPlaceholders(player,
@@ -139,17 +139,16 @@ public class UserManager {
); );
} }
UserPrefixChangeEvent event = new UserPrefixChangeEvent(player, currentPrefix, newPrefix); UserPrefixChangeEvent.call(player, currentPrefix, newPrefix, (after) -> {
Bukkit.getPluginManager().callEvent(event); if (after != null) {
UserManager.setPrefix(player, after, updateView);
if (!event.isCancelled()) { }
// 更新前缀 checkingPlayers.remove(player.getUniqueId());
UserManager.setPrefix(player, event.getAfter(), updateView); });
}
} else {
checkingPlayers.remove(player.getUniqueId());
} }
checkingPlayers.remove(player.getUniqueId());
} }
public static void unloadNameTag(UUID uuid) { public static void unloadNameTag(UUID uuid) {