move chat to its own chat manager
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
package cc.fascinated;
|
package cc.fascinated;
|
||||||
|
|
||||||
import cc.fascinated.account.AccountManager;
|
import cc.fascinated.account.AccountManager;
|
||||||
|
import cc.fascinated.chat.ChatManager;
|
||||||
import cc.fascinated.command.CommandManager;
|
import cc.fascinated.command.CommandManager;
|
||||||
import cc.fascinated.metrics.MetricManager;
|
import cc.fascinated.metrics.MetricManager;
|
||||||
import cc.fascinated.placeholder.PlaceholderManager;
|
import cc.fascinated.placeholder.PlaceholderManager;
|
||||||
@ -39,5 +40,6 @@ public class Aetheria extends JavaPlugin {
|
|||||||
new PlaceholderManager();
|
new PlaceholderManager();
|
||||||
new MetricManager();
|
new MetricManager();
|
||||||
new PlayerColorManager();
|
new PlayerColorManager();
|
||||||
|
new ChatManager();
|
||||||
}
|
}
|
||||||
}
|
}
|
33
src/main/java/cc/fascinated/chat/ChatManager.java
Normal file
33
src/main/java/cc/fascinated/chat/ChatManager.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package cc.fascinated.chat;
|
||||||
|
|
||||||
|
import cc.fascinated.account.Account;
|
||||||
|
import cc.fascinated.account.AccountManager;
|
||||||
|
import cc.fascinated.utils.Manager;
|
||||||
|
import io.papermc.paper.event.player.AsyncChatEvent;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.event.ClickEvent;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
|
||||||
|
public class ChatManager extends Manager {
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onChat(AsyncChatEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
Account account = AccountManager.getAccount(player.getUniqueId());
|
||||||
|
NamedTextColor color = account.getPlayerColorProfile().getColor();
|
||||||
|
|
||||||
|
event.renderer((source, sourceDisplayName, message, viewer) -> {
|
||||||
|
return Component.text()
|
||||||
|
.append(Component.text("<"))
|
||||||
|
.append(player.displayName().color(color))
|
||||||
|
.append(Component.text(">"))
|
||||||
|
.append(Component.space())
|
||||||
|
.append(message)
|
||||||
|
.hoverEvent(Component.text("Click to message " + player.getName() + ".").hoverEvent())
|
||||||
|
.clickEvent(ClickEvent.clickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + player.getName() + " "))
|
||||||
|
.asComponent();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -1,16 +1,10 @@
|
|||||||
package cc.fascinated.playercolor;
|
package cc.fascinated.playercolor;
|
||||||
|
|
||||||
import cc.fascinated.account.Account;
|
|
||||||
import cc.fascinated.account.AccountManager;
|
|
||||||
import cc.fascinated.playercolor.command.PlayerColorCommand;
|
import cc.fascinated.playercolor.command.PlayerColorCommand;
|
||||||
import cc.fascinated.utils.Manager;
|
import cc.fascinated.utils.Manager;
|
||||||
import io.papermc.paper.event.player.AsyncChatEvent;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.scoreboard.Scoreboard;
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.bukkit.scoreboard.Team;
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
@ -79,21 +73,4 @@ public class PlayerColorManager extends Manager {
|
|||||||
|
|
||||||
return team;
|
return team;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onChat(AsyncChatEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
Account account = AccountManager.getAccount(player.getUniqueId());
|
|
||||||
NamedTextColor color = account.getPlayerColorProfile().getColor();
|
|
||||||
|
|
||||||
event.renderer((source, sourceDisplayName, message, viewer) -> {
|
|
||||||
return Component.text()
|
|
||||||
.append(Component.text("<"))
|
|
||||||
.append(player.displayName().color(color))
|
|
||||||
.append(Component.text(">"))
|
|
||||||
.append(Component.space())
|
|
||||||
.append(message)
|
|
||||||
.asComponent();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
name: Aetheria
|
name: Aetheria
|
||||||
main: cc.fascinated.Aetheria
|
main: cc.fascinated.Aetheria
|
||||||
version: 1.0
|
version: 1.0
|
||||||
|
api-version: 1.20
|
||||||
author: Fascinated
|
author: Fascinated
|
||||||
depend:
|
depend:
|
||||||
- PlaceholderAPI
|
- PlaceholderAPI
|
||||||
|
Reference in New Issue
Block a user