mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-06-11 13:33:54 +00:00
Pterodactyl
This commit is contained in:
@ -1,101 +0,0 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import me.totalfreedom.totalfreedommod.staff.StaffMember;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Manage your AMP account", usage = "/<command> <create | resetpassword>")
|
||||
public class Command_amp extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
|
||||
if (!plugin.amp.isEnabled())
|
||||
{
|
||||
msg("AMP integration is currently disabled.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData playerData = getData(playerSender);
|
||||
|
||||
if (playerData.getDiscordID() == null)
|
||||
{
|
||||
msg("You must have a linked discord account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equals("create"))
|
||||
{
|
||||
msg("Creating your AMP account...", ChatColor.GREEN);
|
||||
StaffMember staffMember = getAdmin(playerSender);
|
||||
|
||||
if (staffMember.getAmpUsername() != null)
|
||||
{
|
||||
msg("You already have an AMP account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
String username = sender.getName();
|
||||
String password = FUtil.randomString(30);
|
||||
|
||||
staffMember.setAmpUsername(username);
|
||||
plugin.sl.save(staffMember);
|
||||
plugin.sl.updateTables();
|
||||
|
||||
plugin.amp.createAccount(username, password);
|
||||
plugin.dc.sendAMPInfo(playerData, username, password);
|
||||
msg("Successfully created your AMP account. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
else if (args[0].equals("resetpassword"))
|
||||
{
|
||||
StaffMember staffMember = getAdmin(playerSender);
|
||||
|
||||
if (staffMember.getAmpUsername() == null)
|
||||
{
|
||||
msg("You do not have an AMP account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
msg("Resetting your password...", ChatColor.GREEN);
|
||||
|
||||
String username = staffMember.getAmpUsername();
|
||||
String password = FUtil.randomString(30);
|
||||
plugin.amp.setPassword(username,password);
|
||||
plugin.dc.sendAMPInfo(playerData, username, password);
|
||||
|
||||
msg("Successfully reset your AMP account password. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
|
||||
{
|
||||
if (args.length == 1 && plugin.sl.isAdmin(sender))
|
||||
{
|
||||
return Arrays.asList("create", "resetpassword");
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import me.totalfreedom.totalfreedommod.util.FLog;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE)
|
||||
@CommandParameters(description = "Adds or removes donators", usage = "/<command> <mode> <name> <ip> <package> [forum_user]")
|
||||
public class Command_donator extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
if (!FUtil.isFromHostConsole(sender.getName()) && !ConfigEntry.SERVER_OWNERS.getStringList().contains(sender.getName()))
|
||||
{
|
||||
return noPerms();
|
||||
}
|
||||
|
||||
Boolean mode = args[0].equals("add");
|
||||
String name = args[1];
|
||||
String ip = args[2];
|
||||
String pkg = args[3];
|
||||
String forum_id = null;
|
||||
|
||||
if (args.length > 4)
|
||||
{
|
||||
forum_id = args[4];
|
||||
}
|
||||
|
||||
PlayerData data = plugin.pl.getData(name);
|
||||
|
||||
if (data == null)
|
||||
{
|
||||
data = plugin.pl.getDataByIp(ip);
|
||||
}
|
||||
|
||||
if (data != null)
|
||||
{
|
||||
data.setDonator(mode);
|
||||
plugin.pl.save(data);
|
||||
}
|
||||
|
||||
if (mode)
|
||||
{
|
||||
FUtil.bcastMsg(ChatColor.AQUA + name + ChatColor.GREEN + " has donated to the server!");
|
||||
}
|
||||
Player player = getPlayer(name);
|
||||
|
||||
if (player != null)
|
||||
{
|
||||
plugin.rm.updateDisplay(player);
|
||||
}
|
||||
|
||||
if (forum_id != null && !forum_id.equals("0"))
|
||||
{
|
||||
String baseurl = ConfigEntry.DONATION_PROBOARDS_URL.getString();
|
||||
String group_id = ConfigEntry.DONATION_GROUP_ID.getString();
|
||||
String session_id = ConfigEntry.DONATION_SESSION_ID.getString();
|
||||
String csrf_token = ConfigEntry.DONATION_CSRF_TOKEN.getString();
|
||||
if (baseurl == null || group_id == null || session_id == null || csrf_token == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
String url = baseurl + "/user/group_members/" + (mode ? "adding" : "remove");
|
||||
List<String> headers = Arrays.asList("Cookie:session_id=" + session_id, "X-Requested-With:XMLHttpRequest");
|
||||
String payload = "group_id=" + group_id + "&user_ids[]=" + forum_id + "&csrf_token=" + csrf_token;
|
||||
|
||||
try
|
||||
{
|
||||
FUtil.sendRequest(url, "POST", headers, payload);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
FLog.severe(e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
@ -44,14 +44,14 @@ public class Command_doom extends FreedomCommand
|
||||
final String ip = player.getAddress().getAddress().getHostAddress().trim();
|
||||
|
||||
// Remove from admin
|
||||
StaffMember staffMember = getAdmin(player);
|
||||
StaffMember staffMember = getStaffMember(player);
|
||||
if (staffMember != null)
|
||||
{
|
||||
FUtil.staffAction(sender.getName(), "Removing " + player.getName() + " from the staff list", true);
|
||||
staffMember.setActive(false);
|
||||
plugin.sl.save(staffMember);
|
||||
plugin.sl.updateTables();
|
||||
plugin.amp.updateAccountStatus(staffMember);
|
||||
plugin.ptero.updateAccountStatus(staffMember);
|
||||
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
|
||||
{
|
||||
plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID());
|
||||
|
@ -29,7 +29,7 @@ public class Command_mystaff extends FreedomCommand
|
||||
}
|
||||
|
||||
Player init = null;
|
||||
StaffMember target = getAdmin(playerSender);
|
||||
StaffMember target = getStaffMember(playerSender);
|
||||
Player targetPlayer = playerSender;
|
||||
|
||||
// -o switch
|
||||
@ -44,7 +44,7 @@ public class Command_mystaff extends FreedomCommand
|
||||
return true;
|
||||
}
|
||||
|
||||
target = getAdmin(targetPlayer);
|
||||
target = getStaffMember(targetPlayer);
|
||||
if (target == null)
|
||||
{
|
||||
msg("That player is not a staff member", ChatColor.RED);
|
||||
|
@ -0,0 +1,136 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import me.totalfreedom.totalfreedommod.staff.StaffMember;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Manage your Pterodactyl panel account", usage = "/<command> <create | delete>")
|
||||
public class Command_panel extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
|
||||
if (!plugin.ptero.isEnabled())
|
||||
{
|
||||
msg("Pterodactyl integration is currently disabled.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData playerData = getData(playerSender);
|
||||
|
||||
if (playerData.getDiscordID() == null)
|
||||
{
|
||||
msg("You must have a linked discord account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equals("create"))
|
||||
{
|
||||
msg("Creating your Pterodactyl account...", ChatColor.GREEN);
|
||||
StaffMember staffMember = getStaffMember(playerSender);
|
||||
|
||||
if (staffMember.getPteroID() != null)
|
||||
{
|
||||
msg("You already have a Pterodactyl account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
String username = sender.getName();
|
||||
String password = FUtil.randomString(30);
|
||||
|
||||
String id = plugin.ptero.createAccount(username, password);
|
||||
if (Strings.isNullOrEmpty(id))
|
||||
{
|
||||
msg("Failed to create your Pterodactyl account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
plugin.ptero.addAccountToServer(id);
|
||||
|
||||
staffMember.setPteroID(id);
|
||||
plugin.sl.save(staffMember);
|
||||
plugin.sl.updateTables();
|
||||
|
||||
plugin.dc.sendPteroInfo(playerData, username, password);
|
||||
msg("Successfully created your Pterodactyl account. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
else if (args[0].equals("delete"))
|
||||
{
|
||||
msg("Deleting your Pterodactyl account...", ChatColor.GREEN);
|
||||
StaffMember staffMember = getStaffMember(playerSender);
|
||||
|
||||
if (staffMember.getPteroID() == null)
|
||||
{
|
||||
msg("You do not have a Pterodactyl account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean deleted = plugin.ptero.deleteAccount(staffMember.getPteroID());
|
||||
|
||||
if (!deleted)
|
||||
{
|
||||
msg("Failed to delete your Pterodactyl account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
staffMember.setPteroID(null);
|
||||
plugin.sl.save(staffMember);
|
||||
plugin.sl.updateTables();
|
||||
|
||||
msg("Successfully deleted your Pterodactyl account.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
/*else if (args[0].equals("resetpassword"))
|
||||
{
|
||||
StaffMember staffMember = getAdmin(playerSender);
|
||||
|
||||
if (staffMember.getAmpUsername() == null)
|
||||
{
|
||||
msg("You do not have a Pterodactyl account.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
msg("Resetting your password...", ChatColor.GREEN);
|
||||
|
||||
String id = staffMember.getPteroID();
|
||||
String password = FUtil.randomString(30);
|
||||
plugin.ptero.setPassword(id, password);
|
||||
plugin.dc.sendPteroInfo(playerData, null, password);
|
||||
|
||||
msg("Successfully reset your AMP account password. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN);
|
||||
return true;
|
||||
}*/
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
|
||||
{
|
||||
if (args.length == 1 && plugin.sl.isAdmin(sender))
|
||||
{
|
||||
return Arrays.asList("create", "delete");
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
@ -112,7 +112,7 @@ public class Command_slconfig extends FreedomCommand
|
||||
plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID());
|
||||
}
|
||||
|
||||
plugin.amp.updateAccountStatus(staffMember);
|
||||
plugin.ptero.updateAccountStatus(staffMember);
|
||||
|
||||
msg("Set " + staffMember.getName() + "'s rank to " + rank.getName());
|
||||
return true;
|
||||
@ -206,7 +206,7 @@ public class Command_slconfig extends FreedomCommand
|
||||
|
||||
plugin.sl.addAdmin(staffMember);
|
||||
plugin.rm.updateDisplay(player);
|
||||
plugin.amp.updateAccountStatus(staffMember);
|
||||
plugin.ptero.updateAccountStatus(staffMember);
|
||||
}
|
||||
else // Existing staff member
|
||||
{
|
||||
@ -243,7 +243,7 @@ public class Command_slconfig extends FreedomCommand
|
||||
{
|
||||
plugin.dc.syncRoles(staffMember, plugin.pl.getData(player).getDiscordID());
|
||||
}
|
||||
plugin.amp.updateAccountStatus(staffMember);
|
||||
plugin.ptero.updateAccountStatus(staffMember);
|
||||
}
|
||||
|
||||
if (player != null)
|
||||
@ -299,7 +299,7 @@ public class Command_slconfig extends FreedomCommand
|
||||
Discord.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID());
|
||||
}
|
||||
|
||||
plugin.amp.updateAccountStatus(staffMember);
|
||||
plugin.ptero.updateAccountStatus(staffMember);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ public class Command_verify extends FreedomCommand
|
||||
{
|
||||
String code = plugin.dc.generateCode(10);
|
||||
plugin.dc.addVerificationCode(code, playerData);
|
||||
plugin.dc.bot.getUserById(discordId).openPrivateChannel().complete().sendMessage("A user with the IP `" + FUtil.getIp(playerSender) + "` has sent a verification request. Please run the following in-game command: `/verify " + code + "`").complete();
|
||||
plugin.dc.getUser(discordId).openPrivateChannel().complete().sendMessage("A user with the IP `" + FUtil.getIp(playerSender) + "` has sent a verification request. Please run the following in-game command: `/verify " + code + "`").complete();
|
||||
msg("A verification code has been sent to your account, please copy the code and run /verify <code>", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
|
@ -324,12 +324,12 @@ public abstract class FreedomCommand implements CommandExecutor, TabCompleter
|
||||
return player;
|
||||
}
|
||||
|
||||
protected StaffMember getAdmin(CommandSender sender)
|
||||
protected StaffMember getStaffMember(CommandSender sender)
|
||||
{
|
||||
return plugin.sl.getAdmin(sender);
|
||||
}
|
||||
|
||||
protected StaffMember getAdmin(Player player)
|
||||
protected StaffMember getStaffMember(Player player)
|
||||
{
|
||||
return plugin.sl.getAdmin(player);
|
||||
}
|
||||
|
Reference in New Issue
Block a user