Refactor
This commit is contained in:
parent
5cc798c482
commit
fe83919200
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.events;
|
||||
package com.alttd.essentia.api.events;
|
||||
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package com.alttd.essentia.api.events;
|
||||
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class EssentiaUserLoadEvent extends EssentiaEvent {
|
||||
|
||||
private static final HandlerList handlerList = new HandlerList();
|
||||
|
||||
private final User user;
|
||||
|
||||
public EssentiaUserLoadEvent(User user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlerList;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlerList;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.events;
|
||||
package com.alttd.essentia.api.events;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.events;
|
||||
package com.alttd.essentia.api.events;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.events;
|
||||
package com.alttd.essentia.api.events;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.events;
|
||||
package com.alttd.essentia.api.events;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.events;
|
||||
package com.alttd.essentia.api.events;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
10
api/src/main/java/com/alttd/essentia/api/model/Home.java
Normal file
10
api/src/main/java/com/alttd/essentia/api/model/Home.java
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
package com.alttd.essentia.api.model;
|
||||
|
||||
import org.bukkit.Location;
|
||||
|
||||
public interface Home {
|
||||
|
||||
String name();
|
||||
|
||||
Location location();
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.alttd.essentia.api.model;
|
||||
|
||||
public interface UserSettings {
|
||||
|
||||
boolean godMode();
|
||||
|
||||
void godMode(boolean godMode);
|
||||
|
||||
boolean allowTeleports();
|
||||
|
||||
void allowTeleports(boolean allowTeleports);
|
||||
|
||||
boolean flying();
|
||||
|
||||
void flying(boolean flying);
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.request;
|
||||
package com.alttd.essentia.api.request;
|
||||
|
||||
public interface Request {
|
||||
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
package com.alttd.essentia.user;
|
||||
package com.alttd.essentia.api.user;
|
||||
|
||||
import com.alttd.essentia.request.Request;
|
||||
import com.alttd.essentia.api.model.Home;
|
||||
import com.alttd.essentia.api.model.UserSettings;
|
||||
import com.alttd.essentia.api.request.Request;
|
||||
import org.bukkit.Location;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -19,7 +20,7 @@ public interface User {
|
|||
|
||||
boolean hasHome(String name);
|
||||
|
||||
Location getHome(String name);
|
||||
Home getHome(String name);
|
||||
|
||||
void setHome(String name, Location location);
|
||||
|
||||
|
|
@ -29,13 +30,11 @@ public interface User {
|
|||
|
||||
List<String> getMatchingHomeNames(String homeName);
|
||||
|
||||
Map<String, Location> getHomeData();
|
||||
Map<String, Home> getHomeData();
|
||||
|
||||
Set<String> getHomes();
|
||||
|
||||
boolean allowTeleports();
|
||||
|
||||
void allowTeleports(boolean allowTeleports);
|
||||
UserSettings getUserSettings();
|
||||
|
||||
Request request();
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.alttd.essentia.user;
|
||||
package com.alttd.essentia.api.user;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
@ -8,7 +8,7 @@ import com.alttd.essentia.storage.StorageManager;
|
|||
import com.alttd.essentia.storage.StorageProvider;
|
||||
import com.alttd.essentia.storage.StorageType;
|
||||
import com.alttd.essentia.user.EssentiaUserManager;
|
||||
import com.alttd.essentia.user.UserManager;
|
||||
import com.alttd.essentia.api.user.UserManager;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.alttd.essentia.commands;
|
|||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import java.util.stream.Collectors;
|
|||
public abstract class SubCommand implements TabExecutor {
|
||||
|
||||
protected EssentiaPlugin plugin;
|
||||
private final String name;
|
||||
protected final String name;
|
||||
private final String[] aliases;
|
||||
private final Map<String, SubCommand> subCommands = new LinkedHashMap<>();
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package com.alttd.essentia.commands.admin;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.AdminSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class BurnCommand extends AdminSubCommand {
|
||||
|
||||
public BurnCommand(EssentiaPlugin plugin) {
|
||||
super(plugin, "burn");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean execute(CommandSender sender, String... args) {
|
||||
Player target = args.length > 0 ? org.bukkit.Bukkit.getPlayer(args[0]) : sender instanceof Player player ? player : null;
|
||||
if (target == null) {
|
||||
sender.sendRichMessage(Config.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
if (!sender.hasPermission("essentia.command." + name + (target != sender ? ".other" : "")) ) {
|
||||
sender.sendRichMessage(Config.COMMAND_NO_PERMISSION);
|
||||
return true;
|
||||
}
|
||||
|
||||
TagResolver placeholders = TagResolver.resolver(
|
||||
Placeholder.component("requester", sender.name()),
|
||||
Placeholder.component("target", target.displayName())
|
||||
);
|
||||
target.setFireTicks((int) (3000L / 50));
|
||||
sender.sendRichMessage(target == sender ? Config.BURN_SELF : Config.BURN_OTHER, placeholders);
|
||||
if (target != sender)
|
||||
target.sendRichMessage(Config.BURN_BY_OTHER, placeholders);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.alttd.essentia.commands.admin;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.AdminSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class InfoCommand extends AdminSubCommand {
|
||||
|
||||
public InfoCommand(EssentiaPlugin plugin) {
|
||||
super(plugin, "info");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean execute(CommandSender sender, String... args) {
|
||||
Player target = args.length > 0 ? org.bukkit.Bukkit.getPlayer(args[0]) : sender instanceof Player player ? player : null;
|
||||
if (target == null) {
|
||||
sender.sendRichMessage(Config.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
if (!sender.hasPermission("essentia.command." + name + (target != sender ? ".other" : "")) ) {
|
||||
sender.sendRichMessage(Config.COMMAND_NO_PERMISSION);
|
||||
return true;
|
||||
}
|
||||
|
||||
TagResolver placeholders = TagResolver.resolver(
|
||||
Placeholder.component("requester", sender.name()),
|
||||
Placeholder.component("target", target.displayName())
|
||||
);
|
||||
// Todo Show player info
|
||||
// target.setHealth(20);
|
||||
// sender.sendRichMessage(target == sender ? Config.HEAL_SELF : Config.HEAL_OTHER, placeholders);
|
||||
// if (target != sender)
|
||||
// target.sendRichMessage(Config.HEAL_BY_OTHER, placeholders);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.alttd.essentia.commands.admin;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.AdminSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class smiteCommand extends AdminSubCommand {
|
||||
|
||||
public smiteCommand(EssentiaPlugin plugin) {
|
||||
super(plugin, "smite");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean execute(CommandSender sender, String... args) {
|
||||
Player target = args.length > 0 ? org.bukkit.Bukkit.getPlayer(args[0]) : sender instanceof Player player ? player : null;
|
||||
if (target == null) {
|
||||
sender.sendRichMessage(Config.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
if (!sender.hasPermission("essentia.command." + name + (target != sender ? ".other" : "")) ) {
|
||||
sender.sendRichMessage(Config.COMMAND_NO_PERMISSION);
|
||||
return true;
|
||||
}
|
||||
|
||||
TagResolver placeholders = TagResolver.resolver(
|
||||
Placeholder.component("requester", sender.name()),
|
||||
Placeholder.component("target", target.displayName())
|
||||
);
|
||||
// Todo smite the user xD
|
||||
// target.setHealth(20);
|
||||
// sender.sendRichMessage(target == sender ? Config.HEAL_SELF : Config.HEAL_OTHER, placeholders);
|
||||
// if (target != sender)
|
||||
// target.sendRichMessage(Config.HEAL_BY_OTHER, placeholders);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,10 +3,10 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.events.EssentiaEvent;
|
||||
import com.alttd.essentia.events.PlayerTeleportBackEvent;
|
||||
import com.alttd.essentia.api.events.EssentiaEvent;
|
||||
import com.alttd.essentia.api.events.PlayerTeleportBackEvent;
|
||||
import com.alttd.essentia.tasks.TeleportSounds;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.events.EssentiaEvent;
|
||||
import com.alttd.essentia.events.PlayerTeleportBackEvent;
|
||||
import com.alttd.essentia.api.events.EssentiaEvent;
|
||||
import com.alttd.essentia.api.events.PlayerTeleportBackEvent;
|
||||
import com.alttd.essentia.tasks.TeleportSounds;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.events.EssentiaEvent;
|
||||
import com.alttd.essentia.events.PlayerRemoveHomeEvent;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.events.EssentiaEvent;
|
||||
import com.alttd.essentia.api.events.PlayerRemoveHomeEvent;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
package com.alttd.essentia.commands.player;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.api.model.Home;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.events.EssentiaEvent;
|
||||
import com.alttd.essentia.events.PlayerTeleportHomeEvent;
|
||||
import com.alttd.essentia.api.events.EssentiaEvent;
|
||||
import com.alttd.essentia.api.events.PlayerTeleportHomeEvent;
|
||||
import com.alttd.essentia.tasks.TeleportSounds;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.Command;
|
||||
|
|
@ -24,7 +25,7 @@ public class HomeCommand extends PlayerSubCommand {
|
|||
|
||||
@Override
|
||||
protected boolean execute(Player player, User user, String... args) {
|
||||
String home = null;
|
||||
String home;
|
||||
if (args.length == 0) {
|
||||
int count = user.getHomeCount();
|
||||
if (count <= 1) {
|
||||
|
|
@ -47,8 +48,12 @@ public class HomeCommand extends PlayerSubCommand {
|
|||
// return true
|
||||
// }
|
||||
// }
|
||||
|
||||
Location homeLoc = user.getHome(home);
|
||||
Home essentiaHome = user.getHome(home);
|
||||
if (essentiaHome == null) {
|
||||
player.sendRichMessage(Config.HOME_DOES_NOT_EXIST, Placeholder.parsed("home", home));
|
||||
return true;
|
||||
}
|
||||
Location homeLoc = essentiaHome.location();
|
||||
if (homeLoc == null) {
|
||||
player.sendRichMessage(Config.HOME_DOES_NOT_EXIST, Placeholder.parsed("home", home));
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.events.EssentiaEvent;
|
||||
import com.alttd.essentia.events.PlayerSetHomeEvent;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.events.EssentiaEvent;
|
||||
import com.alttd.essentia.api.events.PlayerSetHomeEvent;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.events.EssentiaEvent;
|
||||
import com.alttd.essentia.events.PlayerTeleportSpawnEvent;
|
||||
import com.alttd.essentia.api.events.EssentiaEvent;
|
||||
import com.alttd.essentia.api.events.PlayerTeleportSpawnEvent;
|
||||
import com.alttd.essentia.tasks.TeleportSounds;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
|
|||
|
|
@ -3,9 +3,8 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.request.EssentiaRequest;
|
||||
import com.alttd.essentia.request.Request;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.request.Request;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class TeleportAcceptCommand extends PlayerSubCommand {
|
||||
|
|
|
|||
|
|
@ -3,9 +3,8 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.request.EssentiaRequest;
|
||||
import com.alttd.essentia.request.Request;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.request.Request;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class TeleportDenyCommand extends PlayerSubCommand {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.alttd.essentia.EssentiaPlugin;
|
|||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.request.TeleportEssentiaRequest;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -50,7 +50,7 @@ public class TeleportRequestCommand extends PlayerSubCommand {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (!targetUser.allowTeleports()) {
|
||||
if (!targetUser.getUserSettings().allowTeleports()) {
|
||||
player.sendRichMessage(Config.TELEPORT_TOGGLED_OFF, placeholders);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.alttd.essentia.EssentiaPlugin;
|
|||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.request.TeleportHereEssentiaRequest;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -50,7 +50,7 @@ public class TeleportRequestHereCommand extends PlayerSubCommand {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (!targetUser.allowTeleports()) {
|
||||
if (!targetUser.getUserSettings().allowTeleports()) {
|
||||
player.sendRichMessage(Config.TELEPORT_TOGGLED_OFF, placeholders);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.alttd.essentia.commands.player;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.commands.PlayerSubCommand;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
|
|
@ -17,9 +17,9 @@ public class TeleportToggleCommand extends PlayerSubCommand {
|
|||
|
||||
@Override
|
||||
protected boolean execute(Player player, User user, String... args) {
|
||||
user.allowTeleports(!user.allowTeleports());
|
||||
user.getUserSettings().allowTeleports(!user.getUserSettings().allowTeleports());
|
||||
TagResolver placeholders = TagResolver.resolver(
|
||||
Placeholder.parsed("toggle", BooleanUtils.toStringOnOff(user.allowTeleports()))
|
||||
Placeholder.parsed("toggle", BooleanUtils.toStringOnOff(user.getUserSettings().allowTeleports()))
|
||||
);
|
||||
player.sendRichMessage(Config.TELEPORT_TOGGLE_SET, placeholders);
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -187,6 +187,10 @@ public class Config {
|
|||
public static String FEED_SELF = "You just fed yourself.";
|
||||
public static String FEED_OTHER = "You have fed <target>.";
|
||||
public static String FEED_BY_OTHER = "<requester> has fed you.";
|
||||
|
||||
public static String BURN_SELF = "You have set yourself on fire.";
|
||||
public static String BURN_OTHER = "<target>'s has been set in fire.";
|
||||
public static String BURN_BY_OTHER = "<requester> has set you on fire.";
|
||||
private static void messages() {
|
||||
REQUEST_TIMED_OUT = getString("messages.request.time-out", REQUEST_TIMED_OUT);
|
||||
TELEPORT_ACCEPT_TARGET = getString("messages.request.teleport-accept-target", TELEPORT_ACCEPT_TARGET);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.alttd.essentia.listeners;
|
|||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.user.EssentiaUser;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.user.UserManager;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import com.alttd.essentia.api.user.UserManager;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
package com.alttd.essentia.model;
|
||||
|
||||
import org.bukkit.Location;
|
||||
|
||||
public record EssentiaHome(String name, Location location) implements com.alttd.essentia.api.model.Home {}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
package com.alttd.essentia.model;
|
||||
|
||||
import com.alttd.essentia.api.model.UserSettings;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class EssentiaUserSettings implements UserSettings {
|
||||
|
||||
boolean godMode;
|
||||
boolean flying;
|
||||
double flySpeed;
|
||||
double walkSpeed;
|
||||
boolean pTime;
|
||||
boolean pWeather;
|
||||
boolean allowTeleports;
|
||||
|
||||
private boolean needsSaving;
|
||||
|
||||
@Override
|
||||
public void godMode(boolean godMode) {
|
||||
this.godMode = godMode;
|
||||
this.needsSaving = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void allowTeleports(boolean allowTeleports) {
|
||||
this.allowTeleports = allowTeleports;
|
||||
this.needsSaving = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void flying(boolean flying) {
|
||||
this.flying = flying;
|
||||
this.needsSaving = true;
|
||||
}
|
||||
}
|
||||
3
plugin/src/main/java/com/alttd/essentia/model/Kit.java
Normal file
3
plugin/src/main/java/com/alttd/essentia/model/Kit.java
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
package com.alttd.essentia.model;
|
||||
|
||||
public record Kit() {}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
package com.alttd.essentia.model;
|
||||
|
||||
public record PlayerInventory() {
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.alttd.essentia.request;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.api.request.Request;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.tasks.RequestTimeout;
|
||||
import com.alttd.essentia.tasks.TeleportSounds;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class StorageManager {
|
|||
return switch (type) {
|
||||
case MYSQL -> new SQLStorageProvider(plugin);
|
||||
case YAML -> new YamlStorageProvider(plugin, plugin.getDataFolder().getPath() + File.separator + "PlayerData");
|
||||
case SQLITE -> throw new UnsupportedOperationException(); // TODO
|
||||
case SQLITE -> throw new UnsupportedOperationException(); // FIXME
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.alttd.essentia.storage;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.api.events.EssentiaUserLoadEvent;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.user.EssentiaUser;
|
||||
import com.alttd.essentia.user.User;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
@ -12,6 +14,8 @@ import java.util.UUID;
|
|||
public abstract class StorageProvider {
|
||||
|
||||
protected final EssentiaPlugin plugin;
|
||||
|
||||
@Getter
|
||||
private AutoSaveTask autoSaveTask;
|
||||
|
||||
public StorageProvider(EssentiaPlugin plugin) {
|
||||
|
|
@ -27,7 +31,7 @@ public abstract class StorageProvider {
|
|||
|
||||
plugin.userManager().addUser(user);
|
||||
|
||||
// TODO -- UserLoadEvent?
|
||||
new EssentiaUserLoadEvent(user).callEvent();
|
||||
return user;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package com.alttd.essentia.storage.mysql;
|
|||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.api.model.Home;
|
||||
import com.alttd.essentia.model.EssentiaHome;
|
||||
import com.alttd.essentia.storage.StorageProvider;
|
||||
import com.alttd.essentia.user.EssentiaUser;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -34,14 +36,27 @@ public class SQLStorageProvider extends StorageProvider {
|
|||
private void createTables() {
|
||||
// TODO -- create table
|
||||
String userTable = "CREATE TABLE IF NOT EXISTS users(" +
|
||||
"uuid VARCHAR(36) NOT NULL, " +
|
||||
"UUID VARCHAR(36) NOT NULL, " +
|
||||
"DeathLocation mediumtext DEFAULT NULL, " +
|
||||
"BackLocation mediumtext DEFAULT NULL, " +
|
||||
"TeleportToggled tinyint(1) DEFAULT NULL, " +
|
||||
"HomesLocation mediumtext DEFAULT NULL, "+
|
||||
"PRIMARY KEY (uuid)" +
|
||||
")";
|
||||
String homeTable = "CREATE TABLE IF NOT EXISTS homes(" +
|
||||
"UUID VARCHAR(36) NOT NULL, " +
|
||||
"Name mediumtext DEFAULT NULL, " +
|
||||
"HomeLocation mediumtext DEFAULT NULL, "+
|
||||
")";
|
||||
String settingsTable = "CREATE TABLE IF NOT EXISTS homes(" +
|
||||
"UUID VARCHAR(36) NOT NULL, " +
|
||||
"TeleportToggled tinyint(1) DEFAULT NULL, " +
|
||||
"GodMode tinyint(1) DEFAULT NULL, " +
|
||||
"Flying tinyint(1) DEFAULT NULL, " +
|
||||
"PRIMARY KEY (uuid)" +
|
||||
")";
|
||||
addDatabaseQuery(new DatabaseQuery(userTable), false);
|
||||
addDatabaseQuery(new DatabaseQuery(homeTable), false);
|
||||
addDatabaseQuery(new DatabaseQuery(settingsTable), false);
|
||||
}
|
||||
|
||||
public DatabaseConnection getDatabaseConnection() {
|
||||
|
|
@ -108,22 +123,6 @@ public class SQLStorageProvider extends StorageProvider {
|
|||
}
|
||||
}
|
||||
|
||||
boolean hasTable(String table) {
|
||||
DatabaseConnection connection = getDatabaseConnection();
|
||||
boolean match = false;
|
||||
try (ResultSet rs = connection.get().getMetaData().getTables(null, null, table, null)) {
|
||||
while (rs.next()) {
|
||||
if (table.equalsIgnoreCase(rs.getString("TABLE_NAME"))) {
|
||||
match = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
return match;
|
||||
}
|
||||
return match;
|
||||
}
|
||||
|
||||
// TODO -- make this async
|
||||
@Override
|
||||
protected EssentiaUser load(UUID uuid) {
|
||||
|
|
@ -221,12 +220,12 @@ public class SQLStorageProvider extends StorageProvider {
|
|||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
private Map<String, Location> locationMapStringToLocationMap(String locationMapString) {
|
||||
Map<String, Location> locationMap = new HashMap<>();
|
||||
private Map<String, Home> locationMapStringToLocationMap(String locationMapString) {
|
||||
Map<String, Home> locationMap = new HashMap<>();
|
||||
String[] entries = locationMapString.split(";");
|
||||
for (String entry : entries) {
|
||||
String[] data = entry.split("%");
|
||||
locationMap.put(data[0], locationStringToLocation(data[1]));
|
||||
locationMap.put(data[0], new EssentiaHome(data[0], locationStringToLocation(data[1])));
|
||||
}
|
||||
return locationMap;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.alttd.essentia.storage.yaml;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.api.model.Home;
|
||||
import com.alttd.essentia.model.EssentiaHome;
|
||||
import com.alttd.essentia.storage.StorageProvider;
|
||||
import com.alttd.essentia.user.EssentiaUser;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -47,10 +49,10 @@ public class YamlStorageProvider extends StorageProvider {
|
|||
|
||||
setStoredLocation(config, "teleports.back", user.getBackLocation(false));
|
||||
setStoredLocation(config, "teleports.death", user.getBackLocation(true));
|
||||
for (Map.Entry<String, Location> entry : user.getHomeData().entrySet()) {
|
||||
setStoredLocation(config, "home." + entry.getKey(), entry.getValue());
|
||||
for (Map.Entry<String, Home> entry : user.getHomeData().entrySet()) {
|
||||
setStoredLocation(config, "home." + entry.getKey(), entry.getValue().location());
|
||||
}
|
||||
config.set("allow-teleports", user.allowTeleports());
|
||||
config.set("allow-teleports", user.getUserSettings().allowTeleports());
|
||||
|
||||
config.save(configFile);
|
||||
}
|
||||
|
|
@ -90,14 +92,14 @@ public class YamlStorageProvider extends StorageProvider {
|
|||
return new Location(world, x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
public Map<String, Location> getHomeData(YamlConfiguration config) {
|
||||
public Map<String, Home> getHomeData(YamlConfiguration config) {
|
||||
ConfigurationSection section = config.getConfigurationSection("home");
|
||||
if (section == null) {
|
||||
return null;
|
||||
}
|
||||
Map<String, Location> map = new HashMap<>();
|
||||
Map<String, Home> map = new HashMap<>();
|
||||
for (String key : section.getValues(false).keySet()) {
|
||||
map.put(key, getStoredLocation(config, "home." + key));
|
||||
map.put(key, new EssentiaHome(key, getStoredLocation(config, "home." + key)));
|
||||
}
|
||||
|
||||
return map;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
package com.alttd.essentia.user;
|
||||
|
||||
import com.alttd.essentia.request.Request;
|
||||
import com.alttd.essentia.api.model.Home;
|
||||
import com.alttd.essentia.api.model.UserSettings;
|
||||
import com.alttd.essentia.api.request.Request;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import com.alttd.essentia.model.EssentiaHome;
|
||||
import com.alttd.essentia.model.EssentiaUserSettings;
|
||||
import org.bukkit.Location;
|
||||
|
||||
import java.util.*;
|
||||
|
|
@ -12,8 +17,8 @@ public class EssentiaUser implements User {
|
|||
|
||||
protected Location backLocation;
|
||||
protected Location deathLocation;
|
||||
protected Map<String, Location> homes;
|
||||
protected boolean allowTeleports;
|
||||
protected Map<String, Home> homes;
|
||||
protected UserSettings userSettings;
|
||||
protected Request request;
|
||||
|
||||
private boolean saving;
|
||||
|
|
@ -24,7 +29,7 @@ public class EssentiaUser implements User {
|
|||
this.backLocation = builder.backLocation;
|
||||
this.deathLocation = builder.deathLocation;
|
||||
this.homes = builder.homes;
|
||||
this.allowTeleports = builder.allowTeleports;
|
||||
this.userSettings = builder.userSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -53,13 +58,13 @@ public class EssentiaUser implements User {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Location getHome(String name) {
|
||||
public Home getHome(String name) {
|
||||
return homes.get(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setHome(String name, Location location) {
|
||||
homes.put(name, location);
|
||||
homes.put(name, new EssentiaHome(name, location));
|
||||
needsSaving = true;
|
||||
}
|
||||
|
||||
|
|
@ -82,7 +87,7 @@ public class EssentiaUser implements User {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Location> getHomeData() {
|
||||
public Map<String, Home> getHomeData() {
|
||||
return homes;
|
||||
}
|
||||
|
||||
|
|
@ -92,14 +97,8 @@ public class EssentiaUser implements User {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean allowTeleports() {
|
||||
return allowTeleports;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void allowTeleports(boolean allowTeleports) {
|
||||
this.allowTeleports = allowTeleports;
|
||||
needsSaving = true;
|
||||
public UserSettings getUserSettings() {
|
||||
return userSettings;
|
||||
}
|
||||
|
||||
public boolean saving() {
|
||||
|
|
@ -133,8 +132,8 @@ public class EssentiaUser implements User {
|
|||
protected UUID uuid;
|
||||
protected Location backLocation = null;
|
||||
protected Location deathLocation = null;
|
||||
protected Map<String, Location> homes = new HashMap<>();
|
||||
protected boolean allowTeleports;
|
||||
protected Map<String, Home> homes = new HashMap<>();
|
||||
protected EssentiaUserSettings userSettings = new EssentiaUserSettings();
|
||||
|
||||
public Builder uuid(UUID uuid) {
|
||||
this.uuid = uuid;
|
||||
|
|
@ -151,13 +150,13 @@ public class EssentiaUser implements User {
|
|||
return this;
|
||||
}
|
||||
|
||||
public Builder homes(Map<String, Location> homes) {
|
||||
public Builder homes(Map<String, Home> homes) {
|
||||
this.homes = homes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder allowTeleports(boolean allowTeleports) {
|
||||
this.allowTeleports = allowTeleports;
|
||||
this.userSettings.allowTeleports(allowTeleports);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
package com.alttd.essentia.user;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.api.user.User;
|
||||
import com.alttd.essentia.api.user.UserManager;
|
||||
import com.alttd.essentia.model.EssentiaUserSettings;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -60,9 +63,9 @@ public class EssentiaUserManager implements UserManager {
|
|||
@Override
|
||||
public void saveAllUsers() {
|
||||
for (User user : getUsers().values()) {
|
||||
if (user instanceof EssentiaUser essentiaUser) {
|
||||
if (user instanceof EssentiaUser essentiaUser && essentiaUser.getUserSettings() instanceof EssentiaUserSettings essentiaUserSettings) {
|
||||
try {
|
||||
if (essentiaUser.saving() || !essentiaUser.needsSaving()) {
|
||||
if (essentiaUser.saving() || !essentiaUser.needsSaving() || !essentiaUserSettings.needsSaving()) {
|
||||
continue;
|
||||
}
|
||||
plugin.storageProvider().startSaving(essentiaUser);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user