Skip to content
This repository has been archived by the owner on Jan 20, 2024. It is now read-only.

Commit

Permalink
FPlayerComponent: add support vault group for hover event
Browse files Browse the repository at this point in the history
  • Loading branch information
TheFaser committed Aug 18, 2023
1 parent 1f93d26 commit 0c6265b
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 6 deletions.
42 changes: 38 additions & 4 deletions src/main/java/net/flectone/misc/components/FPlayerComponent.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
package net.flectone.misc.components;

import net.flectone.integrations.vault.FVault;
import net.flectone.managers.HookManager;
import net.flectone.utils.ObjectUtil;
import net.milkbowl.vault.chat.Chat;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;


import static net.flectone.managers.FileManager.locale;

Expand All @@ -10,11 +17,38 @@ public FPlayerComponent(CommandSender recipient, CommandSender sender, String te
super(text);

String playerName = sender.getName();
String hoverGroup = "default";

if(HookManager.enabledVault && sender instanceof Player playerSender) {
Chat provider = FVault.getProvider();

String group = provider.getPrimaryGroup(playerSender);

if(group != null) {
hoverGroup = group;
}
}

String hoverText = ObjectUtil.formatString(getHoverString(playerName, hoverGroup, "text"),
recipient, sender);

addHoverText(hoverText);

String command = getHoverString(playerName, hoverGroup, "command");

switch (getHoverString(playerName, hoverGroup, "command-type").toLowerCase()) {
case "suggest" -> addSuggestCommand(command);
case "run" -> addRunCommand(command);
}
}

String showText = locale.getFormatString("player.hover-message", recipient, sender)
.replace("<player>", playerName);
@NotNull
private String getHoverString(String playerName, String hoverGroup, String type) {
String hoverText = locale.getString("player.hover." + hoverGroup + "." + type);
hoverText = hoverText.isEmpty()
? locale.getString("player.hover.default." + type)
: hoverText;

addSuggestCommand("/msg " + playerName + " ");
addHoverText(showText);
return hoverText.replace("<player>", playerName);
}
}
9 changes: 8 additions & 1 deletion src/main/resources/language/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,14 @@ tab:

player:
right-click-message: "&&1-⏴ <player> &&1⏵-"
hover-message: "&&1Click to write to &&2<player>"

hover:
# vault group name
default:
text: "&&1Click to write to &&2<player>"
# type: suggest, run
command-type: "suggest"
command: "/msg <player> "

item:
sign: "&o#<player>"
Expand Down
9 changes: 8 additions & 1 deletion src/main/resources/language/ru.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,14 @@ tab:

player:
right-click-message: "&&1-⏴ <player> &&1⏵-"
hover-message: "&&1Нажми, чтобы написать &&2<player>"

hover:
# название vault группы
default:
text: "&&1Нажми, чтобы написать &&2<player>"
# виды: suggest, run
command-type: "suggest"
command: "/msg <player> "

item:
sign: "&o#<player>"
Expand Down

0 comments on commit 0c6265b

Please sign in to comment.