feat: code
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
package online.mineroo.paper;
|
||||
|
||||
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
import online.mineroo.common.HttpNetworkService;
|
||||
import online.mineroo.common.MessageManager;
|
||||
import online.mineroo.common.NetworkServiceInterface;
|
||||
import online.mineroo.common.cache.UserInfoCache;
|
||||
import online.mineroo.common.request.RequestClient;
|
||||
import online.mineroo.paper.commands.MainCommand;
|
||||
import online.mineroo.paper.expansions.MinerooUserExpansion;
|
||||
import online.mineroo.paper.listeners.BindListener;
|
||||
import online.mineroo.paper.listeners.PlayerBindListener;
|
||||
import online.mineroo.paper.structure.PlayerInfo;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
@@ -20,7 +20,7 @@ public class MinerooCore extends JavaPlugin implements Listener {
|
||||
private RequestClient requestClient;
|
||||
private Config config;
|
||||
|
||||
private HashMap<UUID, PlayerInfo> playerCache = new HashMap<>();
|
||||
private UserInfoCache userInfoCache;
|
||||
|
||||
private BindListener bindListener;
|
||||
|
||||
@@ -42,6 +42,13 @@ public class MinerooCore extends JavaPlugin implements Listener {
|
||||
messageManager = new MessageManager();
|
||||
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
|
||||
this.userInfoCache = new UserInfoCache();
|
||||
|
||||
// regsiter Placeholder
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
new MinerooUserExpansion(this).register();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -90,4 +97,8 @@ public class MinerooCore extends JavaPlugin implements Listener {
|
||||
public RequestClient getRequestClient() {
|
||||
return requestClient;
|
||||
}
|
||||
|
||||
public UserInfoCache getUserInfoCache() {
|
||||
return this.userInfoCache;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package online.mineroo.paper.expansions;
|
||||
|
||||
import java.util.UUID;
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||
import online.mineroo.common.request.UserRequest.SimpleUserInfoResponse;
|
||||
import online.mineroo.paper.MinerooCore;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -22,7 +23,7 @@ public class MinerooUserExpansion extends PlaceholderExpansion {
|
||||
@Override
|
||||
@NotNull
|
||||
public String getIdentifier() {
|
||||
return "example";
|
||||
return "mineroo";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -44,6 +45,8 @@ public class MinerooUserExpansion extends PlaceholderExpansion {
|
||||
UUID uuid = player.getUniqueId();
|
||||
|
||||
if (params.equals("name")) {
|
||||
SimpleUserInfoResponse info = plugin.getUserInfoCache().get(uuid);
|
||||
return info.getNickname();
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -51,7 +51,7 @@ public class PlayerBindListener implements Listener {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
Config config = this.plugin.getConfigObject();
|
||||
MessageManager messageManager = this.plugin.getMessageManager();
|
||||
@@ -94,10 +94,23 @@ public class PlayerBindListener implements Listener {
|
||||
}, 40L);
|
||||
}
|
||||
|
||||
private void onBindSuccess(Player player) {
|
||||
UUID uuid = player.getUniqueId();
|
||||
|
||||
restrictedPlayers.remove(uuid);
|
||||
|
||||
plugin.getRequestClient().user().getUserInfo(uuid).thenAccept(response -> {
|
||||
if (response != null) {
|
||||
plugin.getUserInfoCache().insert(uuid, response);
|
||||
plugin.getUserInfoCache().updateNameMapping(player.getName(), uuid);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void handleBindStatus(Player player, PlayerBindStatusEnum status, String message) {
|
||||
if (status == PlayerBindStatusEnum.BOUND) {
|
||||
// Player is bound, release restriction
|
||||
restrictedPlayers.remove(player.getUniqueId());
|
||||
onBindSuccess(player);
|
||||
return;
|
||||
} else if (status == PlayerBindStatusEnum.NOT_BOUND) {
|
||||
Dialog dialog = RegistryAccess.registryAccess()
|
||||
@@ -127,7 +140,7 @@ public class PlayerBindListener implements Listener {
|
||||
}
|
||||
|
||||
if (bindResponse.getStatus() == PlayerBindEnum.BOUND) {
|
||||
restrictedPlayers.remove(uniqueId);
|
||||
onBindSuccess(player);
|
||||
player.sendMessage(this.plugin.getMessageManager().get("info.bind.player.success"));
|
||||
} else if (bindResponse.getStatus() == PlayerBindEnum.PENDING) {
|
||||
player.closeDialog();
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package online.mineroo.paper.structure;
|
||||
|
||||
public class PlayerInfo {
|
||||
private String minerooUsername;
|
||||
|
||||
public PlayerInfo(String minerooUsername) {
|
||||
this.minerooUsername = minerooUsername;
|
||||
}
|
||||
|
||||
public String getMinerooUsername() {
|
||||
return this.minerooUsername;
|
||||
}
|
||||
}
|
||||
@@ -4,3 +4,9 @@ main: "online.mineroo.paper.MinerooCore"
|
||||
description: Paper Test Plugin
|
||||
api-version: "1.21.10"
|
||||
bootstrapper: "online.mineroo.paper.MinerooCoreBootstrap"
|
||||
|
||||
dependencies:
|
||||
server:
|
||||
PlaceholderAPI:
|
||||
load: BEFORE
|
||||
required: false
|
||||
|
||||
Reference in New Issue
Block a user