Added lots o commands

This commit is contained in:
TheTrouper
2024-03-28 15:57:36 -05:00
commit c3bce35dc4
37 changed files with 1581 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
package functions;
import me.trouper.ultrautils.UltraUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Text {
public static String regexHighlighter(String input, String regex, String startString, String endString) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(result, startString + matcher.group() + endString);
}
matcher.appendTail(result);
return result.toString();
}
public static final char SECTION_SYMBOL = (char)167;
public static String color(String msg) {
return msg.replace('&', SECTION_SYMBOL);
}
public static String prefix(String text) {
String prefix = UltraUtils.config.prefix;
return color(prefix + text);
}
public static String removeFirstColor(String input) {
if (input.startsWith("\u00a7")) {
if (input.length() > 2) {
return input.substring(2);
} else {
return "";
}
} else {
return input;
}
}
public static String replaceRepeatingLetters(String input) {
if (input == null || input.isEmpty()) {
return input;
}
StringBuilder simplifiedText = new StringBuilder();
char currentChar = input.charAt(0);
int count = 1;
for (int i = 1; i < input.length(); i++) {
char nextChar = input.charAt(i);
if (Character.toLowerCase(nextChar) == Character.toLowerCase(currentChar)) {
count++;
} else {
simplifiedText.append(currentChar);
if (count > 1) {
simplifiedText.append(currentChar);
}
currentChar = nextChar;
count = 1;
}
}
simplifiedText.append(currentChar);
if (count > 1) {
simplifiedText.append(currentChar);
}
return simplifiedText.toString();
}
public static String cleanName(String type) {
return type.replaceAll("_"," ").toLowerCase();
}
}

View File

@@ -0,0 +1,95 @@
package me.trouper.ultrautils;
import io.github.itzispyder.pdk.PDK;
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
import me.trouper.ultrautils.commands.UltraUtilsCommand;
import me.trouper.ultrautils.commands.gamemode.*;
import me.trouper.ultrautils.commands.mobility.FlyCommand;
import me.trouper.ultrautils.commands.mobility.SpeedCommand;
import me.trouper.ultrautils.commands.workstations.*;
import me.trouper.ultrautils.data.config.Config;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.util.logging.Logger;
public final class UltraUtils extends JavaPlugin {
private static UltraUtils instance;
private static final File configFile = new File("plugins/UltraUtils/main-config.json");
public static Config config = JsonSerializable.load(configFile, Config.class, new Config());
public static final Logger log = Bukkit.getLogger();
/**
* Plugin startup logic
*/
@Override
public void onEnable() {
log.info("\n]======------ Pre-load started ------======[");
PDK.init(this);
instance = this;
loadConfig();
startup();
}
public void startup() {
log.info("\n]======----- Loading UltraUtils-----======[");
// Plugin startup logic
log.info("Starting Up! (%s)...".formatted(getDescription().getVersion()));
new UltraUtilsCommand().register();
new GamemodeCommand().register();
new GMACommand().register();
new GMCCommand().register();
new GMSPCommand().register();
new GMSCommand().register();
new AnvilCommand().register();
new CartographyCommand().register();
new CraftingCommand().register();
new GrindstoneCommand().register();
new LoomCommand().register();
new SmithingCommand().register();
new StonecutterCommand().register();
new FlyCommand().register();
new SpeedCommand().register();
// Events
log.info("""
Finished!
UltraUtils has loaded.
""");
}
public void loadConfig() {
log.info("Loading Config...");
// Init
config = JsonSerializable.load(configFile, Config.class,new Config());
// Save
config.save();
}
/**
* Plugin shutdown logic
*/
@Override
public void onDisable() {
// Plugin shutdown logic
log.info("UltraUtils has disabled! (%s)".formatted(getDescription().getVersion()));
}
public static UltraUtils getInstance() {
return instance;
}
}

View File

@@ -0,0 +1,37 @@
package me.trouper.ultrautils.commands;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import me.trouper.ultrautils.UltraUtils;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "ultrautils", permission = @Permission("ultrautils.admin"), printStackTrace = true)
public class UltraUtilsCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
switch (args.get(0).toString()) {
case "toggle" -> {
switch (args.get(1).toString()) {
case "debug" -> {
UltraUtils.config.debugMode = !UltraUtils.config.debugMode;
UltraUtils.config.save();
}
}
}
}
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
b.then(b.arg("toggle")
.then(b.arg("debug"))
);
}
}

View File

@@ -0,0 +1,44 @@
package me.trouper.ultrautils.commands.gamemode;
import functions.Text;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandRegistry(value = "gma",permission = @Permission("ultrautils.gamemode.adventure"))
public class GMACommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender commandSender, Args args) {
Player target = Bukkit.getPlayer(args.get(0).toString());
if (target == null && (commandSender instanceof Player)) target = (Player) commandSender;
if (target == null) {
commandSender.sendMessage(Text.prefix("Only players may execute that command"));
return;
}
if (!commandSender.hasPermission("ultrautils.gamemode")) {
commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode."));
return;
}
GamemodeCommand.setGameMode(commandSender,target,GameMode.ADVENTURE,"ultrautils.gamemode.adventure");
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
List<String> players = new ArrayList<>();
for (Player player : ServerUtils.players()) {
players.add(player.getName());
}
b.then(b.arg(players));
}
}

View File

@@ -0,0 +1,43 @@
package me.trouper.ultrautils.commands.gamemode;
import functions.Text;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandRegistry(value = "gmc",permission = @Permission("ultrautils.gamemode.creative"))
public class GMCCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender commandSender, Args args) {
Player target = Bukkit.getPlayer(args.get(0).toString());
if (target == null && (commandSender instanceof Player)) target = (Player) commandSender;
if (target == null) {
commandSender.sendMessage(Text.prefix("Only players may execute that command"));
return;
}
if (!commandSender.hasPermission("ultrautils.gamemode")) {
commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode."));
return;
}
GamemodeCommand.setGameMode(commandSender,target,GameMode.CREATIVE,"ultrautils.gamemode.creative");}
@Override
public void dispatchCompletions(CompletionBuilder b) {
List<String> players = new ArrayList<>();
for (Player player : ServerUtils.players()) {
players.add(player.getName());
}
b.then(b.arg(players));
}
}

View File

@@ -0,0 +1,43 @@
package me.trouper.ultrautils.commands.gamemode;
import functions.Text;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandRegistry(value = "gms",permission = @Permission("ultrautils.gamemode.survival"))
public class GMSCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender commandSender, Args args) {
Player target = Bukkit.getPlayer(args.get(0).toString());
if (target == null && (commandSender instanceof Player)) target = (Player) commandSender;
if (target == null) {
commandSender.sendMessage(Text.prefix("Only players may execute that command"));
return;
}
if (!commandSender.hasPermission("ultrautils.gamemode")) {
commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode."));
return;
}
GamemodeCommand.setGameMode(commandSender,target,GameMode.SURVIVAL,"ultrautils.gamemode.survival");}
@Override
public void dispatchCompletions(CompletionBuilder b) {
List<String> players = new ArrayList<>();
for (Player player : ServerUtils.players()) {
players.add(player.getName());
}
b.then(b.arg(players));
}
}

View File

@@ -0,0 +1,44 @@
package me.trouper.ultrautils.commands.gamemode;
import functions.Text;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandRegistry(value = "gmc",permission = @Permission("ultrautils.gamemode.spectator"))
public class GMSPCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender commandSender, Args args) {
Player target = Bukkit.getPlayer(args.get(0).toString());
if (target == null && (commandSender instanceof Player)) target = (Player) commandSender;
if (target == null) {
commandSender.sendMessage(Text.prefix("Only players may execute that command"));
return;
}
if (!commandSender.hasPermission("ultrautils.gamemode")) {
commandSender.sendMessage(Text.prefix("You do not have the root permission to change gamemode."));
return;
}
GamemodeCommand.setGameMode(commandSender,target,GameMode.SPECTATOR,"ultrautils.gamemode.spectator");
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
List<String> players = new ArrayList<>();
for (Player player : ServerUtils.players()) {
players.add(player.getName());
}
b.then(b.arg(players));
}
}

View File

@@ -0,0 +1,72 @@
package me.trouper.ultrautils.commands.gamemode;
import functions.Text;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
@CommandRegistry(value = "gamemode", permission = @Permission("ultrautils.gamemode"))
public class GamemodeCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player target = Bukkit.getPlayer(args.get(1).toString());
if (target == null && (sender instanceof Player)) target = (Player) sender;
if (target == null) {
sender.sendMessage(Text.prefix("Only players may execute that command"));
return;
}
switch (args.get(0).toString()) {
case "a","adventure","adv","gma" -> setGameMode(sender,target,GameMode.ADVENTURE, "ultrautils.gamemode.adventure");
case "c","creative","cre","gmc" -> setGameMode(sender,target,GameMode.CREATIVE,"ultrautils.gamemode.creative");
case "s","survival","sur","gms" -> setGameMode(sender,target,GameMode.SURVIVAL,"ultrautils.gamemode.survival");
case "sp","spectator","spec","gmsp" -> setGameMode(sender,target,GameMode.SPECTATOR,"ultrautils.gamemode.spectator");
}
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
List<String> players = new ArrayList<>();
for (Player player : ServerUtils.players()) {
players.add(player.getName());
}
b.then(b.arg("adventure","creative","survival","spectator")
.then(b.arg(players))
);
}
public static void setGameMode(CommandSender user, @Nullable Player target, GameMode gm, String permission) {
if (!user.hasPermission(permission)) {
user.sendMessage(Text.prefix("You lack the permission to swith gamemodes to %c%s&7."));
return;
}
if (target == null && user instanceof Player) target = (Player) user;
if (target == null) {
user.sendMessage(Text.prefix("Only players can execute self-effecting commands."));
return;
}
if (user.equals(target)) {
target.setGameMode(gm);
user.sendMessage(Text.prefix("Set your gamemode to &a%s&7.".formatted(target.getGameMode().toString().toLowerCase())));
} else if (user.hasPermission("ultrautils.gamemode.others")) {
target.setGameMode(gm);
user.sendMessage(Text.prefix("Set the gamemode of &e%s&7 to &a%s&7.".formatted(target.getName(),target.getGameMode().toString().toLowerCase())));
target.sendMessage(Text.prefix("Your gamemode has been set to &a%s&7.".formatted(target.getGameMode().toString().toLowerCase())));
} else {
user.sendMessage(Text.prefix("You lack the permission to set other player's gamemode."));
}
}
}

View File

@@ -0,0 +1,51 @@
package me.trouper.ultrautils.commands.mobility;
import functions.Text;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandRegistry(value = "fly", permission = @Permission("ultrautils.flight"))
public class FlyCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player user = (Player) sender;
Player target = Bukkit.getPlayer(args.get(1).toString());
if (target == null && (sender instanceof Player)) target = (Player) sender;
if (target == null) {
sender.sendMessage(Text.prefix("Only players may execute that command"));
return;
}
boolean current = target.getAllowFlight();
if (user.equals(target)) {
target.setAllowFlight(!current);
sender.sendMessage(Text.prefix("Flight &a%s&7.".formatted(!current ? "&aenabled" : "&cdisabled")));
} else if (sender.hasPermission("ultrautils.flight.others")) {
target.setAllowFlight(!current);
sender.sendMessage(Text.prefix("&a%s&7 the flight of &e%s&7.".formatted(!current ? "&aenabled" : "&cdisabled",target.getName())));
target.sendMessage(Text.prefix("Your flight has been &a%s&7.".formatted(!current ? "&aenabled" : "&cdisabled")));
} else {
sender.sendMessage(Text.prefix("You lack the permission to set other player's flight status."));
}
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
List<String> players = new ArrayList<>();
for (Player player : ServerUtils.players()) {
players.add(player.getName());
}
b.then(b.arg(players));
}
}

View File

@@ -0,0 +1,96 @@
package me.trouper.ultrautils.commands.mobility;
import functions.Text;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ServerUtils;
import me.trouper.ultrautils.UltraUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandRegistry(value = "speed", permission = @Permission("ultrautils.speed"))
public class SpeedCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
String type = args.get(1).toString();
float speed = args.get(0).toFloat();
Player user = (Player) sender;
Player target = Bukkit.getPlayer(args.get(2).toString());
if (target == null && (sender instanceof Player)) target = (Player) sender;
if (target == null) {
sender.sendMessage(Text.prefix("Only players may execute that command"));
return;
}
switch (type) {
case "walk" -> {
setWalkSpeed(sender,user,target,speed);
}
case "flight" -> {
setFlySpeed(sender,user,target,speed);
}
default -> {
if (target.isFlying()) {
setFlySpeed(sender,user,target,speed);
return;
}
setWalkSpeed(sender,user,target,speed);
}
}
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
List<String> players = new ArrayList<>();
for (Player player : ServerUtils.players()) {
players.add(player.getName());
}
b.then(b.arg("[<int>]")
.then(b.arg("walk","flight")
.then(b.arg(players))
)
);
}
public static void setFlySpeed(CommandSender sender, Player user, Player target, float speed) {
if (!user.hasPermission("ultrautils.speed.flight")) {
sender.sendMessage("You lack the permission to set walk speed.");
return;
}
if (user.equals(target)) {
target.setFlySpeed(speed);
user.sendMessage(Text.prefix("Set your flight speed to &a%s&7.".formatted(speed)));
} else if (user.hasPermission("ultrautils.speed.fly.others")) {
target.setFlySpeed(speed);
user.sendMessage(Text.prefix("Set the flight speed of &e%s&7 to &a%s&7.".formatted(target.getName(),speed)));
target.sendMessage(Text.prefix("Your flight speed has been set to &a%s&7.".formatted(speed)));
} else {
user.sendMessage(Text.prefix("You lack the permission to set other player's flight speed."));
}
}
public static void setWalkSpeed(CommandSender sender, Player user, Player target, float speed) {
if (!user.hasPermission("ultrautils.speed.walk")) {
sender.sendMessage("You lack the permission to set walk speed.");
return;
}
if (user.equals(target)) {
target.setWalkSpeed(speed);
user.sendMessage(Text.prefix("Set your walk speed to &a%s&7.".formatted(speed)));
} else if (user.hasPermission("ultrautils.speed.walk.others")) {
target.setWalkSpeed(speed);
user.sendMessage(Text.prefix("Set the walk speed of &e%s&7 to &a%s&7.".formatted(target.getName(),speed)));
target.sendMessage(Text.prefix("Your walk speed has been set to &a%s&7.".formatted(speed)));
} else {
user.sendMessage(Text.prefix("You lack the permission to set other player's walk speed."));
}
}
}

View File

@@ -0,0 +1,23 @@
package me.trouper.ultrautils.commands.workstations;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "anvil", permission = @Permission("ultrautils.anvil"),playersOnly = true)
public class AnvilCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
p.openAnvil(p.getLocation(),true);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
}
}

View File

@@ -0,0 +1,23 @@
package me.trouper.ultrautils.commands.workstations;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "cartography", permission = @Permission("ultrautils.cartography"),playersOnly = true)
public class CartographyCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
p.openCartographyTable(p.getLocation(),true);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
}
}

View File

@@ -0,0 +1,23 @@
package me.trouper.ultrautils.commands.workstations;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "craft", permission = @Permission("ultrautils.craft"),playersOnly = true)
public class CraftingCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
p.openWorkbench(p.getLocation(),true);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
}
}

View File

@@ -0,0 +1,23 @@
package me.trouper.ultrautils.commands.workstations;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "grindstone", permission = @Permission("ultrautils.grind"),playersOnly = true)
public class GrindstoneCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
p.openGrindstone(p.getLocation(),true);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
}
}

View File

@@ -0,0 +1,23 @@
package me.trouper.ultrautils.commands.workstations;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "smith", permission = @Permission("ultrautils.smith"),playersOnly = true)
public class LoomCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
p.openLoom(p.getLocation(),true);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
}
}

View File

@@ -0,0 +1,23 @@
package me.trouper.ultrautils.commands.workstations;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "smith", permission = @Permission("ultrautils.smith"),playersOnly = true)
public class SmithingCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
p.openSmithingTable(p.getLocation(),true);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
}
}

View File

@@ -0,0 +1,23 @@
package me.trouper.ultrautils.commands.workstations;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandRegistry(value = "stonecutter", permission = @Permission("ultrautils.stonecut"),playersOnly = true)
public class StonecutterCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
p.openStonecutter(p.getLocation(),true);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
}
}

View File

@@ -0,0 +1,4 @@
package me.trouper.ultrautils.data;
public class Items {
}

View File

@@ -0,0 +1,4 @@
package me.trouper.ultrautils.data;
public class Storage {
}

View File

@@ -0,0 +1,24 @@
package me.trouper.ultrautils.data.config;
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
import java.io.File;
public class Config implements JsonSerializable<Config> {
@Override
public File getFile() {
File file = new File("plugins/UltraUtils/main-config.json");
file.getParentFile().mkdirs();
return file;
}
public String prefix = "&9UltraCore> &7";
public boolean debugMode = false;
public Plugin plugin = new Plugin();
public class Plugin {
public String joinMessage = "&8[&2+&8] &a%s&7 has joined.";
public String leaveMessage = "&8[&4-&8] &c%s&7 has left.";
}
}

View File

@@ -0,0 +1,31 @@
package me.trouper.ultrautils.events;
import functions.Text;
import io.github.itzispyder.pdk.events.CustomListener;
import me.trouper.ultrautils.UltraUtils;
import me.trouper.ultrautils.data.config.Config;
import net.kyori.adventure.text.Component;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
public class JoinLeaveEvent implements CustomListener {
@EventHandler
public void onJoin(PlayerJoinEvent e) {
if (UltraUtils.config.plugin.joinMessage.isBlank()) {
e.joinMessage(null);
return;
}
e.joinMessage(Component.text(Text.color(UltraUtils.config.plugin.joinMessage)));
}
@EventHandler
public void onLeave(PlayerQuitEvent e) {
if (UltraUtils.config.plugin.leaveMessage.isBlank()) {
e.quitMessage(null);
return;
}
e.quitMessage(Component.text(Text.color(UltraUtils.config.plugin.leaveMessage)));
}
}

View File

@@ -0,0 +1,118 @@
name: UltraUtils
version: '${version}'
main: me.trouper.ultrautils.UltraUtils
api-version: 1.19
authors: [ obvWolf ]
description: A Utility plugin for server management and moderation.
website: https://trouper.me/
permissions:
ultrautils.admin:
default: op
description: Access to the admin command
ultrautils.gamemode:
default: op
description: This permission is required to use ANY gamemode commands. It does not give permission to switch to any gamemodes.
ultrautils.gamemode.adventure:
default: op
description: Allows changing gamemode to adventure
ultrautils.gamemode.creative:
default: op
description: Allows changing gamemode to creative
ultrautils.gamemode.survival:
default: op
description: Allows changing gamemode to survival
ultrautils.gamemode.spectator:
default: op
description: Allows changing gamemode to spectator
ultrautils.gamemode.others:
default: op
description: Allows setting the gamemode of other players
ultrautils.craft:
default: op
description: Access to the portable crafting table
ultrautils.anvil:
default: op
description: Access to the portable anvil
ultrautils.cartography:
default: op
description: Access to the portable cartography table
ultrautils.grindstone:
default: op
description: Access to the portable grindstone
ultrautils.loom:
default: op
description: Access to the portable loom
ultrautils.smithing:
default: op
description: Access to the portable smithing table
ultrautils.stonecutter:
default: op
description: Access to the portable stonecutter
ultrautils.flight:
default: op
description: Enable or disable flight (only the sender)
ultrautils.flight.others:
defualt: op
description: Enable or disable flight for specific players
commands:
ultrautils:
description: Admin command for admin things
usage: /ultrautils
permission: ultrautils.admin
aliases:
- uu
gma:
description: Change gamemode to adventure
permission: ultrautils.gamemode.adventure
usage: /gma [<player>]
gmc:
description: Change gamemode to creative
permission: ultrautils.gamemode.creative
usage: /gmc [<player>]
gms:
description: Change gamemode to survival
permission: ultrautils.gamemode.survival
usage: /gms [<player>]
gmsp:
description: Change gamemode to spectator
permission: ultrautils.gamemode.spectator
usage: /gmsp [<player>]
gamemode:
description: Root gamemode changing command. Required for all the other gamemode commands.
permission: ultrautils.gamemode
usage: /gamemode <gamemode> [<player>]
anvil:
permission: ultrautils.anvil
description: a portable anvil
cartography:
permission: ultrautils.cartography
description: a portable cartography table
aliases:
- mapstation
craft:
permission: ultrautils.craft
description: a portable crafting table
aliases:
- workbench
grindstone:
permission: ultrautils.grindstone
description: a portable grindstone
loom:
permission: ultrautils.loom
description: a portable loom
smithingtable:
description: a portable smithing table
permission: ultrautils.smithing
aliases:
- upgradetable
stonecutter:
description: a portable stonecutter
permission: ultrautils.stonecutter
fly:
description: Toggle flight status
permission: ultrautils.flight
usage: /fly [<player>]
aliases:
- flight