Update from Git Manager GUI
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
package me.viper.teamplugin.manager;
|
||||
|
||||
import me.viper.teamplugin.util.Utils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class MessageManager {
|
||||
|
||||
private static final Map<UUID, String> PENDING_INPUT = new HashMap<>();
|
||||
private static final Map<UUID, String> PENDING_REPLY = new HashMap<>();
|
||||
|
||||
public static void startInput(Player sender, String targetName) {
|
||||
PENDING_INPUT.put(sender.getUniqueId(), targetName);
|
||||
sender.sendMessage(Utils.color(
|
||||
Utils.replace(LangManager.get("msg_enter_message"), "%player%", targetName)));
|
||||
sender.sendMessage(Utils.color(LangManager.get("msg_cancel_hint")));
|
||||
}
|
||||
|
||||
public static void startReply(Player sender, String targetName) {
|
||||
PENDING_REPLY.put(sender.getUniqueId(), targetName);
|
||||
sender.sendMessage(Utils.color(
|
||||
Utils.replace(LangManager.get("msg_reply_prompt"), "%player%", targetName)));
|
||||
sender.sendMessage(Utils.color(LangManager.get("msg_cancel_hint")));
|
||||
}
|
||||
|
||||
public static boolean isAwaitingInput(UUID uuid) {
|
||||
return PENDING_INPUT.containsKey(uuid) || PENDING_REPLY.containsKey(uuid);
|
||||
}
|
||||
|
||||
public static boolean handleInput(Player sender, String text) {
|
||||
String target = PENDING_INPUT.remove(sender.getUniqueId());
|
||||
if (target == null) target = PENDING_REPLY.remove(sender.getUniqueId());
|
||||
if (target == null) return false;
|
||||
|
||||
if (text.equalsIgnoreCase(LangManager.get("msg_cancel_word"))) {
|
||||
sender.sendMessage(Utils.color(LangManager.get("msg_cancelled")));
|
||||
return true;
|
||||
}
|
||||
deliver(sender, target, text);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void cancelInput(UUID uuid) {
|
||||
PENDING_INPUT.remove(uuid);
|
||||
PENDING_REPLY.remove(uuid);
|
||||
}
|
||||
|
||||
private static void deliver(Player sender, String targetName, String text) {
|
||||
MailboxManager.store(targetName, sender.getName(), text);
|
||||
|
||||
Player target = Bukkit.getPlayerExact(targetName);
|
||||
if (target != null && target.isOnline()) {
|
||||
String formatted = Utils.color(Utils.replace(
|
||||
LangManager.get("msg_format"),
|
||||
"%sender%", sender.getName(),
|
||||
"%message%", text));
|
||||
target.sendMessage(formatted);
|
||||
sender.sendMessage(Utils.color(
|
||||
Utils.replace(LangManager.get("msg_sent_online"), "%player%", targetName)));
|
||||
} else {
|
||||
sender.sendMessage(Utils.color(
|
||||
Utils.replace(LangManager.get("msg_sent_offline"), "%player%", targetName)));
|
||||
}
|
||||
}
|
||||
|
||||
public static void deliverPending(Player player) {
|
||||
int unread = MailboxManager.getUnreadCount(player.getName());
|
||||
if (unread == 0) return;
|
||||
Bukkit.getScheduler().runTaskLater(
|
||||
me.viper.teamplugin.Main.getInstance(), () -> {
|
||||
player.sendMessage(Utils.color(Utils.replace(
|
||||
LangManager.get("msg_offline_header"),
|
||||
"%count%", String.valueOf(unread))));
|
||||
player.sendMessage(Utils.color(LangManager.get("msg_mailbox_hint")));
|
||||
}, 20L);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user