mirror of
https://github.com/plexusorg/Plex.git
synced 2024-12-23 01:27:37 +00:00
refactor packages and rename + add sql permission system + mongodb
This commit is contained in:
parent
583f502cee
commit
336f17b1cf
@ -47,7 +47,9 @@ dependencies {
|
|||||||
library "org.eclipse.jetty:jetty-proxy:11.0.9"
|
library "org.eclipse.jetty:jetty-proxy:11.0.9"
|
||||||
library "com.google.code.gson:gson:2.9.0"
|
library "com.google.code.gson:gson:2.9.0"
|
||||||
compileOnly "io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT"
|
compileOnly "io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT"
|
||||||
compileOnly "com.github.MilkBowl:VaultAPI:1.7"
|
compileOnly ("com.github.MilkBowl:VaultAPI:1.7") {
|
||||||
|
exclude group: "org.bukkit", module: "bukkit"
|
||||||
|
}
|
||||||
implementation "org.bstats:bstats-base:3.0.0"
|
implementation "org.bstats:bstats-base:3.0.0"
|
||||||
implementation "org.bstats:bstats-bukkit:3.0.0"
|
implementation "org.bstats:bstats-bukkit:3.0.0"
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,12 @@ package dev.plex;
|
|||||||
import dev.plex.admin.Admin;
|
import dev.plex.admin.Admin;
|
||||||
import dev.plex.admin.AdminList;
|
import dev.plex.admin.AdminList;
|
||||||
import dev.plex.cache.DataUtils;
|
import dev.plex.cache.DataUtils;
|
||||||
import dev.plex.cache.player.MongoPlayerData;
|
import dev.plex.storage.permission.SQLPermissions;
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.storage.player.MongoPlayerData;
|
||||||
import dev.plex.cache.player.SQLPlayerData;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.cache.sql.SQLNotes;
|
import dev.plex.storage.player.SQLPlayerData;
|
||||||
import dev.plex.cache.sql.SQLPunishment;
|
import dev.plex.storage.punishment.SQLNotes;
|
||||||
|
import dev.plex.storage.punishment.SQLPunishment;
|
||||||
import dev.plex.config.Config;
|
import dev.plex.config.Config;
|
||||||
import dev.plex.handlers.CommandHandler;
|
import dev.plex.handlers.CommandHandler;
|
||||||
import dev.plex.handlers.ListenerHandler;
|
import dev.plex.handlers.ListenerHandler;
|
||||||
@ -60,6 +61,7 @@ public class Plex extends JavaPlugin
|
|||||||
|
|
||||||
private SQLPunishment sqlPunishment;
|
private SQLPunishment sqlPunishment;
|
||||||
private SQLNotes sqlNotes;
|
private SQLNotes sqlNotes;
|
||||||
|
private SQLPermissions sqlPermissions;
|
||||||
|
|
||||||
private ModuleManager moduleManager;
|
private ModuleManager moduleManager;
|
||||||
private RankManager rankManager;
|
private RankManager rankManager;
|
||||||
@ -155,6 +157,7 @@ public class Plex extends JavaPlugin
|
|||||||
sqlPlayerData = new SQLPlayerData();
|
sqlPlayerData = new SQLPlayerData();
|
||||||
sqlPunishment = new SQLPunishment();
|
sqlPunishment = new SQLPunishment();
|
||||||
sqlNotes = new SQLNotes();
|
sqlNotes = new SQLNotes();
|
||||||
|
sqlPermissions = new SQLPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
new ListenerHandler();
|
new ListenerHandler();
|
||||||
|
1
src/main/java/dev/plex/cache/DataUtils.java
vendored
1
src/main/java/dev/plex/cache/DataUtils.java
vendored
@ -1,7 +1,6 @@
|
|||||||
package dev.plex.cache;
|
package dev.plex.cache;
|
||||||
|
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
import dev.plex.cache.player.PlayerCache;
|
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.storage.StorageType;
|
import dev.plex.storage.StorageType;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package dev.plex.cache.player;
|
package dev.plex.cache;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
@ -1,40 +0,0 @@
|
|||||||
package dev.plex.cache.notes;
|
|
||||||
|
|
||||||
import dev.plex.Plex;
|
|
||||||
import dev.plex.player.PlexPlayer;
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class PlayerNotes
|
|
||||||
{
|
|
||||||
private final String SELECT = "SELECT * FROM `notes` WHERE uuid=?";
|
|
||||||
//private final String UPDATE = "UPDATE `notes` SET name=?, written_by=?, note=? WHERE uuid=?";
|
|
||||||
private final String INSERT = "INSERT INTO `notes` (`uuid`, `name`, `written_by`, `note`) VALUES (?, ?, ?, ?);";
|
|
||||||
|
|
||||||
public PlexPlayer getByUUID(UUID uuid)
|
|
||||||
{
|
|
||||||
try (Connection con = Plex.get().getSqlConnection().getCon())
|
|
||||||
{
|
|
||||||
PreparedStatement statement = con.prepareStatement(SELECT);
|
|
||||||
statement.setString(1, uuid.toString());
|
|
||||||
ResultSet set = statement.executeQuery();
|
|
||||||
PlexPlayer plexPlayer = new PlexPlayer(uuid);
|
|
||||||
while (set.next())
|
|
||||||
{
|
|
||||||
String name = set.getString("name");
|
|
||||||
String writtenBy = set.getString("written_by");
|
|
||||||
String note = set.getString("note");
|
|
||||||
|
|
||||||
}
|
|
||||||
return plexPlayer;
|
|
||||||
}
|
|
||||||
catch (SQLException throwables)
|
|
||||||
{
|
|
||||||
throwables.printStackTrace();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,7 +2,7 @@ package dev.plex.command;
|
|||||||
|
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
import dev.plex.cache.DataUtils;
|
import dev.plex.cache.DataUtils;
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.command.annotation.CommandParameters;
|
import dev.plex.command.annotation.CommandParameters;
|
||||||
import dev.plex.command.annotation.CommandPermissions;
|
import dev.plex.command.annotation.CommandPermissions;
|
||||||
import dev.plex.command.exception.*;
|
import dev.plex.command.exception.*;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package dev.plex.command.impl;
|
package dev.plex.command.impl;
|
||||||
|
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.command.PlexCommand;
|
import dev.plex.command.PlexCommand;
|
||||||
import dev.plex.command.annotation.CommandParameters;
|
import dev.plex.command.annotation.CommandParameters;
|
||||||
import dev.plex.command.annotation.CommandPermissions;
|
import dev.plex.command.annotation.CommandPermissions;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package dev.plex.listener.impl;
|
package dev.plex.listener.impl;
|
||||||
|
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.listener.PlexListener;
|
import dev.plex.listener.PlexListener;
|
||||||
import dev.plex.listener.annotation.Toggleable;
|
import dev.plex.listener.annotation.Toggleable;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
@ -10,9 +10,6 @@ import net.kyori.adventure.audience.Audience;
|
|||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
|
||||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -1,16 +1,13 @@
|
|||||||
package dev.plex.listener.impl;
|
package dev.plex.listener.impl;
|
||||||
|
|
||||||
import dev.plex.cache.DataUtils;
|
import dev.plex.cache.DataUtils;
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.command.blocking.BlockedCommand;
|
import dev.plex.command.blocking.BlockedCommand;
|
||||||
import dev.plex.listener.PlexListener;
|
import dev.plex.listener.PlexListener;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.rank.enums.Rank;
|
import dev.plex.rank.enums.Rank;
|
||||||
import dev.plex.services.impl.CommandBlockerService;
|
import dev.plex.services.impl.CommandBlockerService;
|
||||||
import dev.plex.util.PlexLog;
|
import dev.plex.util.PlexLog;
|
||||||
import dev.plex.util.PlexUtils;
|
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package dev.plex.listener.impl;
|
package dev.plex.listener.impl;
|
||||||
|
|
||||||
import dev.plex.cache.DataUtils;
|
import dev.plex.cache.DataUtils;
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.listener.PlexListener;
|
import dev.plex.listener.PlexListener;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.storage.StorageType;
|
import dev.plex.storage.StorageType;
|
||||||
import dev.plex.util.PlexLog;
|
import dev.plex.util.PlexLog;
|
||||||
import dev.plex.util.PlexUtils;
|
import dev.plex.util.PlexUtils;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -20,7 +19,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PlayerListener extends PlexListener
|
public class PlayerListener<T> extends PlexListener
|
||||||
{
|
{
|
||||||
// setting up a player's data
|
// setting up a player's data
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
@ -73,19 +72,17 @@ public class PlayerListener extends PlexListener
|
|||||||
player.openInventory(player.getInventory());
|
player.openInventory(player.getInventory());
|
||||||
}
|
}
|
||||||
|
|
||||||
assert plexPlayer != null;
|
|
||||||
String loginMessage = plugin.getRankManager().getLoginMessage(plexPlayer);
|
String loginMessage = plugin.getRankManager().getLoginMessage(plexPlayer);
|
||||||
if (!loginMessage.isEmpty())
|
if (!loginMessage.isEmpty())
|
||||||
{
|
{
|
||||||
PlexUtils.broadcast(PlexUtils.mmDeserialize("<aqua>" + player.getName() + " is " + loginMessage));
|
PlexUtils.broadcast(PlexUtils.mmDeserialize("<aqua>" + player.getName() + " is " + loginMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlexUtils.setupPermissions(player);
|
||||||
|
|
||||||
if (plugin.getStorageType() != StorageType.MONGODB)
|
if (plugin.getStorageType() != StorageType.MONGODB)
|
||||||
{
|
{
|
||||||
plexPlayer.loadNotes().whenComplete((notes, throwable) ->
|
plexPlayer.loadNotes();
|
||||||
{
|
|
||||||
//TODO: Send note messages to admins
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ package dev.plex.listener.impl;
|
|||||||
|
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
import dev.plex.cache.DataUtils;
|
import dev.plex.cache.DataUtils;
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.listener.PlexListener;
|
import dev.plex.listener.PlexListener;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.rank.enums.Rank;
|
import dev.plex.rank.enums.Rank;
|
||||||
|
@ -2,7 +2,7 @@ package dev.plex.menu;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import dev.plex.cache.DataUtils;
|
import dev.plex.cache.DataUtils;
|
||||||
import dev.plex.cache.player.PlayerCache;
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.punishment.Punishment;
|
import dev.plex.punishment.Punishment;
|
||||||
import dev.plex.util.PlexUtils;
|
import dev.plex.util.PlexUtils;
|
||||||
|
15
src/main/java/dev/plex/permission/Permission.java
Normal file
15
src/main/java/dev/plex/permission/Permission.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package dev.plex.permission;
|
||||||
|
|
||||||
|
import dev.morphia.annotations.Entity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
public class Permission
|
||||||
|
{
|
||||||
|
private final UUID uuid;
|
||||||
|
private final String permission;
|
||||||
|
private boolean allowed = true;
|
||||||
|
}
|
@ -7,6 +7,7 @@ import dev.morphia.annotations.Id;
|
|||||||
import dev.morphia.annotations.IndexOptions;
|
import dev.morphia.annotations.IndexOptions;
|
||||||
import dev.morphia.annotations.Indexed;
|
import dev.morphia.annotations.Indexed;
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
|
import dev.plex.permission.Permission;
|
||||||
import dev.plex.punishment.Punishment;
|
import dev.plex.punishment.Punishment;
|
||||||
import dev.plex.punishment.extra.Note;
|
import dev.plex.punishment.extra.Note;
|
||||||
import dev.plex.rank.enums.Rank;
|
import dev.plex.rank.enums.Rank;
|
||||||
@ -26,6 +27,7 @@ import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.permissions.PermissionAttachment;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@ -64,6 +66,9 @@ public class PlexPlayer
|
|||||||
private List<String> ips = Lists.newArrayList();
|
private List<String> ips = Lists.newArrayList();
|
||||||
private List<Punishment> punishments = Lists.newArrayList();
|
private List<Punishment> punishments = Lists.newArrayList();
|
||||||
private List<Note> notes = Lists.newArrayList();
|
private List<Note> notes = Lists.newArrayList();
|
||||||
|
private List<Permission> permissions = Lists.newArrayList();
|
||||||
|
|
||||||
|
private transient PermissionAttachment permissionAttachment;
|
||||||
|
|
||||||
public PlexPlayer()
|
public PlexPlayer()
|
||||||
{
|
{
|
||||||
@ -88,6 +93,10 @@ public class PlexPlayer
|
|||||||
|
|
||||||
this.rank = "";
|
this.rank = "";
|
||||||
this.loadPunishments();
|
this.loadPunishments();
|
||||||
|
if (Plex.get().getStorageType() != StorageType.MONGODB)
|
||||||
|
{
|
||||||
|
this.permissions.addAll(Plex.get().getSqlPermissions().getPermissions(this.uuid));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String displayName()
|
public String displayName()
|
||||||
|
@ -92,6 +92,11 @@ public class SQLConnection extends PlexBase
|
|||||||
"`note` VARCHAR(2000), " +
|
"`note` VARCHAR(2000), " +
|
||||||
"`timestamp` BIGINT" +
|
"`timestamp` BIGINT" +
|
||||||
");").execute();
|
");").execute();
|
||||||
|
con.prepareStatement("CREATE TABLE IF NOT EXISTS `permissions` (" +
|
||||||
|
"`uuid` VARCHAR(46) NOT NULL," +
|
||||||
|
"`permission` VARCHAR(1000) NOT NULL," +
|
||||||
|
"`allowed` BOOLEAN" +
|
||||||
|
");");
|
||||||
}
|
}
|
||||||
catch (SQLException throwables)
|
catch (SQLException throwables)
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,92 @@
|
|||||||
|
package dev.plex.storage.permission;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import dev.plex.Plex;
|
||||||
|
import dev.plex.permission.Permission;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class SQLPermissions
|
||||||
|
{
|
||||||
|
private static final String SELECT = "SELECT * FROM `permissions` WHERE uuid=?";
|
||||||
|
private static final String INSERT = "INSERT INTO `permissions` (`uuid`, `permission`, `allowed`) VALUES(?, ?, ?)";
|
||||||
|
private static final String REMOVE_PERMISSION = "DELETE FROM `permissions` WHERE uuid=? AND permission=?";
|
||||||
|
private static final String UPDATE_PERMISSION = "UPDATE `permissions` SET allowed=? WHERE uuid=? AND permission=?";
|
||||||
|
|
||||||
|
public List<Permission> getPermissions(UUID uuid)
|
||||||
|
{
|
||||||
|
List<Permission> permissions = Lists.newArrayList();
|
||||||
|
try (Connection con = Plex.get().getSqlConnection().getCon())
|
||||||
|
{
|
||||||
|
PreparedStatement statement = con.prepareStatement(SELECT);
|
||||||
|
statement.setString(1, uuid.toString());
|
||||||
|
ResultSet set = statement.executeQuery();
|
||||||
|
while (set.next())
|
||||||
|
{
|
||||||
|
Permission permission = new Permission(UUID.fromString(set.getString("uuid")), set.getString("permission"));
|
||||||
|
permission.setAllowed(set.getBoolean("allowed"));
|
||||||
|
permissions.add(permission);
|
||||||
|
}
|
||||||
|
} catch (SQLException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return permissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addPermission(Permission permission)
|
||||||
|
{
|
||||||
|
try (Connection con = Plex.get().getSqlConnection().getCon())
|
||||||
|
{
|
||||||
|
PreparedStatement statement = con.prepareStatement(INSERT);
|
||||||
|
statement.setString(1, permission.getUuid().toString());
|
||||||
|
statement.setString(2, permission.getPermission().toLowerCase(Locale.ROOT));
|
||||||
|
statement.setBoolean(3, permission.isAllowed());
|
||||||
|
statement.execute();
|
||||||
|
} catch (SQLException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updatePermission(Permission permission, boolean newValue)
|
||||||
|
{
|
||||||
|
try (Connection con = Plex.get().getSqlConnection().getCon())
|
||||||
|
{
|
||||||
|
PreparedStatement statement = con.prepareStatement(UPDATE_PERMISSION);
|
||||||
|
statement.setBoolean(1, newValue);
|
||||||
|
statement.setString(2, permission.getUuid().toString());
|
||||||
|
statement.setString(3, permission.getPermission().toLowerCase(Locale.ROOT));
|
||||||
|
statement.executeUpdate();
|
||||||
|
} catch (SQLException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removePermission(Permission permission)
|
||||||
|
{
|
||||||
|
this.removePermission(permission.getUuid(), permission.getPermission());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removePermission(UUID uuid, String permission)
|
||||||
|
{
|
||||||
|
try (Connection con = Plex.get().getSqlConnection().getCon())
|
||||||
|
{
|
||||||
|
PreparedStatement statement = con.prepareStatement(REMOVE_PERMISSION);
|
||||||
|
statement.setString(1, uuid.toString());
|
||||||
|
statement.setString(2, permission.toLowerCase(Locale.ROOT));
|
||||||
|
statement.execute();
|
||||||
|
} catch (SQLException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package dev.plex.cache.player;
|
package dev.plex.storage.player;
|
||||||
|
|
||||||
import dev.morphia.Datastore;
|
import dev.morphia.Datastore;
|
||||||
import dev.morphia.query.Query;
|
import dev.morphia.query.Query;
|
||||||
@ -6,6 +6,7 @@ import dev.morphia.query.Update;
|
|||||||
import dev.morphia.query.experimental.filters.Filters;
|
import dev.morphia.query.experimental.filters.Filters;
|
||||||
import dev.morphia.query.experimental.updates.UpdateOperators;
|
import dev.morphia.query.experimental.updates.UpdateOperators;
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
@ -1,8 +1,9 @@
|
|||||||
package dev.plex.cache.player;
|
package dev.plex.storage.player;
|
||||||
|
|
||||||
import com.google.common.reflect.TypeToken;
|
import com.google.common.reflect.TypeToken;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
|
import dev.plex.cache.PlayerCache;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
@ -1,4 +1,4 @@
|
|||||||
package dev.plex.cache.sql;
|
package dev.plex.storage.punishment;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
@ -1,4 +1,4 @@
|
|||||||
package dev.plex.cache.sql;
|
package dev.plex.storage.punishment;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
@ -4,7 +4,10 @@ import com.google.common.collect.ImmutableSet;
|
|||||||
import com.google.common.reflect.ClassPath;
|
import com.google.common.reflect.ClassPath;
|
||||||
import dev.plex.Plex;
|
import dev.plex.Plex;
|
||||||
import dev.plex.PlexBase;
|
import dev.plex.PlexBase;
|
||||||
|
import dev.plex.cache.DataUtils;
|
||||||
import dev.plex.config.Config;
|
import dev.plex.config.Config;
|
||||||
|
import dev.plex.permission.Permission;
|
||||||
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.storage.StorageType;
|
import dev.plex.storage.StorageType;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@ -17,7 +20,9 @@ import org.bukkit.*;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.PluginCommandYamlParser;
|
import org.bukkit.command.PluginCommandYamlParser;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.permissions.PermissionAttachment;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
import org.json.simple.parser.JSONParser;
|
import org.json.simple.parser.JSONParser;
|
||||||
import org.json.simple.parser.ParseException;
|
import org.json.simple.parser.ParseException;
|
||||||
@ -73,6 +78,63 @@ public class PlexUtils extends PlexBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setupPermissions(@NotNull Player player)
|
||||||
|
{
|
||||||
|
PlexPlayer plexPlayer = DataUtils.getPlayer(player.getUniqueId());
|
||||||
|
PermissionAttachment attachment = player.addAttachment(Plex.get());
|
||||||
|
plexPlayer.getPermissions().forEach(permission -> attachment.setPermission(permission.getPermission(), permission.isAllowed()));
|
||||||
|
plexPlayer.setPermissionAttachment(attachment);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addPermission(PlexPlayer player, Permission permission)
|
||||||
|
{
|
||||||
|
Plex.get().getSqlPermissions().addPermission(addToArrayList(player.getPermissions(), permission));
|
||||||
|
Player p = Bukkit.getPlayer(player.getUuid());
|
||||||
|
if (p == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
player.getPermissionAttachment().setPermission(permission.getPermission(), permission.isAllowed());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addPermission(PlexPlayer player, String permission)
|
||||||
|
{
|
||||||
|
addPermission(player, new Permission(player.getUuid(), permission));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void removePermission(PlexPlayer player, String permission)
|
||||||
|
{
|
||||||
|
Plex.get().getSqlPermissions().removePermission(player.getUuid(), permission);
|
||||||
|
player.getPermissions().removeIf(permission1 -> permission1.getPermission().equalsIgnoreCase(permission));
|
||||||
|
Player p = Bukkit.getPlayer(player.getUuid());
|
||||||
|
if (p == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
player.getPermissionAttachment().unsetPermission(permission);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void updatePermission(PlexPlayer player, String permission, boolean newValue)
|
||||||
|
{
|
||||||
|
player.getPermissions().stream().filter(permission1 -> permission.equalsIgnoreCase(permission)).findFirst().ifPresent(permission1 -> {
|
||||||
|
Plex.get().getSqlPermissions().updatePermission(permission1, newValue);
|
||||||
|
});
|
||||||
|
player.getPermissions().removeIf(permission1 -> permission1.getPermission().equalsIgnoreCase(permission));
|
||||||
|
Player p = Bukkit.getPlayer(player.getUuid());
|
||||||
|
if (p == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
player.getPermissionAttachment().unsetPermission(permission);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T addToArrayList(List<T> list, T object)
|
||||||
|
{
|
||||||
|
list.add(object);
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
|
||||||
public static void disabledEffect(Player player, Location location)
|
public static void disabledEffect(Player player, Location location)
|
||||||
{
|
{
|
||||||
Particle.CLOUD.builder().location(location).receivers(player).extra(0).offset(0.5, 0.5, 0.5).count(5).spawn();
|
Particle.CLOUD.builder().location(location).receivers(player).extra(0).offset(0.5, 0.5, 0.5).count(5).spawn();
|
||||||
|
Loading…
Reference in New Issue
Block a user