Finish module

This commit is contained in:
Taah
2022-03-30 23:35:22 -07:00
parent 3e6918fc3e
commit e0a14df84e
10 changed files with 439 additions and 0 deletions

View File

@ -0,0 +1,43 @@
package dev.plex;
import dev.plex.listener.BukkitTelnetListener;
import dev.plex.module.PlexModule;
import lombok.Getter;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.plugin.RegisteredServiceProvider;
public class BukkitTelnetModule extends PlexModule {
@Getter
private static BukkitTelnetModule module;
@Getter
private Permission permissions = null;
@Override
public void load() {
module = this;
}
@Override
public void enable() {
if (!setupPermissions() && getPlex().getSystem().equalsIgnoreCase("permissions") && !Bukkit.getPluginManager().isPluginEnabled("Vault")) {
throw new RuntimeException("Plex-BukkitTelnet requires the 'Vault' plugin as well as a Permissions plugin that hooks into 'Vault.' We recommend LuckPerms!");
}
this.registerListener(new BukkitTelnetListener());
}
@Override
public void disable() {
}
private boolean setupPermissions() {
RegisteredServiceProvider<Permission> rsp = Bukkit.getServicesManager().getRegistration(Permission.class);
permissions = rsp.getProvider();
return permissions != null;
}
}

View File

@ -0,0 +1,40 @@
package dev.plex.listener;
import dev.plex.BukkitTelnetModule;
import dev.plex.cache.DataUtils;
import dev.plex.player.PlexPlayer;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexLog;
import me.totalfreedom.bukkittelnet.api.TelnetPreLoginEvent;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.event.EventHandler;
import java.util.UUID;
public class BukkitTelnetListener extends PlexListener {
@EventHandler
public void onPreLogin(TelnetPreLoginEvent event) {
final String ip = event.getIp();
final PlexPlayer player = DataUtils.getPlayerByIP(ip);
if (player == null) return;
if (plugin.getSystem().equalsIgnoreCase("ranks"))
{
PlexLog.debug("Plex-BukkitTelnet using ranks check");
if (player.getRankFromString().isAtLeast(Rank.ADMIN)) {
event.setBypassPassword(true);
event.setName(player.getName());
}
} else if (plugin.getSystem().equalsIgnoreCase("permissions"))
{
PlexLog.debug("Plex-BukkitTelnet using permissions check");
final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(UUID.fromString(player.getUuid()));
if (BukkitTelnetModule.getModule().getPermissions().playerHas(null, offlinePlayer, "plex.telnet.autoconnect")) {
event.setBypassPassword(true);
event.setName(player.getName());
}
}
}
}

View File

@ -0,0 +1,4 @@
name: Plex-BukkitTelnet
main: dev.plex.BukkitTelnetModule
description: The plex module for BukkitTelnet
version: 0.1