Added lots o commands
This commit is contained in:
85
src/main/java/functions/Text.java
Normal file
85
src/main/java/functions/Text.java
Normal 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();
|
||||
}
|
||||
}
|
||||
95
src/main/java/me/trouper/ultrautils/UltraUtils.java
Normal file
95
src/main/java/me/trouper/ultrautils/UltraUtils.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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"))
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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."));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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."));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
4
src/main/java/me/trouper/ultrautils/data/Items.java
Normal file
4
src/main/java/me/trouper/ultrautils/data/Items.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package me.trouper.ultrautils.data;
|
||||
|
||||
public class Items {
|
||||
}
|
||||
4
src/main/java/me/trouper/ultrautils/data/Storage.java
Normal file
4
src/main/java/me/trouper/ultrautils/data/Storage.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package me.trouper.ultrautils.data;
|
||||
|
||||
public class Storage {
|
||||
}
|
||||
24
src/main/java/me/trouper/ultrautils/data/config/Config.java
Normal file
24
src/main/java/me/trouper/ultrautils/data/config/Config.java
Normal 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.";
|
||||
}
|
||||
}
|
||||
@@ -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)));
|
||||
}
|
||||
}
|
||||
118
src/main/resources/plugin.yml
Normal file
118
src/main/resources/plugin.yml
Normal 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
|
||||
Reference in New Issue
Block a user