As you may or may not know I owned exlode for a couple months and we didn't release the server due to money issues etc. I am selling the plugins that are custom and exclusive to the server. Upon purchase, you will receive resell rights and the source code for all plugins
BIN: 130
CB: 75
DM me on site to sort something out (will take to discord then back on site for the deal)
Any questions, drop them
Cheers
Combat loggers
Balance
Bottle xp
Chest
F focus
Killstreaks (shows on scoreboard after 3 kills)
Kit
Logout
Pay
Reclaim
Spawn timer
Stats
Tell location (co ords)
Deathbans
Found diamonds
Item tracker (tells you when you killed someone like stat trak)
Kit signs
Death listener (lightning and a message in chat)
Enchantment and potion limiters
Auto chat broadcasts
Cobwebs that disappear after a certain amount of time after placed
Kitmap / factions mode
Leaderboards on signs (Highest killstreak, most deaths, most kills)
Shop signs
Faster splash potions for healing
Custom tab list
Enderpearl, gapple, crapple, pvp and sotw timers
SOTW enable for pvp before SOTW ends
Staff scoreboard
Factions
Sumo scoreboard
Frozen scoreboard
Balance
Bottle xp
Chest
F focus
Killstreaks (shows on scoreboard after 3 kills)
Kit
Logout
Pay
Reclaim
Spawn timer
Stats
Tell location (co ords)
Deathbans
Found diamonds
Item tracker (tells you when you killed someone like stat trak)
Kit signs
Death listener (lightning and a message in chat)
Enchantment and potion limiters
Auto chat broadcasts
Cobwebs that disappear after a certain amount of time after placed
Kitmap / factions mode
Leaderboards on signs (Highest killstreak, most deaths, most kills)
Shop signs
Faster splash potions for healing
Custom tab list
Enderpearl, gapple, crapple, pvp and sotw timers
SOTW enable for pvp before SOTW ends
Staff scoreboard
Factions
Sumo scoreboard
Frozen scoreboard
Ban
Blacklist
Tempban
Mute
Unban
Unblacklist
Check ban and ban evadors
Slow, mute chat
Spam filter
Messages
Report
Request
Staff chat
Blacklist
Tempban
Mute
Unban
Unblacklist
Check ban and ban evadors
Slow, mute chat
Spam filter
Messages
Report
Request
Staff chat
Grant with GUI
Permissions inheritence
Prefix / suffix
Permissions inheritence
Prefix / suffix
Scoreboard
Players online (bungee)
Queue on scoreboard
Server selector
Armour depending on what rank you are
Clickable NPC's to connect to servers
2FA code for google authentication (on a map so you can scan it)
Players online (bungee)
Queue on scoreboard
Server selector
Armour depending on what rank you are
Clickable NPC's to connect to servers
2FA code for google authentication (on a map so you can scan it)
Duel
Spectate
Parties
Events (OITC, Parkour, FFA, Tournament, Sumo, Red rover)
Killstreaks for FFA
Edit kits
Host event for certain ranks (donator perk)
ELO
Reset stats
Stats of others
Leaderboards
Queue
Enderpearl cooldown
Coloured nametags for enemys
Spectate
Parties
Events (OITC, Parkour, FFA, Tournament, Sumo, Red rover)
Killstreaks for FFA
Edit kits
Host event for certain ranks (donator perk)
ELO
Reset stats
Stats of others
Leaderboards
Queue
Enderpearl cooldown
Coloured nametags for enemys
https://cdn.discordapp.com/attachments/369864713468641280/589181049754353679/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/589181197582729236/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/589621893225775125/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/573957191543947279/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/568506869329559579/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/568506593130446869/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/568201468956639273/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/567174577768235008/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/562391893854650368/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/561334192324214784/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/560953132780224531/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/558053358125187082/unknown.png https://cdn.discordapp.com/attachments/369864713468641280/556648191853068297/unknown.png
}
ProfileData.addDeaths(p, 1);
final Rank pRank = Profile.getByUuid(p.getUniqueId()).getActiveGrant().getRank();
final Rank kRank = Profile.getByUuid(e.getEntity().getKiller().getUniqueId()).getActiveGrant().getRank();
if (ProfileData.getKillStreak(p) >= 3) {
if (!(e.getEntity().getKiller() instanceof Player)) {
Bukkit.broadcastMessage(Chat.translate("&8» &f" + pRank.getData().getColorPrefix() + p.getName() + "&e has lost their killstreak of &6" + ProfileData.getKillStreak(p)));
} else {
Bukkit.broadcastMessage(Chat.translate("&8» &f" + kRank.getData().getColorPrefix() + e.getEntity().getKiller().getName() + " &ehas ended &f" + kRank.getData().getColorPrefix() + p.getName() + "'s &ekillstreak of &6" + ProfileData.getKillStreak(p)));
}
ProfileData.setKillStreak(p, 0);
}
}
ProfileData.addDeaths(p, 1);
final Rank pRank = Profile.getByUuid(p.getUniqueId()).getActiveGrant().getRank();
final Rank kRank = Profile.getByUuid(e.getEntity().getKiller().getUniqueId()).getActiveGrant().getRank();
if (ProfileData.getKillStreak(p) >= 3) {
if (!(e.getEntity().getKiller() instanceof Player)) {
Bukkit.broadcastMessage(Chat.translate("&8» &f" + pRank.getData().getColorPrefix() + p.getName() + "&e has lost their killstreak of &6" + ProfileData.getKillStreak(p)));
} else {
Bukkit.broadcastMessage(Chat.translate("&8» &f" + kRank.getData().getColorPrefix() + e.getEntity().getKiller().getName() + " &ehas ended &f" + kRank.getData().getColorPrefix() + p.getName() + "'s &ekillstreak of &6" + ProfileData.getKillStreak(p)));
}
ProfileData.setKillStreak(p, 0);
}
}
if (profile.getSecretKey() == null) {
GoogleAuthenticator auth = new GoogleAuthenticator();
GoogleAuthenticatorKey secretKey = auth.createCredentials();
profile.setAuthLocked(true);
player.sendMessage(Chat.translate("&cIt seems you are required to setup 2fa."));
player.sendMessage(Chat.translate("&cPlease enter the following code into the Google Authenticator App."));
player.sendMessage(Chat.translate("&cYour Code: &f" + secretKey.getKey()));
profile.setSecretKey(secretKey.getKey());
profile.save();
}
} else {
// TODO: Check if they log in with a different ip address!
profile.setAuthLocked(true);
player.sendMessage(Chat.translate("&cYou have logged in on a different ip address,"));
player.sendMessage(Chat.translate("&cplease enter your six digit google auth code."));
}
}
GoogleAuthenticator auth = new GoogleAuthenticator();
GoogleAuthenticatorKey secretKey = auth.createCredentials();
profile.setAuthLocked(true);
player.sendMessage(Chat.translate("&cIt seems you are required to setup 2fa."));
player.sendMessage(Chat.translate("&cPlease enter the following code into the Google Authenticator App."));
player.sendMessage(Chat.translate("&cYour Code: &f" + secretKey.getKey()));
profile.setSecretKey(secretKey.getKey());
profile.save();
}
} else {
// TODO: Check if they log in with a different ip address!
profile.setAuthLocked(true);
player.sendMessage(Chat.translate("&cYou have logged in on a different ip address,"));
player.sendMessage(Chat.translate("&cplease enter your six digit google auth code."));
}
}
@Command(name = "c", aliases = {"checkpunishments"}, permission = "perm.staff.all", inGameOnly = true)
public void onCommand(CommandArgs command) {
CommandSender sender = command.getSender();
String[] args = command.getArgs();
if (args.length == 0) {
new FancyMessage(ChatColor.RED + "Usage: /" + command.getLabel() + " <player>").tooltip(ChatColor.YELLOW + "View the punishments of a user").send(sender);
return;
}
String name;
UUID uuid;
Player player = Bukkit.getPlayer(args[0]);
if (player != null) {
uuid = player.getUniqueId();
name = player.getDisplayName();
}
else {
try {
Pair<UUID, String> recipient = Profile.getExternalPlayerInformation(args[0]);
uuid = recipient.getKey();
name = recipient.getValue();
}
catch (Exception e) {
command.getSender().sendMessage(ChatColor.RED + "Failed to find player.");
return;
}
}
public void onCommand(CommandArgs command) {
CommandSender sender = command.getSender();
String[] args = command.getArgs();
if (args.length == 0) {
new FancyMessage(ChatColor.RED + "Usage: /" + command.getLabel() + " <player>").tooltip(ChatColor.YELLOW + "View the punishments of a user").send(sender);
return;
}
String name;
UUID uuid;
Player player = Bukkit.getPlayer(args[0]);
if (player != null) {
uuid = player.getUniqueId();
name = player.getDisplayName();
}
else {
try {
Pair<UUID, String> recipient = Profile.getExternalPlayerInformation(args[0]);
uuid = recipient.getKey();
name = recipient.getValue();
}
catch (Exception e) {
command.getSender().sendMessage(ChatColor.RED + "Failed to find player.");
return;
}
}
public Inventory getInventory() {
int size = (int) Math.ceil(Rank.getRanks().size() / 9.0);
Inventory inventory = Bukkit.createInventory(null, size == 0 ? 9 : size * 9, ChatColor.YELLOW + "" + ChatColor.BOLD + "Choose a Rank");
for (Rank rank : Rank.getRanks()) {
if (rank.getData().isDefaultRank()) continue;
ChatColor color;
if (rank.getData().getPrefix().isEmpty()) {
color = ChatColor.WHITE;
} else {
char code = 'f';
for (String string : rank.getData().getPrefix().split("&")) {
if (!(string.isEmpty())) {
if (ChatColor.getByChar(string.toCharArray()[0]) != null) {
code = string.toCharArray()[0];
}
}
}
color = ChatColor.getByChar(code);
}
inventory.addItem(new ItemBuilder(Material.STAINED_GLASS_PANE)
.durability(WoolUtil.convertChatColorToWoolData(color))
.name(color + rank.getData().getName())
.lore(Arrays.asList(
"&8&m------------------------------",
" &6» &eTarget: &d" + color + getRecipient().getName(),
" &6» &eRank: &d" + color + rank.getData().getName(),
" ",
"&e&oClick to grant the player the rank.",
"&8&m------------------------------"
))
.build());
}
return inventory;
}
int size = (int) Math.ceil(Rank.getRanks().size() / 9.0);
Inventory inventory = Bukkit.createInventory(null, size == 0 ? 9 : size * 9, ChatColor.YELLOW + "" + ChatColor.BOLD + "Choose a Rank");
for (Rank rank : Rank.getRanks()) {
if (rank.getData().isDefaultRank()) continue;
ChatColor color;
if (rank.getData().getPrefix().isEmpty()) {
color = ChatColor.WHITE;
} else {
char code = 'f';
for (String string : rank.getData().getPrefix().split("&")) {
if (!(string.isEmpty())) {
if (ChatColor.getByChar(string.toCharArray()[0]) != null) {
code = string.toCharArray()[0];
}
}
}
color = ChatColor.getByChar(code);
}
inventory.addItem(new ItemBuilder(Material.STAINED_GLASS_PANE)
.durability(WoolUtil.convertChatColorToWoolData(color))
.name(color + rank.getData().getName())
.lore(Arrays.asList(
"&8&m------------------------------",
" &6» &eTarget: &d" + color + getRecipient().getName(),
" &6» &eRank: &d" + color + rank.getData().getName(),
" ",
"&e&oClick to grant the player the rank.",
"&8&m------------------------------"
))
.build());
}
return inventory;
}
public DuelCommand() {
super("duel");
this.plugin = Argon.getInstance();
this.setDescription("Duel a player.");
this.setUsage(ChatColor.RED + "Usage: /duel <player>");
}
public boolean execute(final CommandSender sender, final String alias, final String[] args) {
if (!(sender instanceof Player)) {
return true;
}
final Player player = (Player)sender;
if (args.length < 1) {
player.sendMessage(this.usageMessage);
return true;
}
if (this.plugin.getTournamentManager().getTournament(player.getUniqueId()) != null) {
player.sendMessage(ChatColor.RED + "You are currently in a tournament.");
return true;
}
final PlayerData playerData = this.plugin.getPlayerManager().getPlayerData(player.getUniqueId());
if (playerData.getPlayerState() != PlayerState.SPAWN) {
player.sendMessage(ChatColor.RED + "Cannot execute this command in your current state.");
return true;
}
final Player target = this.plugin.getServer().getPlayer(args[0]);
if (target == null) {
player.sendMessage(String.format(StringUtil.PLAYER_NOT_FOUND, args[0]));
return true;
}
if (this.plugin.getTournamentManager().getTournament(target.getUniqueId()) != null) {
player.sendMessage(ChatColor.RED + "That player is currently in a tournament.");
return true;
}
final Party party = this.plugin.getPartyManager().getParty(player.getUniqueId());
final Party targetParty = this.plugin.getPartyManager().getParty(target.getUniqueId());
if (player.getName().equals(target.getName())) {
player.sendMessage(ChatColor.RED + "You can't duel yourself.");
return true;
}
if (party != null && targetParty != null && party == targetParty) {
player.sendMessage(ChatColor.RED + "You can't duel yourself.");
return true;
}
if (party != null && !this.plugin.getPartyManager().isLeader(player.getUniqueId())) {
player.sendMessage(ChatColor.RED + "You are not the leader fo the party.");
return true;
}
final PlayerData targetData = this.plugin.getPlayerManager().getPlayerData(target.getUniqueId());
if (targetData.getPlayerState() != PlayerState.SPAWN) {
player.sendMessage(ChatColor.RED + "That player is currently busy.");
return true;
}
if (!targetData.getOptions().isDuelRequests()) {
player.sendMessage(ChatColor.RED + "That player has ignored duel requests.");
return true;
}
if (party == null && targetParty != null) {
player.sendMessage(ChatColor.RED + "That player is currently in a party.");
return true;
}
if (party != null && targetParty == null) {
player.sendMessage(ChatColor.RED + "You are currently in a party.");
return true;
}
playerData.setDuelSelecting(target.getUniqueId());
player.openInventory(this.plugin.getInventoryManager().getDuelInventory().getCurrentPage());
return true;
}
super("duel");
this.plugin = Argon.getInstance();
this.setDescription("Duel a player.");
this.setUsage(ChatColor.RED + "Usage: /duel <player>");
}
public boolean execute(final CommandSender sender, final String alias, final String[] args) {
if (!(sender instanceof Player)) {
return true;
}
final Player player = (Player)sender;
if (args.length < 1) {
player.sendMessage(this.usageMessage);
return true;
}
if (this.plugin.getTournamentManager().getTournament(player.getUniqueId()) != null) {
player.sendMessage(ChatColor.RED + "You are currently in a tournament.");
return true;
}
final PlayerData playerData = this.plugin.getPlayerManager().getPlayerData(player.getUniqueId());
if (playerData.getPlayerState() != PlayerState.SPAWN) {
player.sendMessage(ChatColor.RED + "Cannot execute this command in your current state.");
return true;
}
final Player target = this.plugin.getServer().getPlayer(args[0]);
if (target == null) {
player.sendMessage(String.format(StringUtil.PLAYER_NOT_FOUND, args[0]));
return true;
}
if (this.plugin.getTournamentManager().getTournament(target.getUniqueId()) != null) {
player.sendMessage(ChatColor.RED + "That player is currently in a tournament.");
return true;
}
final Party party = this.plugin.getPartyManager().getParty(player.getUniqueId());
final Party targetParty = this.plugin.getPartyManager().getParty(target.getUniqueId());
if (player.getName().equals(target.getName())) {
player.sendMessage(ChatColor.RED + "You can't duel yourself.");
return true;
}
if (party != null && targetParty != null && party == targetParty) {
player.sendMessage(ChatColor.RED + "You can't duel yourself.");
return true;
}
if (party != null && !this.plugin.getPartyManager().isLeader(player.getUniqueId())) {
player.sendMessage(ChatColor.RED + "You are not the leader fo the party.");
return true;
}
final PlayerData targetData = this.plugin.getPlayerManager().getPlayerData(target.getUniqueId());
if (targetData.getPlayerState() != PlayerState.SPAWN) {
player.sendMessage(ChatColor.RED + "That player is currently busy.");
return true;
}
if (!targetData.getOptions().isDuelRequests()) {
player.sendMessage(ChatColor.RED + "That player has ignored duel requests.");
return true;
}
if (party == null && targetParty != null) {
player.sendMessage(ChatColor.RED + "That player is currently in a party.");
return true;
}
if (party != null && targetParty == null) {
player.sendMessage(ChatColor.RED + "You are currently in a party.");
return true;
}
playerData.setDuelSelecting(target.getUniqueId());
player.openInventory(this.plugin.getInventoryManager().getDuelInventory().getCurrentPage());
return true;
}
BIN: 130
CB: 75
DM me on site to sort something out (will take to discord then back on site for the deal)
Any questions, drop them
Cheers
Last edited:
