mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 04:26:42 +00:00
Compare commits
67 Commits
FS-24-Agai
...
FS-177
Author | SHA1 | Date | |
---|---|---|---|
b99520b491 | |||
62529a6171 | |||
0caf972248 | |||
4ac9844534 | |||
d99f3e657b | |||
92bbb62379 | |||
e4a0943af2 | |||
36bd8c0fad | |||
d77f59435b | |||
a08fd2afb6 | |||
6fd075fe96 | |||
f57fc56f4a | |||
a6ca6b122c | |||
064e73f58b | |||
32138b2e59 | |||
e1c3bad4d0 | |||
4e78027f0c | |||
721f4f9fc3 | |||
24ad2611a9 | |||
c238f251f2 | |||
02848e3439 | |||
9550f54e2b | |||
39dade78e3 | |||
5b6d8b01a4 | |||
96bc83cead | |||
be700a90ce | |||
6d1fce1716 | |||
d3665f31fe | |||
4188cb80fa | |||
62fe72d99b | |||
f4749559d2 | |||
ed815794ed | |||
0c12a19d1d | |||
96d47e8e0c | |||
3027e2a18c | |||
06025b2e69 | |||
da7e8f64aa | |||
a498104777 | |||
8c7bf365a0 | |||
eedb7a5375 | |||
d047cfc8ff | |||
9ff5da8d8f | |||
ac615f54f7 | |||
21af722e23 | |||
b1196fcf00 | |||
d170f6d323 | |||
9dd0298f56 | |||
bdf4ca84e0 | |||
7258d7f1bf | |||
8a504bff07 | |||
c00e64f736 | |||
9e73db0f24 | |||
951c061d77 | |||
579d3e0719 | |||
9777733d04 | |||
05e118dcb4 | |||
7a0d6f49f4 | |||
19f1b7f6bd | |||
b12afbdc1f | |||
49e77d4f93 | |||
eb9107bedf | |||
951c699ed0 | |||
6895e46375 | |||
1cf46c7337 | |||
407b63e48b | |||
be562fe722 | |||
928ab41d7f |
19
.github/dependabot.yml
vendored
Normal file
19
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# To get started with Dependabot version updates, you'll need to specify which
|
||||||
|
# package ecosystems to update and where the package manifests are located.
|
||||||
|
# Please see the documentation for all configuration options:
|
||||||
|
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||||
|
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
|
||||||
|
# Maintain Maven Updates
|
||||||
|
- package-ecosystem: "maven" # See documentation for possible values
|
||||||
|
directory: "/" # Location of package manifests
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
|
||||||
|
# Maintain dependencies for GitHub Actions
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
12
.github/workflows/maven.yml
vendored
12
.github/workflows/maven.yml
vendored
@ -8,10 +8,20 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
# Java 11 Builds
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- name: Set up JDK 1.8
|
- name: Set up JDK 11
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 11
|
java-version: 11
|
||||||
- name: Build with Maven
|
- name: Build with Maven
|
||||||
run: mvn -B package --file pom.xml
|
run: mvn -B package --file pom.xml
|
||||||
|
|
||||||
|
# Java 16 Builds
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Set up JDK 16
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 16
|
||||||
|
- name: Build with Maven
|
||||||
|
run: mvn -B package --file pom.xml
|
||||||
|
13
.travis.yml
13
.travis.yml
@ -1,13 +0,0 @@
|
|||||||
language: java
|
|
||||||
jdk:
|
|
||||||
- oraclejdk11
|
|
||||||
- openjdk11
|
|
||||||
notifications:
|
|
||||||
email: false
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- sshpass
|
|
||||||
script: mvn clean install
|
|
||||||
after_success:
|
|
||||||
- ./travis-upload.sh
|
|
35
pom.xml
35
pom.xml
@ -14,6 +14,8 @@
|
|||||||
<jar.finalName>${project.name}</jar.finalName>
|
<jar.finalName>${project.name}</jar.finalName>
|
||||||
<timestamp>${maven.build.timestamp}</timestamp>
|
<timestamp>${maven.build.timestamp}</timestamp>
|
||||||
<maven.build.timestamp.format>MM/dd/yyyy HH:mm</maven.build.timestamp.format>
|
<maven.build.timestamp.format>MM/dd/yyyy HH:mm</maven.build.timestamp.format>
|
||||||
|
|
||||||
|
<tfguilds.version>master-4ec00d977c-1</tfguilds.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<name>TotalFreedomMod</name>
|
<name>TotalFreedomMod</name>
|
||||||
@ -105,11 +107,6 @@
|
|||||||
<url>https://papermc.io/repo/repository/maven-public/</url>
|
<url>https://papermc.io/repo/repository/maven-public/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
<repository>
|
|
||||||
<id>rayzr-repo</id>
|
|
||||||
<url>https://cdn.rawgit.com/Rayzr522/maven-repo/master/</url>
|
|
||||||
</repository>
|
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
<id>ess-repo</id>
|
<id>ess-repo</id>
|
||||||
<url>https://ci.ender.zone/plugin/repository/everything/</url>
|
<url>https://ci.ender.zone/plugin/repository/everything/</url>
|
||||||
@ -168,9 +165,9 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.TotalFreedomMC</groupId>
|
<groupId>com.github.AtlasMediaGroup</groupId>
|
||||||
<artifactId>TF-LibsDisguises</artifactId>
|
<artifactId>TF-LibsDisguises</artifactId>
|
||||||
<version>48f01cf2fe</version>
|
<version>5a340341b0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@ -216,13 +213,6 @@
|
|||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>me.rayzr522</groupId>
|
|
||||||
<artifactId>jsonmessage</artifactId>
|
|
||||||
<version>1.0.0</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.vexsoftware</groupId>
|
<groupId>com.github.vexsoftware</groupId>
|
||||||
<artifactId>votifier</artifactId>
|
<artifactId>votifier</artifactId>
|
||||||
@ -254,7 +244,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.AtlasMediaGroup</groupId>
|
<groupId>com.github.AtlasMediaGroup</groupId>
|
||||||
<artifactId>TFGuilds</artifactId>
|
<artifactId>TFGuilds</artifactId>
|
||||||
<version>master-SNAPSHOT</version>
|
<version>${tfguilds.version}</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@ -282,6 +272,18 @@
|
|||||||
<artifactId>org.eclipse.sisu.inject</artifactId>
|
<artifactId>org.eclipse.sisu.inject</artifactId>
|
||||||
<version>0.3.4</version>
|
<version>0.3.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.httpcomponents.client5</groupId>
|
||||||
|
<artifactId>httpclient5</artifactId>
|
||||||
|
<version>5.0.1</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.json</groupId>
|
||||||
|
<artifactId>json</artifactId>
|
||||||
|
<version>20210307</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -454,11 +456,12 @@
|
|||||||
<include>commons-codec:commons-codec</include>
|
<include>commons-codec:commons-codec</include>
|
||||||
<include>org.reflections:reflections</include>
|
<include>org.reflections:reflections</include>
|
||||||
<include>org.javassist:javassist</include>
|
<include>org.javassist:javassist</include>
|
||||||
<include>me.rayzr522:jsonmessage</include>
|
|
||||||
<include>io.papermc:paperlib</include>
|
<include>io.papermc:paperlib</include>
|
||||||
<include>com.github.speedxx:Mojangson</include>
|
<include>com.github.speedxx:Mojangson</include>
|
||||||
<include>org.bstats:bstats-bukkit</include>
|
<include>org.bstats:bstats-bukkit</include>
|
||||||
<include>org.jetbrains:annotations</include>
|
<include>org.jetbrains:annotations</include>
|
||||||
|
<includes>org.apache.httpcomponents.client5:httpclient5</includes>
|
||||||
|
<includes>org.apache.httpcomponents.core5:httpcore5</includes>
|
||||||
</includes>
|
</includes>
|
||||||
</artifactSet>
|
</artifactSet>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
@ -85,6 +85,10 @@ public class AutoEject extends FreedomService
|
|||||||
player.kickPlayer(kickMessage);
|
player.kickPlayer(kickMessage);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
FLog.warning("Unrecognized EjectMethod " + method.name() + " found, defaulting to STRIKE_THREE");
|
||||||
|
}
|
||||||
case STRIKE_THREE:
|
case STRIKE_THREE:
|
||||||
{
|
{
|
||||||
plugin.bm.addBan(Ban.forPlayerFuzzy(player, Bukkit.getConsoleSender(), null, kickMessage));
|
plugin.bm.addBan(Ban.forPlayerFuzzy(player, Bukkit.getConsoleSender(), null, kickMessage));
|
||||||
|
@ -126,7 +126,7 @@ public class ChatManager extends FreedomService
|
|||||||
boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.al.isAdmin(player);
|
boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.al.isAdmin(player);
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player p : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone)
|
if ((ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone) && !event.isCancelled())
|
||||||
{
|
{
|
||||||
p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, SoundCategory.MASTER, 1337F, 0.9F);
|
p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, SoundCategory.MASTER, 1337F, 0.9F);
|
||||||
}
|
}
|
||||||
|
@ -25,11 +25,6 @@ public class CommandSpy extends FreedomService
|
|||||||
{
|
{
|
||||||
if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy())
|
if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy())
|
||||||
{
|
{
|
||||||
if (plugin.al.isAdmin(event.getPlayer()) && !plugin.al.isSeniorAdmin(player))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != event.getPlayer())
|
if (player != event.getPlayer())
|
||||||
{
|
{
|
||||||
FUtil.playerMsg(player, event.getPlayer().getName() + ": " + event.getMessage());
|
FUtil.playerMsg(player, event.getPlayer().getName() + ": " + event.getMessage());
|
||||||
|
@ -2,6 +2,8 @@ package me.totalfreedom.totalfreedommod;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
import me.totalfreedom.totalfreedommod.util.Groups;
|
import me.totalfreedom.totalfreedommod.util.Groups;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -33,7 +35,10 @@ public class EntityWiper extends FreedomService
|
|||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
wipeEntities(false);
|
if (ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
|
||||||
|
{
|
||||||
|
wipeEntities(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}.runTaskTimer(plugin, 600L, 600L); // 30 second delay after startup + run every 30 seconds
|
}.runTaskTimer(plugin, 600L, 600L); // 30 second delay after startup + run every 30 seconds
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import io.papermc.lib.PaperLib;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import me.rayzr522.jsonmessage.JSONMessage;
|
|
||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||||
|
@ -2,6 +2,8 @@ package me.totalfreedom.totalfreedommod;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||||
import me.totalfreedom.totalfreedommod.util.FLog;
|
import me.totalfreedom.totalfreedommod.util.FLog;
|
||||||
@ -18,7 +20,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
|
|||||||
public class Muter extends FreedomService
|
public class Muter extends FreedomService
|
||||||
{
|
{
|
||||||
|
|
||||||
public final List<String> MUTED_PLAYERS = new ArrayList<>();
|
public final List<UUID> MUTED_PLAYERS = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart()
|
public void onStart()
|
||||||
@ -45,7 +47,7 @@ public class Muter extends FreedomService
|
|||||||
if (plugin.al.isAdminSync(player))
|
if (plugin.al.isAdminSync(player))
|
||||||
{
|
{
|
||||||
fPlayer.setMuted(false);
|
fPlayer.setMuted(false);
|
||||||
MUTED_PLAYERS.remove(player.getName());
|
MUTED_PLAYERS.remove(player.getUniqueId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +107,7 @@ public class Muter extends FreedomService
|
|||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
FPlayer playerdata = plugin.pl.getPlayer(player);
|
FPlayer playerdata = plugin.pl.getPlayer(player);
|
||||||
|
|
||||||
if (MUTED_PLAYERS.contains(player.getName()))
|
if (MUTED_PLAYERS.contains(player.getUniqueId()))
|
||||||
{
|
{
|
||||||
playerdata.setMuted(true);
|
playerdata.setMuted(true);
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ public class SavedFlags extends FreedomService
|
|||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getSavedFlag(String flag) throws IllegalStateException
|
public boolean getSavedFlag(String flag) throws Exception
|
||||||
{
|
{
|
||||||
Boolean flagValue = null;
|
Boolean flagValue = null;
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ public class SavedFlags extends FreedomService
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalStateException("Attempt to get non-existent flag " + flag);
|
throw new Exception();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package me.totalfreedom.totalfreedommod.admin;
|
|||||||
|
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.FreedomService;
|
import me.totalfreedom.totalfreedommod.FreedomService;
|
||||||
import me.totalfreedom.totalfreedommod.config.YamlConfig;
|
import me.totalfreedom.totalfreedommod.config.YamlConfig;
|
||||||
import me.totalfreedom.totalfreedommod.util.FLog;
|
import me.totalfreedom.totalfreedommod.util.FLog;
|
||||||
@ -14,13 +16,14 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
|
//TODO: convert to uuids
|
||||||
public class ActivityLog extends FreedomService
|
public class ActivityLog extends FreedomService
|
||||||
{
|
{
|
||||||
|
|
||||||
public static final String FILENAME = "activitylog.yml";
|
public static final String FILENAME = "activitylog.yml";
|
||||||
|
|
||||||
private final Map<String, ActivityLogEntry> allActivityLogs = Maps.newHashMap();
|
private final Map<UUID, ActivityLogEntry> allActivityLogs = Maps.newHashMap();
|
||||||
private final Map<String, ActivityLogEntry> nameTable = Maps.newHashMap();
|
private final Map<UUID, ActivityLogEntry> activityLogs = Maps.newHashMap();
|
||||||
private final Map<String, ActivityLogEntry> ipTable = Maps.newHashMap();
|
private final Map<String, ActivityLogEntry> ipTable = Maps.newHashMap();
|
||||||
|
|
||||||
private final YamlConfig config;
|
private final YamlConfig config;
|
||||||
@ -52,7 +55,7 @@ public class ActivityLog extends FreedomService
|
|||||||
config.load();
|
config.load();
|
||||||
|
|
||||||
allActivityLogs.clear();
|
allActivityLogs.clear();
|
||||||
nameTable.clear();
|
activityLogs.clear();
|
||||||
ipTable.clear();
|
ipTable.clear();
|
||||||
for (String key : config.getKeys(false))
|
for (String key : config.getKeys(false))
|
||||||
{
|
{
|
||||||
@ -72,7 +75,7 @@ public class ActivityLog extends FreedomService
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
allActivityLogs.put(key, activityLogEntry);
|
allActivityLogs.put(UUID.fromString(key), activityLogEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateTables();
|
updateTables();
|
||||||
@ -102,12 +105,12 @@ public class ActivityLog extends FreedomService
|
|||||||
return getActivityLog((Player)sender);
|
return getActivityLog((Player)sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
return getEntryByName(sender.getName());
|
return getEntryByUUID(FUtil.getUUIDFromName(sender.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivityLogEntry getActivityLog(Player player)
|
public ActivityLogEntry getActivityLog(Player player)
|
||||||
{
|
{
|
||||||
ActivityLogEntry activityLog = getEntryByName(player.getName());
|
ActivityLogEntry activityLog = getEntryByUUID(player.getUniqueId());
|
||||||
if (activityLog == null)
|
if (activityLog == null)
|
||||||
{
|
{
|
||||||
String ip = FUtil.getIp(player);
|
String ip = FUtil.getIp(player);
|
||||||
@ -115,14 +118,13 @@ public class ActivityLog extends FreedomService
|
|||||||
if (activityLog != null)
|
if (activityLog != null)
|
||||||
{
|
{
|
||||||
// Set the new username
|
// Set the new username
|
||||||
activityLog.setName(player.getName());
|
|
||||||
save();
|
save();
|
||||||
updateTables();
|
updateTables();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
activityLog = new ActivityLogEntry(player);
|
activityLog = new ActivityLogEntry(player);
|
||||||
allActivityLogs.put(activityLog.getConfigKey(), activityLog);
|
allActivityLogs.put(activityLog.getUUID(), activityLog);
|
||||||
updateTables();
|
updateTables();
|
||||||
|
|
||||||
activityLog.saveTo(config.createSection(activityLog.getConfigKey()));
|
activityLog.saveTo(config.createSection(activityLog.getConfigKey()));
|
||||||
@ -139,9 +141,9 @@ public class ActivityLog extends FreedomService
|
|||||||
return activityLog;
|
return activityLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivityLogEntry getEntryByName(String name)
|
public ActivityLogEntry getEntryByUUID(UUID uuid)
|
||||||
{
|
{
|
||||||
return nameTable.get(name.toLowerCase());
|
return activityLogs.get(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivityLogEntry getEntryByIp(String ip)
|
public ActivityLogEntry getEntryByIp(String ip)
|
||||||
@ -151,12 +153,12 @@ public class ActivityLog extends FreedomService
|
|||||||
|
|
||||||
public void updateTables()
|
public void updateTables()
|
||||||
{
|
{
|
||||||
nameTable.clear();
|
activityLogs.clear();
|
||||||
ipTable.clear();
|
ipTable.clear();
|
||||||
|
|
||||||
for (ActivityLogEntry activityLog : allActivityLogs.values())
|
for (ActivityLogEntry activityLog : allActivityLogs.values())
|
||||||
{
|
{
|
||||||
nameTable.put(activityLog.getName().toLowerCase(), activityLog);
|
activityLogs.put(activityLog.getUUID(), activityLog);
|
||||||
|
|
||||||
for (String ip : activityLog.getIps())
|
for (String ip : activityLog.getIps())
|
||||||
{
|
{
|
||||||
@ -190,14 +192,14 @@ public class ActivityLog extends FreedomService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, ActivityLogEntry> getAllActivityLogs()
|
public Map<UUID, ActivityLogEntry> getAllActivityLogs()
|
||||||
{
|
{
|
||||||
return allActivityLogs;
|
return allActivityLogs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, ActivityLogEntry> getNameTable()
|
public Map<UUID, ActivityLogEntry> getActivityLogs()
|
||||||
{
|
{
|
||||||
return nameTable;
|
return activityLogs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, ActivityLogEntry> getIpTable()
|
public Map<String, ActivityLogEntry> getIpTable()
|
||||||
|
@ -4,6 +4,8 @@ import com.google.common.collect.Lists;
|
|||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.config.IConfig;
|
import me.totalfreedom.totalfreedommod.config.IConfig;
|
||||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
@ -18,17 +20,20 @@ public class ActivityLogEntry implements IConfig
|
|||||||
private final List<String> timestamps = Lists.newArrayList();
|
private final List<String> timestamps = Lists.newArrayList();
|
||||||
private final List<String> durations = Lists.newArrayList();
|
private final List<String> durations = Lists.newArrayList();
|
||||||
private String configKey;
|
private String configKey;
|
||||||
private String name;
|
|
||||||
|
|
||||||
public ActivityLogEntry(Player player)
|
public ActivityLogEntry(Player player)
|
||||||
{
|
{
|
||||||
this.configKey = player.getName().toLowerCase();
|
this.configKey = player.getUniqueId().toString();
|
||||||
this.name = player.getName();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivityLogEntry(String configKey)
|
public ActivityLogEntry(UUID uuid)
|
||||||
{
|
{
|
||||||
this.configKey = configKey;
|
this.configKey = uuid.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActivityLogEntry(String uuid)
|
||||||
|
{
|
||||||
|
this.configKey = uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getFILENAME()
|
public static String getFILENAME()
|
||||||
@ -39,13 +44,11 @@ public class ActivityLogEntry implements IConfig
|
|||||||
public void loadFrom(Player player)
|
public void loadFrom(Player player)
|
||||||
{
|
{
|
||||||
configKey = player.getName().toLowerCase();
|
configKey = player.getName().toLowerCase();
|
||||||
name = player.getName();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadFrom(ConfigurationSection cs)
|
public void loadFrom(ConfigurationSection cs)
|
||||||
{
|
{
|
||||||
name = cs.getString("username", configKey);
|
|
||||||
ips.clear();
|
ips.clear();
|
||||||
ips.addAll(cs.getStringList("ips"));
|
ips.addAll(cs.getStringList("ips"));
|
||||||
timestamps.clear();
|
timestamps.clear();
|
||||||
@ -57,8 +60,8 @@ public class ActivityLogEntry implements IConfig
|
|||||||
@Override
|
@Override
|
||||||
public void saveTo(ConfigurationSection cs)
|
public void saveTo(ConfigurationSection cs)
|
||||||
{
|
{
|
||||||
Validate.isTrue(isValid(), "Could not save activity entry: " + name + ". Entry not valid!");
|
Validate.isTrue(isValid(), "Could not save activity entry: " + getUUID() + ". Entry not valid!");
|
||||||
cs.set("username", name);
|
cs.set("uuid", getUUID().toString());
|
||||||
cs.set("ips", Lists.newArrayList(ips));
|
cs.set("ips", Lists.newArrayList(ips));
|
||||||
cs.set("timestamps", Lists.newArrayList(timestamps));
|
cs.set("timestamps", Lists.newArrayList(timestamps));
|
||||||
cs.set("durations", Lists.newArrayList(durations));
|
cs.set("durations", Lists.newArrayList(durations));
|
||||||
@ -73,11 +76,11 @@ public class ActivityLogEntry implements IConfig
|
|||||||
public void addLogout()
|
public void addLogout()
|
||||||
{
|
{
|
||||||
// Fix of Array index out of bonds issue: FS-131
|
// Fix of Array index out of bonds issue: FS-131
|
||||||
String lastLoginString;
|
String lastLoginString = "";
|
||||||
if(timestamps.size() > 1)
|
if(timestamps.size() > 1)
|
||||||
{
|
{
|
||||||
lastLoginString = timestamps.get(timestamps.size() - 1);
|
lastLoginString = timestamps.get(timestamps.size() - 1);
|
||||||
}else
|
} else if (timestamps.size() == 1)
|
||||||
{
|
{
|
||||||
lastLoginString = timestamps.get(0);
|
lastLoginString = timestamps.get(0);
|
||||||
}
|
}
|
||||||
@ -136,7 +139,7 @@ public class ActivityLogEntry implements IConfig
|
|||||||
public boolean isValid()
|
public boolean isValid()
|
||||||
{
|
{
|
||||||
return configKey != null
|
return configKey != null
|
||||||
&& name != null;
|
&& getUUID() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getConfigKey()
|
public String getConfigKey()
|
||||||
@ -149,16 +152,6 @@ public class ActivityLogEntry implements IConfig
|
|||||||
this.configKey = configKey;
|
this.configKey = configKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName()
|
|
||||||
{
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name)
|
|
||||||
{
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getIps()
|
public List<String> getIps()
|
||||||
{
|
{
|
||||||
return ips;
|
return ips;
|
||||||
@ -173,4 +166,12 @@ public class ActivityLogEntry implements IConfig
|
|||||||
{
|
{
|
||||||
return durations;
|
return durations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID getUUID() {
|
||||||
|
return UUID.fromString(configKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return FUtil.getNameFromUUID(getUUID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,8 @@ package me.totalfreedom.totalfreedommod.admin;
|
|||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import me.totalfreedom.totalfreedommod.LogViewer.LogsRegistrationMode;
|
import me.totalfreedom.totalfreedommod.LogViewer.LogsRegistrationMode;
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
@ -21,7 +18,7 @@ public class Admin
|
|||||||
|
|
||||||
|
|
||||||
private final List<String> ips = new ArrayList<>();
|
private final List<String> ips = new ArrayList<>();
|
||||||
private String name;
|
private UUID uuid;
|
||||||
private boolean active = true;
|
private boolean active = true;
|
||||||
private Rank rank = Rank.ADMIN;
|
private Rank rank = Rank.ADMIN;
|
||||||
private Date lastLogin = new Date();
|
private Date lastLogin = new Date();
|
||||||
@ -32,7 +29,7 @@ public class Admin
|
|||||||
|
|
||||||
public Admin(Player player)
|
public Admin(Player player)
|
||||||
{
|
{
|
||||||
this.name = player.getName();
|
this.uuid = player.getUniqueId();
|
||||||
this.ips.add(FUtil.getIp(player));
|
this.ips.add(FUtil.getIp(player));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,7 +37,7 @@ public class Admin
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.name = resultSet.getString("username");
|
this.uuid = UUID.fromString(resultSet.getString("uuid"));
|
||||||
this.active = resultSet.getBoolean("active");
|
this.active = resultSet.getBoolean("active");
|
||||||
this.rank = Rank.findRank(resultSet.getString("rank"));
|
this.rank = Rank.findRank(resultSet.getString("rank"));
|
||||||
this.ips.clear();
|
this.ips.clear();
|
||||||
@ -62,7 +59,7 @@ public class Admin
|
|||||||
{
|
{
|
||||||
final StringBuilder output = new StringBuilder();
|
final StringBuilder output = new StringBuilder();
|
||||||
|
|
||||||
output.append("Admin: ").append(name).append("\n")
|
output.append("Admin: ").append(uuid.toString()).append("\n")
|
||||||
.append("- IPs: ").append(StringUtils.join(ips, ", ")).append("\n")
|
.append("- IPs: ").append(StringUtils.join(ips, ", ")).append("\n")
|
||||||
.append("- Last Login: ").append(FUtil.dateToString(lastLogin)).append("\n")
|
.append("- Last Login: ").append(FUtil.dateToString(lastLogin)).append("\n")
|
||||||
.append("- Rank: ").append(rank.getName()).append("\n")
|
.append("- Rank: ").append(rank.getName()).append("\n")
|
||||||
@ -78,7 +75,7 @@ public class Admin
|
|||||||
{
|
{
|
||||||
Map<String, Object> map = new HashMap<String, Object>()
|
Map<String, Object> map = new HashMap<String, Object>()
|
||||||
{{
|
{{
|
||||||
put("username", name);
|
put("uuid", uuid.toString());
|
||||||
put("active", active);
|
put("active", active);
|
||||||
put("rank", rank.toString());
|
put("rank", rank.toString());
|
||||||
put("ips", FUtil.listToString(ips));
|
put("ips", FUtil.listToString(ips));
|
||||||
@ -120,20 +117,20 @@ public class Admin
|
|||||||
|
|
||||||
public boolean isValid()
|
public boolean isValid()
|
||||||
{
|
{
|
||||||
return name != null
|
return uuid != null
|
||||||
&& rank != null
|
&& rank != null
|
||||||
&& !ips.isEmpty()
|
&& !ips.isEmpty()
|
||||||
&& lastLogin != null;
|
&& lastLogin != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName()
|
public UUID getUniqueId()
|
||||||
{
|
{
|
||||||
return name;
|
return uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name)
|
public void setUniqueId(UUID uuid)
|
||||||
{
|
{
|
||||||
this.name = name;
|
this.uuid = uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isActive()
|
public boolean isActive()
|
||||||
@ -168,6 +165,7 @@ public class Admin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Rank getRank()
|
public Rank getRank()
|
||||||
{
|
{
|
||||||
return rank;
|
return rank;
|
||||||
@ -232,4 +230,9 @@ public class Admin
|
|||||||
{
|
{
|
||||||
this.pteroID = pteroID;
|
this.pteroID = pteroID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return FUtil.getNameFromUUID(uuid);
|
||||||
|
}
|
||||||
}
|
}
|
@ -4,11 +4,7 @@ import com.google.common.collect.Maps;
|
|||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import me.totalfreedom.totalfreedommod.FreedomService;
|
import me.totalfreedom.totalfreedommod.FreedomService;
|
||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
@ -26,7 +22,7 @@ public class AdminList extends FreedomService
|
|||||||
private final Set<Admin> allAdmins = Sets.newHashSet(); // Includes disabled admins
|
private final Set<Admin> allAdmins = Sets.newHashSet(); // Includes disabled admins
|
||||||
// Only active admins below
|
// Only active admins below
|
||||||
private final Set<Admin> activeAdmins = Sets.newHashSet();
|
private final Set<Admin> activeAdmins = Sets.newHashSet();
|
||||||
private final Map<String, Admin> nameTable = Maps.newHashMap();
|
private final Map<UUID, Admin> adminTable = Maps.newHashMap();
|
||||||
private final Map<String, Admin> ipTable = Maps.newHashMap();
|
private final Map<String, Admin> ipTable = Maps.newHashMap();
|
||||||
|
|
||||||
public static List<String> getVanished()
|
public static List<String> getVanished()
|
||||||
@ -66,7 +62,7 @@ public class AdminList extends FreedomService
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateTables();
|
updateTables();
|
||||||
FLog.info("Loaded " + allAdmins.size() + " admins (" + nameTable.size() + " active, " + ipTable.size() + " IPs)");
|
FLog.info("Loaded " + allAdmins.size() + " admins (" + adminTable.size() + " active, " + ipTable.size() + " IPs)");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void messageAllAdmins(String message)
|
public void messageAllAdmins(String message)
|
||||||
@ -97,14 +93,16 @@ public class AdminList extends FreedomService
|
|||||||
return isAdmin(sender);
|
return isAdmin(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public List<String> getActiveAdminNames()
|
public List<String> getActiveAdminNames()
|
||||||
{
|
{
|
||||||
List<String> names = new ArrayList();
|
/*List<String> names = new ArrayList();
|
||||||
for (Admin admin : activeAdmins)
|
for (Admin admin : activeAdmins)
|
||||||
{
|
{
|
||||||
names.add(admin.getName());
|
names.add(admin.getName());
|
||||||
}
|
}
|
||||||
return names;
|
return names;*/
|
||||||
|
throw new UnsupportedOperationException("Admin no longer stores names in the object, may be changed in a future update");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAdmin(CommandSender sender)
|
public boolean isAdmin(CommandSender sender)
|
||||||
@ -142,21 +140,21 @@ public class AdminList extends FreedomService
|
|||||||
return admin.getRank().ordinal() >= Rank.SENIOR_ADMIN.ordinal();
|
return admin.getRank().ordinal() >= Rank.SENIOR_ADMIN.ordinal();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Admin getAdmin(CommandSender sender)
|
public Admin getAdmin(CommandSender sender) //TODO: Fix
|
||||||
{
|
{
|
||||||
if (sender instanceof Player)
|
if (sender instanceof Player)
|
||||||
{
|
{
|
||||||
return getAdmin((Player)sender);
|
return getAdmin((Player)sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
return getEntryByName(sender.getName());
|
return getEntryByUUID(FUtil.getUUIDFromName(sender.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Admin getAdmin(Player player)
|
public Admin getAdmin(Player player)
|
||||||
{
|
{
|
||||||
// Find admin
|
// Find admin
|
||||||
String ip = FUtil.getIp(player);
|
String ip = FUtil.getIp(player);
|
||||||
Admin admin = getEntryByName(player.getName());
|
Admin admin = getEntryByUUID(player.getUniqueId());
|
||||||
|
|
||||||
// Admin by name
|
// Admin by name
|
||||||
if (admin != null)
|
if (admin != null)
|
||||||
@ -181,18 +179,16 @@ public class AdminList extends FreedomService
|
|||||||
if (admin != null)
|
if (admin != null)
|
||||||
{
|
{
|
||||||
// Set the new username
|
// Set the new username
|
||||||
String oldName = admin.getName();
|
//plugin.sql.updateAdminName(oldName, admin.getName());
|
||||||
admin.setName(player.getName());
|
|
||||||
plugin.sql.updateAdminName(oldName, admin.getName());
|
|
||||||
updateTables();
|
updateTables();
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Admin getEntryByName(String name)
|
public Admin getEntryByUUID(UUID uuid)
|
||||||
{
|
{
|
||||||
return nameTable.get(name.toLowerCase());
|
return adminTable.get(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Admin getEntryByIp(String ip)
|
public Admin getEntryByIp(String ip)
|
||||||
@ -200,6 +196,7 @@ public class AdminList extends FreedomService
|
|||||||
return ipTable.get(ip);
|
return ipTable.get(ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated // TODO: no ips maybe ? idk soontm
|
||||||
public Admin getEntryByIpFuzzy(String needleIp)
|
public Admin getEntryByIpFuzzy(String needleIp)
|
||||||
{
|
{
|
||||||
final Admin directAdmin = getEntryByIp(needleIp);
|
final Admin directAdmin = getEntryByIp(needleIp);
|
||||||
@ -228,13 +225,12 @@ public class AdminList extends FreedomService
|
|||||||
}
|
}
|
||||||
|
|
||||||
admin.setLastLogin(new Date());
|
admin.setLastLogin(new Date());
|
||||||
admin.setName(player.getName());
|
|
||||||
save(admin);
|
save(admin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAdminImpostor(Player player)
|
public boolean isAdminImpostor(Player player)
|
||||||
{
|
{
|
||||||
return getEntryByName(player.getName()) != null && !isAdmin(player) && !isVerifiedAdmin(player);
|
return getEntryByUUID(player.getUniqueId()) != null && !isAdmin(player) && !isVerifiedAdmin(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isVerifiedAdmin(Player player)
|
public boolean isVerifiedAdmin(Player player)
|
||||||
@ -297,7 +293,7 @@ public class AdminList extends FreedomService
|
|||||||
public void updateTables()
|
public void updateTables()
|
||||||
{
|
{
|
||||||
activeAdmins.clear();
|
activeAdmins.clear();
|
||||||
nameTable.clear();
|
adminTable.clear();
|
||||||
ipTable.clear();
|
ipTable.clear();
|
||||||
|
|
||||||
for (Admin admin : allAdmins)
|
for (Admin admin : allAdmins)
|
||||||
@ -308,7 +304,7 @@ public class AdminList extends FreedomService
|
|||||||
}
|
}
|
||||||
|
|
||||||
activeAdmins.add(admin);
|
activeAdmins.add(admin);
|
||||||
nameTable.put(admin.getName().toLowerCase(), admin);
|
adminTable.put(admin.getUniqueId(), admin);
|
||||||
|
|
||||||
for (String ip : admin.getIps())
|
for (String ip : admin.getIps())
|
||||||
{
|
{
|
||||||
@ -318,9 +314,9 @@ public class AdminList extends FreedomService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<String> getAdminNames()
|
public Set<UUID> getAdminUUIDs()
|
||||||
{
|
{
|
||||||
return nameTable.keySet();
|
return adminTable.keySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<String> getAdminIps()
|
public Set<String> getAdminIps()
|
||||||
@ -332,7 +328,7 @@ public class AdminList extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ResultSet currentSave = plugin.sql.getAdminByName(admin.getName());
|
ResultSet currentSave = plugin.sql.getAdminByUUID(admin.getUniqueId());
|
||||||
for (Map.Entry<String, Object> entry : admin.toSQLStorable().entrySet())
|
for (Map.Entry<String, Object> entry : admin.toSQLStorable().entrySet())
|
||||||
{
|
{
|
||||||
Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue());
|
Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue());
|
||||||
@ -392,11 +388,6 @@ public class AdminList extends FreedomService
|
|||||||
return activeAdmins;
|
return activeAdmins;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Admin> getNameTable()
|
|
||||||
{
|
|
||||||
return nameTable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Admin> getIpTable()
|
public Map<String, Admin> getIpTable()
|
||||||
{
|
{
|
||||||
return ipTable;
|
return ipTable;
|
||||||
|
@ -19,6 +19,8 @@ import org.bukkit.entity.Player;
|
|||||||
public class Ban
|
public class Ban
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//TODO: fuck your usernames and getting by ips, bans will be in uuid maybe soon tm idk
|
||||||
|
|
||||||
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
||||||
private final List<String> ips = Lists.newArrayList();
|
private final List<String> ips = Lists.newArrayList();
|
||||||
private String username = null;
|
private String username = null;
|
||||||
|
@ -43,6 +43,7 @@ public class IndefiniteBan implements IConfig
|
|||||||
@Override
|
@Override
|
||||||
public void saveTo(ConfigurationSection cs)
|
public void saveTo(ConfigurationSection cs)
|
||||||
{
|
{
|
||||||
|
// The indefinite ban list is only intended to be modified manually. It is not intended to save.
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -171,6 +171,11 @@ public class BlockBlocker extends FreedomService
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Groups.BANNERS.contains(event.getBlockPlaced().getType()))
|
if (Groups.BANNERS.contains(event.getBlockPlaced().getType()))
|
||||||
|
@ -146,9 +146,12 @@ public class EventBlocker extends FreedomService
|
|||||||
if (ConfigEntry.ENABLE_PET_PROTECT.getBoolean())
|
if (ConfigEntry.ENABLE_PET_PROTECT.getBoolean())
|
||||||
{
|
{
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (entity instanceof Tameable && ((Tameable) entity).isTamed())
|
if (entity instanceof Tameable)
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
if (((Tameable)entity).isTamed())
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,10 +36,9 @@ public class InteractBlocker extends FreedomService
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case LEFT_CLICK_AIR:
|
default:
|
||||||
case LEFT_CLICK_BLOCK:
|
|
||||||
{
|
{
|
||||||
//
|
// Do nothing
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -158,6 +157,11 @@ public class InteractBlocker extends FreedomService
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -12,6 +12,7 @@ import me.totalfreedom.totalfreedommod.FreedomService;
|
|||||||
import me.totalfreedom.totalfreedommod.admin.Admin;
|
import me.totalfreedom.totalfreedommod.admin.Admin;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
import me.totalfreedom.totalfreedommod.util.FLog;
|
import me.totalfreedom.totalfreedommod.util.FLog;
|
||||||
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
@ -101,9 +102,12 @@ public class BukkitTelnetBridge extends FreedomService
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
final Plugin bukkitTelnet = server.getPluginManager().getPlugin("BukkitTelnet");
|
final Plugin bukkitTelnet = server.getPluginManager().getPlugin("BukkitTelnet");
|
||||||
if (bukkitTelnet instanceof BukkitTelnet)
|
if (bukkitTelnet != null)
|
||||||
{
|
{
|
||||||
bukkitTelnetPlugin = (BukkitTelnet) bukkitTelnet;
|
if (bukkitTelnet instanceof BukkitTelnet)
|
||||||
|
{
|
||||||
|
bukkitTelnetPlugin = (BukkitTelnet)bukkitTelnet;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -123,7 +127,7 @@ public class BukkitTelnetBridge extends FreedomService
|
|||||||
{
|
{
|
||||||
for (ClientSession session : telnet.appender.getSessions())
|
for (ClientSession session : telnet.appender.getSessions())
|
||||||
{
|
{
|
||||||
Admin admin = plugin.al.getEntryByName(session.getUserName().toLowerCase());
|
Admin admin = plugin.al.getEntryByUUID(FUtil.getUUIDFromName(session.getUserName()));
|
||||||
if (admin != null && !admins.contains(admin))
|
if (admin != null && !admins.contains(admin))
|
||||||
{
|
{
|
||||||
admins.add(admin);
|
admins.add(admin);
|
||||||
|
@ -362,90 +362,93 @@ public class CoreProtectBridge extends FreedomService
|
|||||||
}
|
}
|
||||||
else if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
|
else if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
|
||||||
{
|
{
|
||||||
if (block != null && data.hasInspection())
|
if (block != null)
|
||||||
{
|
{
|
||||||
BlockState blockState = block.getRelative(event.getBlockFace()).getState();
|
if (data.hasInspection())
|
||||||
Block placedBlock = blockState.getBlock();
|
|
||||||
event.setCancelled(true);
|
|
||||||
List<String[]> lookup = coreProtect.blockLookup(placedBlock, -1);
|
|
||||||
|
|
||||||
if (lookup.isEmpty())
|
|
||||||
{
|
{
|
||||||
lookup = coreProtect.blockLookup(block, -1);
|
BlockState blockState = block.getRelative(event.getBlockFace()).getState();
|
||||||
}
|
Block placedBlock = blockState.getBlock();
|
||||||
|
event.setCancelled(true);
|
||||||
|
List<String[]> lookup = coreProtect.blockLookup(placedBlock, -1);
|
||||||
|
|
||||||
int cooldownTime = 3;
|
|
||||||
|
|
||||||
if (cooldown.containsKey(player.getName()))
|
|
||||||
{
|
|
||||||
long secondsLeft = getSecondsLeft(cooldown.get(player.getName()), cooldownTime);
|
|
||||||
if (secondsLeft > 0L)
|
|
||||||
{
|
|
||||||
event.setCancelled(true);
|
|
||||||
player.sendMessage(ChatColor.RED + String.valueOf(secondsLeft) + " seconds left before next query.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!plugin.al.isAdmin(player))
|
|
||||||
{
|
|
||||||
cooldown.put(player.getName(), System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (lookup != null)
|
|
||||||
{
|
|
||||||
if (lookup.isEmpty())
|
if (lookup.isEmpty())
|
||||||
{
|
{
|
||||||
player.sendMessage(net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector " + ChatColor.WHITE + "- " + "No block data found for this location");
|
lookup = coreProtect.blockLookup(block, -1);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HISTORY_MAP.remove(event.getPlayer());
|
int cooldownTime = 3;
|
||||||
HISTORY_MAP.put(event.getPlayer(), new FUtil.PaginationList<>(10));
|
|
||||||
FUtil.PaginationList<String> paged = HISTORY_MAP.get(event.getPlayer());
|
|
||||||
|
|
||||||
player.sendMessage("---- " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector" + ChatColor.WHITE + " ---- " +
|
if (cooldown.containsKey(player.getName()))
|
||||||
ChatColor.GRAY + "(x" + block.getX() + "/" + "y" + block.getY() + "/" + "z" + block.getZ() + ")");
|
|
||||||
|
|
||||||
for (String[] value : lookup)
|
|
||||||
{
|
{
|
||||||
CoreProtectAPI.ParseResult result = coreProtect.parseResult(value);
|
long secondsLeft = getSecondsLeft(cooldown.get(player.getName()), cooldownTime);
|
||||||
BlockData bl = result.getBlockData();
|
if (secondsLeft > 0L)
|
||||||
|
|
||||||
String s;
|
|
||||||
String st = "";
|
|
||||||
|
|
||||||
if (result.getActionString().equals("Placement"))
|
|
||||||
{
|
{
|
||||||
s = " placed ";
|
event.setCancelled(true);
|
||||||
|
player.sendMessage(ChatColor.RED + String.valueOf(secondsLeft) + " seconds left before next query.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else if (result.getActionString().equals("Removal"))
|
|
||||||
{
|
|
||||||
s = " broke ";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
s = " interacted with ";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result.isRolledBack())
|
|
||||||
{
|
|
||||||
st += "§m";
|
|
||||||
}
|
|
||||||
|
|
||||||
int time = (int)(System.currentTimeMillis() / 1000L);
|
|
||||||
|
|
||||||
paged.add(ChatColor.GRAY + getTimeAgo(result.getTime(), time) + ChatColor.WHITE + " - " + net.md_5.bungee.api.ChatColor.of("#30ade4") +
|
|
||||||
st + result.getPlayer() + ChatColor.WHITE + st + s + net.md_5.bungee.api.ChatColor.of("#30ade4") + st + bl.getMaterial().toString().toLowerCase());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> page = paged.getPage(1);
|
if (!plugin.al.isAdmin(player))
|
||||||
for (String entries : page)
|
|
||||||
{
|
{
|
||||||
player.sendMessage(entries);
|
cooldown.put(player.getName(), System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendMessage("Page 1/" + paged.getPageCount() + " | To index through the pages, type " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "/ins history <page>");
|
if (lookup != null)
|
||||||
|
{
|
||||||
|
if (lookup.isEmpty())
|
||||||
|
{
|
||||||
|
player.sendMessage(net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector " + ChatColor.WHITE + "- " + "No block data found for this location");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HISTORY_MAP.remove(event.getPlayer());
|
||||||
|
HISTORY_MAP.put(event.getPlayer(), new FUtil.PaginationList<>(10));
|
||||||
|
FUtil.PaginationList<String> paged = HISTORY_MAP.get(event.getPlayer());
|
||||||
|
|
||||||
|
player.sendMessage("---- " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector" + ChatColor.WHITE + " ---- " +
|
||||||
|
ChatColor.GRAY + "(x" + block.getX() + "/" + "y" + block.getY() + "/" + "z" + block.getZ() + ")");
|
||||||
|
|
||||||
|
for (String[] value : lookup)
|
||||||
|
{
|
||||||
|
CoreProtectAPI.ParseResult result = coreProtect.parseResult(value);
|
||||||
|
BlockData bl = result.getBlockData();
|
||||||
|
|
||||||
|
String s;
|
||||||
|
String st = "";
|
||||||
|
|
||||||
|
if (result.getActionString().equals("Placement"))
|
||||||
|
{
|
||||||
|
s = " placed ";
|
||||||
|
}
|
||||||
|
else if (result.getActionString().equals("Removal"))
|
||||||
|
{
|
||||||
|
s = " broke ";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s = " interacted with ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.isRolledBack())
|
||||||
|
{
|
||||||
|
st += "§m";
|
||||||
|
}
|
||||||
|
|
||||||
|
int time = (int)(System.currentTimeMillis() / 1000L);
|
||||||
|
|
||||||
|
paged.add(ChatColor.GRAY + getTimeAgo(result.getTime(), time) + ChatColor.WHITE + " - " + net.md_5.bungee.api.ChatColor.of("#30ade4") +
|
||||||
|
st + result.getPlayer() + ChatColor.WHITE + st + s + net.md_5.bungee.api.ChatColor.of("#30ade4") + st + bl.getMaterial().toString().toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> page = paged.getPage(1);
|
||||||
|
for (String entries : page)
|
||||||
|
{
|
||||||
|
player.sendMessage(entries);
|
||||||
|
}
|
||||||
|
|
||||||
|
player.sendMessage("Page 1/" + paged.getPageCount() + " | To index through the pages, type " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "/ins history <page>");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,13 @@ public class TFGuildsBridge extends FreedomService
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
final Plugin tfGuilds = server.getPluginManager().getPlugin("TFGuilds");
|
final Plugin tfGuilds = server.getPluginManager().getPlugin("TFGuilds");
|
||||||
if (tfGuilds != null && tfGuilds.isEnabled() && tfGuilds instanceof TFGuilds)
|
if (tfGuilds != null && tfGuilds.isEnabled())
|
||||||
{
|
{
|
||||||
enabled = true;
|
if (tfGuilds instanceof TFGuilds)
|
||||||
return true;
|
{
|
||||||
|
enabled = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (NoClassDefFoundError ex)
|
catch (NoClassDefFoundError ex)
|
||||||
|
@ -65,7 +65,7 @@ public class Command_ban extends FreedomCommand
|
|||||||
final Player player = getPlayer(args[0]);
|
final Player player = getPlayer(args[0]);
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
final PlayerData entry = plugin.pl.getData(args[0]);
|
final PlayerData entry = plugin.pl.getData(FUtil.getUUIDFromName(args[0]));
|
||||||
|
|
||||||
if (entry == null)
|
if (entry == null)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package me.totalfreedom.totalfreedommod.command;
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.Punishment;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -75,9 +77,11 @@ public class Command_blockcmd extends FreedomCommand
|
|||||||
FPlayer playerdata = plugin.pl.getPlayer(player);
|
FPlayer playerdata = plugin.pl.getPlayer(player);
|
||||||
if (!playerdata.allCommandsBlocked())
|
if (!playerdata.allCommandsBlocked())
|
||||||
{
|
{
|
||||||
playerdata.setCommandsBlocked(true);
|
|
||||||
FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
|
FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
|
||||||
|
playerdata.setCommandsBlocked(true);
|
||||||
msg("Blocked commands for " + player.getName() + ".");
|
msg("Blocked commands for " + player.getName() + ".");
|
||||||
|
|
||||||
|
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.BLOCKCMD, null));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package me.totalfreedom.totalfreedommod.command;
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.Punishment;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.apache.commons.lang.ArrayUtils;
|
import org.apache.commons.lang.ArrayUtils;
|
||||||
@ -128,6 +130,8 @@ public class Command_blockedit extends FreedomCommand
|
|||||||
|
|
||||||
msg(player2, "Your block modification abilities have been blocked.", ChatColor.RED);
|
msg(player2, "Your block modification abilities have been blocked.", ChatColor.RED);
|
||||||
msg("Blocked all block modification abilities for " + player2.getName());
|
msg("Blocked all block modification abilities for " + player2.getName());
|
||||||
|
|
||||||
|
plugin.pul.logPunishment(new Punishment(player2.getName(), FUtil.getIp(player2), sender.getName(), PunishmentType.BLOCKEDIT, null));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package me.totalfreedom.totalfreedommod.command;
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.Punishment;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
@ -125,6 +127,7 @@ public class Command_blockpvp extends FreedomCommand
|
|||||||
{
|
{
|
||||||
Command_smite.smite(sender, p, reason);
|
Command_smite.smite(sender, p, reason);
|
||||||
}
|
}
|
||||||
|
plugin.pul.logPunishment(new Punishment(p.getName(), FUtil.getIp(p), sender.getName(), PunishmentType.BLOCKPVP, null));
|
||||||
|
|
||||||
msg(p, "Your PVP has been disabled.", ChatColor.RED);
|
msg(p, "Your PVP has been disabled.", ChatColor.RED);
|
||||||
msg("Disabled PVP for " + p.getName());
|
msg("Disabled PVP for " + p.getName());
|
||||||
|
@ -5,6 +5,8 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.Punishment;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -75,17 +77,43 @@ public class Command_cage extends FreedomCommand
|
|||||||
}
|
}
|
||||||
case "block":
|
case "block":
|
||||||
{
|
{
|
||||||
if (Material.matchMaterial(args[2]) != null)
|
if (args.length >= 3)
|
||||||
{
|
{
|
||||||
outerMaterial = Material.matchMaterial(args[2]);
|
// Checks the validity of the Material and checks if it's a block.
|
||||||
break;
|
// This is incredibly inefficient, as Spigot's isBlock() method in Material is an actual
|
||||||
|
// nightmare of switch-cases.
|
||||||
|
if (Material.matchMaterial(args[2]) != null && Material.matchMaterial(args[2]).isBlock())
|
||||||
|
{
|
||||||
|
outerMaterial = Material.matchMaterial(args[2]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
msg("Invalid block!", ChatColor.RED);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
msg("Invalid block!", ChatColor.RED);
|
else
|
||||||
break;
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (outerMaterial == Material.PLAYER_HEAD)
|
||||||
|
{
|
||||||
|
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||||
|
}
|
||||||
|
|
||||||
Location location = player.getLocation().clone().add(0.0, 1.0, 0.0);
|
Location location = player.getLocation().clone().add(0.0, 1.0, 0.0);
|
||||||
|
|
||||||
if (skullName != null)
|
if (skullName != null)
|
||||||
@ -96,17 +124,9 @@ public class Command_cage extends FreedomCommand
|
|||||||
{
|
{
|
||||||
fPlayer.getCageData().cage(location, outerMaterial, innerMaterial);
|
fPlayer.getCageData().cage(location, outerMaterial, innerMaterial);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
|
||||||
if (outerMaterial == Material.PLAYER_HEAD)
|
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.CAGE, null));
|
||||||
{
|
|
||||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
|
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Clears the chat.", usage = "/<command>", aliases = "cc")
|
@CommandParameters(description = "Clears the chat.", usage = "/<command>", aliases = "cc")
|
||||||
public class Command_clearchat extends FreedomCommand
|
public class Command_cleanchat extends FreedomCommand
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -27,4 +27,4 @@ public class Command_clearchat extends FreedomCommand
|
|||||||
FUtil.adminAction(sender.getName(), "Cleared chat", true);
|
FUtil.adminAction(sender.getName(), "Cleared chat", true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -32,14 +32,16 @@ public class Command_deop extends FreedomCommand
|
|||||||
final List<String> matchedPlayerNames = new ArrayList<>();
|
final List<String> matchedPlayerNames = new ArrayList<>();
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if ((player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
|
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
|
||||||
|| player.getName().contains(targetName) || player.getDisplayName().contains(targetName))
|
|| player.getName().contains(targetName) || player.getDisplayName().contains(targetName))
|
||||||
&& player.isOp() && !plugin.al.isVanished(player.getName()))
|
|
||||||
{
|
{
|
||||||
matchedPlayerNames.add(player.getName());
|
if (player.isOp() && !plugin.al.isVanished(player.getName()))
|
||||||
player.setOp(false);
|
{
|
||||||
msg(player, YOU_ARE_NOT_OP);
|
matchedPlayerNames.add(player.getName());
|
||||||
plugin.rm.updateDisplay(player);
|
player.setOp(false);
|
||||||
|
msg(player, YOU_ARE_NOT_OP);
|
||||||
|
plugin.rm.updateDisplay(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ public class Command_doom extends FreedomCommand
|
|||||||
plugin.ptero.updateAccountStatus(admin);
|
plugin.ptero.updateAccountStatus(admin);
|
||||||
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
|
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
|
||||||
{
|
{
|
||||||
Discord.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID());
|
Discord.syncRoles(admin, plugin.pl.getData(admin.getUniqueId()).getDiscordID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,18 +251,21 @@ public class Command_enchant extends FreedomCommand
|
|||||||
return getEnchantments(item);
|
return getEnchantments(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args.length == 3 && args[0].equalsIgnoreCase("add"))
|
else if (args.length == 3)
|
||||||
{
|
{
|
||||||
Enchantment enchantment = Enchantment.getByName(args[1].toUpperCase());
|
if (args[0].equals("add"))
|
||||||
if (enchantment != null)
|
|
||||||
{
|
{
|
||||||
if (!unsafe)
|
Enchantment enchantment = Enchantment.getByName(args[1].toUpperCase());
|
||||||
|
if (enchantment != null)
|
||||||
{
|
{
|
||||||
return stringNumberRange(1, enchantment.getMaxLevel());
|
if (!unsafe)
|
||||||
}
|
{
|
||||||
else
|
return stringNumberRange(1, enchantment.getMaxLevel());
|
||||||
{
|
}
|
||||||
return Collections.singletonList("[level]");
|
else
|
||||||
|
{
|
||||||
|
return Collections.singletonList("[level]");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,12 @@ public class Command_entitywipe extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type == EntityType.PLAYER)
|
||||||
|
{
|
||||||
|
msg("Player entities cannot be purged.", ChatColor.RED);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!getAllEntities().contains(type))
|
if (!getAllEntities().contains(type))
|
||||||
{
|
{
|
||||||
msg(FUtil.formatName(type.name()) + " is an entity, however: it is a mob.", ChatColor.RED);
|
msg(FUtil.formatName(type.name()) + " is an entity, however: it is a mob.", ChatColor.RED);
|
||||||
|
@ -23,12 +23,12 @@ public class Command_freeze extends FreedomCommand
|
|||||||
|
|
||||||
if (!gFreeze)
|
if (!gFreeze)
|
||||||
{
|
{
|
||||||
FUtil.adminAction(sender.getName(), "Disabling global player freeze", false);
|
FUtil.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||||
msg("Players are now free to move.");
|
msg("Players are now free to move.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
FUtil.adminAction(sender.getName(), "Enabling global player freeze", false);
|
FUtil.adminAction(sender.getName(), "Freezing all players", false);
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!isAdmin(player))
|
if (!isAdmin(player))
|
||||||
|
@ -3,6 +3,7 @@ package me.totalfreedom.totalfreedommod.command;
|
|||||||
import me.totalfreedom.totalfreedommod.discord.Discord;
|
import me.totalfreedom.totalfreedommod.discord.Discord;
|
||||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -24,7 +25,7 @@ public class Command_linkdiscord extends FreedomCommand
|
|||||||
|
|
||||||
if (args.length > 1 && plugin.al.isAdmin(playerSender))
|
if (args.length > 1 && plugin.al.isAdmin(playerSender))
|
||||||
{
|
{
|
||||||
PlayerData playerData = plugin.pl.getData(args[0]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[0]));
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
msg(PLAYER_NOT_FOUND);
|
msg(PLAYER_NOT_FOUND);
|
||||||
|
@ -35,14 +35,14 @@ public class Command_manageshop extends FreedomCommand
|
|||||||
}
|
}
|
||||||
switch (args[1])
|
switch (args[1])
|
||||||
{
|
{
|
||||||
|
|
||||||
case "add":
|
case "add":
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
|
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
|
||||||
if (!args[3].equals("all"))
|
if (!args[3].equals("all"))
|
||||||
{
|
{
|
||||||
PlayerData playerData = plugin.pl.getData(args[3]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[3]));
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
msg(PLAYER_NOT_FOUND);
|
msg(PLAYER_NOT_FOUND);
|
||||||
@ -75,13 +75,15 @@ public class Command_manageshop extends FreedomCommand
|
|||||||
msg("Invalid number: " + args[2], ChatColor.RED);
|
msg("Invalid number: " + args[2], ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case "remove":
|
case "remove":
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
|
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
|
||||||
if (!args[3].equals("all"))
|
if (!args[3].equals("all"))
|
||||||
{
|
{
|
||||||
PlayerData playerData = plugin.pl.getData(args[3]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[3]));
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
msg(PLAYER_NOT_FOUND);
|
msg(PLAYER_NOT_FOUND);
|
||||||
@ -122,11 +124,13 @@ public class Command_manageshop extends FreedomCommand
|
|||||||
msg("Invalid number: " + args[2], ChatColor.RED);
|
msg("Invalid number: " + args[2], ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case "set":
|
case "set":
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
|
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
|
||||||
PlayerData playerData = plugin.pl.getData(args[3]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[3]));
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
msg(PLAYER_NOT_FOUND);
|
msg(PLAYER_NOT_FOUND);
|
||||||
@ -147,6 +151,11 @@ public class Command_manageshop extends FreedomCommand
|
|||||||
msg("Invalid number: " + args[2], ChatColor.RED);
|
msg("Invalid number: " + args[2], ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args[0].equals("items"))
|
else if (args[0].equals("items"))
|
||||||
@ -171,7 +180,7 @@ public class Command_manageshop extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerData playerData = plugin.pl.getData(args[3]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[3]));
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
msg(PLAYER_NOT_FOUND);
|
msg(PLAYER_NOT_FOUND);
|
||||||
@ -196,7 +205,7 @@ public class Command_manageshop extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerData playerData = plugin.pl.getData(args[3]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[3]));
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
msg(PLAYER_NOT_FOUND);
|
msg(PLAYER_NOT_FOUND);
|
||||||
|
@ -45,7 +45,7 @@ public class Command_mbconfig extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerData data = plugin.pl.getData(sender.getName());
|
PlayerData data = plugin.pl.getData(FUtil.getUUIDFromName(sender.getName()));
|
||||||
if (!data.isMasterBuilder())
|
if (!data.isMasterBuilder())
|
||||||
{
|
{
|
||||||
msg("You are not a master builder!", ChatColor.RED);
|
msg("You are not a master builder!", ChatColor.RED);
|
||||||
@ -74,7 +74,7 @@ public class Command_mbconfig extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerData data = plugin.pl.getData(sender.getName());
|
PlayerData data = plugin.pl.getData(FUtil.getUUIDFromName(sender.getName()));
|
||||||
final String targetIp = FUtil.getIp(playerSender);
|
final String targetIp = FUtil.getIp(playerSender);
|
||||||
|
|
||||||
if (!data.isMasterBuilder())
|
if (!data.isMasterBuilder())
|
||||||
@ -101,14 +101,14 @@ public class Command_mbconfig extends FreedomCommand
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.pl.canManageMasterBuilders(sender.getName()))
|
if (plugin.pl.canManageMasterBuilders(FUtil.getUUIDFromName(sender.getName())))
|
||||||
{
|
{
|
||||||
return noPerms();
|
return noPerms();
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player player = getPlayer(args[1]);
|
final Player player = getPlayer(args[1]);
|
||||||
|
|
||||||
PlayerData data = player != null ? plugin.pl.getData(player) : plugin.pl.getData(args[1]);
|
PlayerData data = player != null ? plugin.pl.getData(player) : plugin.pl.getData(FUtil.getUUIDFromName(args[1]));
|
||||||
|
|
||||||
if (data == null)
|
if (data == null)
|
||||||
{
|
{
|
||||||
@ -157,13 +157,13 @@ public class Command_mbconfig extends FreedomCommand
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.pl.canManageMasterBuilders(sender.getName()))
|
if (plugin.pl.canManageMasterBuilders(FUtil.getUUIDFromName(sender.getName())))
|
||||||
{
|
{
|
||||||
return noPerms();
|
return noPerms();
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = getPlayer(args[1]);
|
Player player = getPlayer(args[1]);
|
||||||
PlayerData data = player != null ? plugin.pl.getData(player) : plugin.pl.getData(args[1]);
|
PlayerData data = player != null ? plugin.pl.getData(player) : plugin.pl.getData(FUtil.getUUIDFromName(args[1]));
|
||||||
|
|
||||||
if (data == null || !data.isMasterBuilder())
|
if (data == null || !data.isMasterBuilder())
|
||||||
{
|
{
|
||||||
@ -210,7 +210,7 @@ public class Command_mbconfig extends FreedomCommand
|
|||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("clearip"))
|
else if (args[0].equalsIgnoreCase("clearip"))
|
||||||
{
|
{
|
||||||
PlayerData data = plugin.pl.getData(sender.getName());
|
PlayerData data = plugin.pl.getData(FUtil.getUUIDFromName(sender.getName()));
|
||||||
if (data.isMasterBuilder())
|
if (data.isMasterBuilder())
|
||||||
{
|
{
|
||||||
return data.getIps();
|
return data.getIps();
|
||||||
|
@ -170,7 +170,7 @@ public class Command_myadmin extends FreedomCommand
|
|||||||
msg("Role syncing is not enabled.", ChatColor.RED);
|
msg("Role syncing is not enabled.", ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
PlayerData playerData = plugin.pl.getData(target.getName());
|
PlayerData playerData = plugin.pl.getData(target.getUniqueId());
|
||||||
if (playerData.getDiscordID() == null)
|
if (playerData.getDiscordID() == null)
|
||||||
{
|
{
|
||||||
msg("Please run /linkdiscord first!", ChatColor.RED);
|
msg("Please run /linkdiscord first!", ChatColor.RED);
|
||||||
@ -248,7 +248,7 @@ public class Command_myadmin extends FreedomCommand
|
|||||||
{
|
{
|
||||||
if (args[0].equals("-o") && args[2].equals("clearip"))
|
if (args[0].equals("-o") && args[2].equals("clearip"))
|
||||||
{
|
{
|
||||||
Admin admin = plugin.al.getEntryByName(args[1]);
|
Admin admin = plugin.al.getEntryByUUID(FUtil.getUUIDFromName(args[1]));
|
||||||
if (admin != null)
|
if (admin != null)
|
||||||
{
|
{
|
||||||
return admin.getIps();
|
return admin.getIps();
|
||||||
|
@ -31,7 +31,7 @@ public class Command_notes extends FreedomCommand
|
|||||||
final Player player = getPlayer(args[0]);
|
final Player player = getPlayer(args[0]);
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
final PlayerData entry = plugin.pl.getData(args[0]);
|
final PlayerData entry = plugin.pl.getData(FUtil.getUUIDFromName(args[0]));
|
||||||
|
|
||||||
if (entry == null)
|
if (entry == null)
|
||||||
{
|
{
|
||||||
@ -39,7 +39,7 @@ public class Command_notes extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerData = plugin.pl.getData(entry.getName());
|
playerData = entry;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -116,8 +116,12 @@ public class Command_notes extends FreedomCommand
|
|||||||
msg("Cleared " + count + " notes.", ChatColor.GREEN);
|
msg("Cleared " + count + " notes.", ChatColor.GREEN);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package me.totalfreedom.totalfreedommod.command;
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.Punishment;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -56,11 +58,13 @@ public class Command_orbit extends FreedomCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
|
||||||
|
|
||||||
player.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
playerdata.startOrbiting(strength);
|
playerdata.startOrbiting(strength);
|
||||||
|
|
||||||
player.setVelocity(new Vector(0, strength, 0));
|
player.setVelocity(new Vector(0, strength, 0));
|
||||||
FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
|
|
||||||
|
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.ORBIT, null));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -29,6 +29,7 @@ public class Command_potion extends FreedomCommand
|
|||||||
switch (args.length)
|
switch (args.length)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
|
{
|
||||||
if (args[0].equalsIgnoreCase("list"))
|
if (args[0].equalsIgnoreCase("list"))
|
||||||
{
|
{
|
||||||
List<String> potionEffectTypeNames = new ArrayList<>();
|
List<String> potionEffectTypeNames = new ArrayList<>();
|
||||||
@ -58,8 +59,10 @@ public class Command_potion extends FreedomCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
{
|
||||||
if (args[0].equalsIgnoreCase("clear"))
|
if (args[0].equalsIgnoreCase("clear"))
|
||||||
{
|
{
|
||||||
Player target = playerSender;
|
Player target = playerSender;
|
||||||
@ -95,9 +98,11 @@ public class Command_potion extends FreedomCommand
|
|||||||
msg("Cleared all active potion effects " + (!target.equals(playerSender) ? "from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
|
msg("Cleared all active potion effects " + (!target.equals(playerSender) ? "from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
case 5:
|
case 5:
|
||||||
|
{
|
||||||
if (args[0].equalsIgnoreCase("add"))
|
if (args[0].equalsIgnoreCase("add"))
|
||||||
{
|
{
|
||||||
Player target = playerSender;
|
Player target = playerSender;
|
||||||
@ -167,8 +172,11 @@ public class Command_potion extends FreedomCommand
|
|||||||
+ (!target.equals(playerSender) ? " to player " + target.getName() + "." : " to yourself."), ChatColor.AQUA);
|
+ (!target.equals(playerSender) ? " to player " + target.getName() + "." : " to yourself."), ChatColor.AQUA);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -179,14 +187,17 @@ public class Command_potion extends FreedomCommand
|
|||||||
switch (args.length)
|
switch (args.length)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
|
{
|
||||||
List<String> arguments = new ArrayList<>(Arrays.asList("list", "clear", "add"));
|
List<String> arguments = new ArrayList<>(Arrays.asList("list", "clear", "add"));
|
||||||
if (plugin.al.isAdmin(sender))
|
if (plugin.al.isAdmin(sender))
|
||||||
{
|
{
|
||||||
arguments.add("clearall");
|
arguments.add("clearall");
|
||||||
}
|
}
|
||||||
return arguments;
|
return arguments;
|
||||||
|
}
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
{
|
||||||
if (args[0].equals("clear"))
|
if (args[0].equals("clear"))
|
||||||
{
|
{
|
||||||
if (plugin.al.isAdmin(sender))
|
if (plugin.al.isAdmin(sender))
|
||||||
@ -199,22 +210,28 @@ public class Command_potion extends FreedomCommand
|
|||||||
return getAllPotionTypes();
|
return getAllPotionTypes();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
|
{
|
||||||
if (args[0].equals("add"))
|
if (args[0].equals("add"))
|
||||||
{
|
{
|
||||||
return Collections.singletonList("<duration>");
|
return Collections.singletonList("<duration>");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
|
{
|
||||||
if (args[0].equals("add"))
|
if (args[0].equals("add"))
|
||||||
{
|
{
|
||||||
return Collections.singletonList("<amplifier>");
|
return Collections.singletonList("<amplifier>");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
|
{
|
||||||
if (plugin.al.isAdmin(sender))
|
if (plugin.al.isAdmin(sender))
|
||||||
{
|
{
|
||||||
if (args[0].equals("add"))
|
if (args[0].equals("add"))
|
||||||
@ -223,6 +240,12 @@ public class Command_potion extends FreedomCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
@ -5,6 +5,8 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.admin.Admin;
|
import me.totalfreedom.totalfreedommod.admin.Admin;
|
||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
import me.totalfreedom.totalfreedommod.discord.Discord;
|
import me.totalfreedom.totalfreedommod.discord.Discord;
|
||||||
@ -34,7 +36,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
{
|
{
|
||||||
case "list":
|
case "list":
|
||||||
{
|
{
|
||||||
msg("Admins: " + StringUtils.join(plugin.al.getAdminNames(), ", "), ChatColor.GOLD);
|
msg("Admins: " + StringUtils.join(plugin.al.getAdminUUIDs().stream().map(FUtil::getNameFromUUID).collect(Collectors.toList()), ", "), ChatColor.GOLD);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,7 +47,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
|
|
||||||
FUtil.adminAction(sender.getName(), "Cleaning the admin list", true);
|
FUtil.adminAction(sender.getName(), "Cleaning the admin list", true);
|
||||||
plugin.al.deactivateOldEntries(true);
|
plugin.al.deactivateOldEntries(true);
|
||||||
msg("Admins: " + StringUtils.join(plugin.al.getAdminNames(), ", "), ChatColor.GOLD);
|
msg("Admins: " + StringUtils.join(plugin.al.getAdminUUIDs().stream().map(FUtil::getNameFromUUID).collect(Collectors.toList()), ", "), ChatColor.GOLD);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -89,7 +91,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin admin = plugin.al.getEntryByName(args[1]);
|
Admin admin = plugin.al.getEntryByUUID(FUtil.getUUIDFromName(args[1]));
|
||||||
if (admin == null)
|
if (admin == null)
|
||||||
{
|
{
|
||||||
msg("Unknown admin: " + args[1]);
|
msg("Unknown admin: " + args[1]);
|
||||||
@ -109,7 +111,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
|
|
||||||
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
|
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
|
||||||
{
|
{
|
||||||
Discord.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID());
|
Discord.syncRoles(admin, plugin.pl.getData(admin.getUniqueId()).getDiscordID());
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin.ptero.updateAccountStatus(admin);
|
plugin.ptero.updateAccountStatus(admin);
|
||||||
@ -127,7 +129,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
|
|
||||||
checkRank(Rank.ADMIN);
|
checkRank(Rank.ADMIN);
|
||||||
|
|
||||||
Admin admin = plugin.al.getEntryByName(args[1]);
|
Admin admin = plugin.al.getEntryByUUID(FUtil.getUUIDFromName(args[1]));
|
||||||
|
|
||||||
if (admin == null)
|
if (admin == null)
|
||||||
{
|
{
|
||||||
@ -206,12 +208,12 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
{
|
{
|
||||||
FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the admin list", true);
|
FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the admin list", true);
|
||||||
|
|
||||||
String oldName = admin.getName();
|
/*String oldName = admin.getName();
|
||||||
if (!oldName.equals(player.getName()))
|
if (!oldName.equals(player.getName()))
|
||||||
{
|
{
|
||||||
admin.setName(player.getName());
|
admin.setName(player.getName());
|
||||||
plugin.sql.updateAdminName(oldName, admin.getName());
|
plugin.sql.updateAdminName(oldName, admin.getName());
|
||||||
}
|
}*/
|
||||||
admin.addIp(FUtil.getIp(player));
|
admin.addIp(FUtil.getIp(player));
|
||||||
|
|
||||||
admin.setActive(true);
|
admin.setActive(true);
|
||||||
@ -259,7 +261,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
checkRank(Rank.ADMIN);
|
checkRank(Rank.ADMIN);
|
||||||
|
|
||||||
Player player = getPlayer(args[1]);
|
Player player = getPlayer(args[1]);
|
||||||
Admin admin = player != null ? plugin.al.getAdmin(player) : plugin.al.getEntryByName(args[1]);
|
Admin admin = player != null ? plugin.al.getAdmin(player) : plugin.al.getEntryByUUID(FUtil.getUUIDFromName(args[1]));
|
||||||
|
|
||||||
if (admin == null)
|
if (admin == null)
|
||||||
{
|
{
|
||||||
@ -280,7 +282,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
|
|
||||||
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
|
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
|
||||||
{
|
{
|
||||||
Discord.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID());
|
Discord.syncRoles(admin, plugin.pl.getData(admin.getUniqueId()).getDiscordID());
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin.ptero.updateAccountStatus(admin);
|
plugin.ptero.updateAccountStatus(admin);
|
||||||
|
@ -0,0 +1,97 @@
|
|||||||
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
|
import net.md_5.bungee.api.chat.ClickEvent;
|
||||||
|
import net.md_5.bungee.api.chat.HoverEvent;
|
||||||
|
import net.md_5.bungee.api.chat.TextComponent;
|
||||||
|
import net.md_5.bungee.api.chat.TranslatableComponent;
|
||||||
|
import net.md_5.bungee.api.chat.hover.content.Text;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@CommandPermissions(level = Rank.NON_OP, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Get the seed of the world you are currently in.", usage = "/seed [world]")
|
||||||
|
public class Command_seed extends FreedomCommand
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
World world;
|
||||||
|
|
||||||
|
if (args.length > 0)
|
||||||
|
{
|
||||||
|
world = server.getWorld(args[0]);
|
||||||
|
if (world == null)
|
||||||
|
{
|
||||||
|
msg("That world could not be found", ChatColor.RED);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If the sender is a Player, use that world. Otherwise, use the overworld as a fallback.
|
||||||
|
if (!senderIsConsole)
|
||||||
|
{
|
||||||
|
world = playerSender.getWorld();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
world = server.getWorlds().get(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the sender is not a Player, use the usual msg method to
|
||||||
|
if (senderIsConsole)
|
||||||
|
{
|
||||||
|
msg("Seed: [" + ChatColor.GREEN + world.getSeed() + ChatColor.WHITE + "]", ChatColor.WHITE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Gets the seed for later uses
|
||||||
|
String seed = String.valueOf(world.getSeed());
|
||||||
|
|
||||||
|
// This is a really stupid hack to get things to play nicely, but it works so I don't give a damn
|
||||||
|
BaseComponent[] components = {new TranslatableComponent("chat.copy.click")};
|
||||||
|
TextComponent seedAsComponent = new TextComponent(seed);
|
||||||
|
|
||||||
|
// Style the message like in vanilla Minecraft.
|
||||||
|
seedAsComponent.setColor(ChatColor.GREEN.asBungee());
|
||||||
|
seedAsComponent.setClickEvent(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, seed));
|
||||||
|
seedAsComponent.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(components)));
|
||||||
|
|
||||||
|
// Enclose the seed with brackets
|
||||||
|
TextComponent seedString = new TextComponent("[");
|
||||||
|
seedString.addExtra(seedAsComponent);
|
||||||
|
seedString.addExtra("]");
|
||||||
|
|
||||||
|
// Send the message to the player.
|
||||||
|
TranslatableComponent response = new TranslatableComponent("commands.seed.success", seedString);
|
||||||
|
playerSender.spigot().sendMessage(response);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
|
||||||
|
{
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
// Returns a list of worlds on the server and returns it
|
||||||
|
List<String> worlds = new ArrayList<>();
|
||||||
|
for (World world : server.getWorlds())
|
||||||
|
{
|
||||||
|
worlds.add(world.getName());
|
||||||
|
}
|
||||||
|
return worlds;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,7 @@ package me.totalfreedom.totalfreedommod.command;
|
|||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -38,7 +39,7 @@ public class Command_settotalvotes extends FreedomCommand
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerData playerData = plugin.pl.getData(args[1]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[1]));
|
||||||
|
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
|
@ -105,6 +105,11 @@ public class Command_tag extends FreedomCommand
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args.length >= 2)
|
else if (args.length >= 2)
|
||||||
@ -279,6 +284,11 @@ public class Command_tag extends FreedomCommand
|
|||||||
msg("Tag set to '" + outputTag + ChatColor.GRAY + "'." + (save ? " (Saved)" : "") + from + to);
|
msg("Tag set to '" + outputTag + ChatColor.GRAY + "'." + (save ? " (Saved)" : "") + from + to);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -46,7 +46,7 @@ public class Command_tban extends FreedomCommand
|
|||||||
final PlayerData entry;
|
final PlayerData entry;
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
entry = plugin.pl.getData(args[0]);
|
entry = plugin.pl.getData(FUtil.getUUIDFromName(args[0]));
|
||||||
|
|
||||||
if (entry == null)
|
if (entry == null)
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@ public class Command_tempban extends FreedomCommand
|
|||||||
final PlayerData entry;
|
final PlayerData entry;
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
entry = plugin.pl.getData(args[0]);
|
entry = plugin.pl.getData(FUtil.getUUIDFromName(args[0]));
|
||||||
|
|
||||||
if (entry == null)
|
if (entry == null)
|
||||||
{
|
{
|
||||||
|
@ -16,6 +16,12 @@ import org.bukkit.entity.Player;
|
|||||||
@CommandParameters(description = "Toggles TotalFreedomMod settings", usage = "/<command> [option] [value] [value]")
|
@CommandParameters(description = "Toggles TotalFreedomMod settings", usage = "/<command> [option] [value] [value]")
|
||||||
public class Command_toggle extends FreedomCommand
|
public class Command_toggle extends FreedomCommand
|
||||||
{
|
{
|
||||||
|
private final List<String> toggles = Arrays.asList(
|
||||||
|
"waterplace", "fireplace", "lavaplace", "fluidspread", "lavadmg", "firespread", "frostwalk",
|
||||||
|
"firework", "prelog", "lockdown", "petprotect", "entitywipe", "nonuke [range] [count]",
|
||||||
|
"explosives [radius]", "unsafeenchs", "bells", "armorstands", "structureblocks", "jigsaws", "grindstones",
|
||||||
|
"jukeboxes", "spawners", "4chan", "beehives", "respawnanchors", "autotp", "autoclear", "minecarts", "mp44",
|
||||||
|
"landmines", "tossmob", "gravity");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
@ -23,38 +29,10 @@ public class Command_toggle extends FreedomCommand
|
|||||||
if (args.length == 0)
|
if (args.length == 0)
|
||||||
{
|
{
|
||||||
msg("Available toggles: ");
|
msg("Available toggles: ");
|
||||||
msg("- waterplace");
|
for (String toggle : toggles)
|
||||||
msg("- fireplace");
|
{
|
||||||
msg("- lavaplace");
|
msg("- " + toggle);
|
||||||
msg("- fluidspread");
|
}
|
||||||
msg("- lavadmg");
|
|
||||||
msg("- firespread");
|
|
||||||
msg("- frostwalk");
|
|
||||||
msg("- firework");
|
|
||||||
msg("- prelog");
|
|
||||||
msg("- lockdown");
|
|
||||||
msg("- petprotect");
|
|
||||||
msg("- entitywipe");
|
|
||||||
msg("- nonuke [range] [count]");
|
|
||||||
msg("- explosives [radius]");
|
|
||||||
msg("- unsafeenchs");
|
|
||||||
msg("- bells");
|
|
||||||
msg("- armorstands");
|
|
||||||
msg("- structureblocks");
|
|
||||||
msg("- jigsaws");
|
|
||||||
msg("- grindstones");
|
|
||||||
msg("- jukeboxes");
|
|
||||||
msg("- spawners");
|
|
||||||
msg("- 4chan");
|
|
||||||
msg("- beehives");
|
|
||||||
msg("- respawnanchors");
|
|
||||||
msg("- autotp");
|
|
||||||
msg("- autoclear");
|
|
||||||
msg("- minecarts");
|
|
||||||
msg("- landmines");
|
|
||||||
msg("- mp44");
|
|
||||||
msg("- tossmob");
|
|
||||||
msg("- gravity");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,6 +282,16 @@ public class Command_toggle extends FreedomCommand
|
|||||||
toggle("Block gravity is", ConfigEntry.ALLOW_GRAVITY);
|
toggle("Block gravity is", ConfigEntry.ALLOW_GRAVITY);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
msg("Available toggles: ");
|
||||||
|
for (String toggle : toggles)
|
||||||
|
{
|
||||||
|
msg("- " + toggle);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class Command_unban extends FreedomCommand
|
|||||||
if (args.length > 0)
|
if (args.length > 0)
|
||||||
{
|
{
|
||||||
String username;
|
String username;
|
||||||
final PlayerData entry = plugin.pl.getData(args[0]);
|
final PlayerData entry = plugin.pl.getData(FUtil.getUUIDFromName(args[0]));
|
||||||
|
|
||||||
if (entry == null)
|
if (entry == null)
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,7 @@ package me.totalfreedom.totalfreedommod.command;
|
|||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -23,7 +24,7 @@ public class Command_unlinkdiscord extends FreedomCommand
|
|||||||
|
|
||||||
if (args.length != 0 && plugin.al.isAdmin(playerSender))
|
if (args.length != 0 && plugin.al.isAdmin(playerSender))
|
||||||
{
|
{
|
||||||
PlayerData playerData = plugin.pl.getData(args[0]);
|
PlayerData playerData = plugin.pl.getData(FUtil.getUUIDFromName(args[0]));
|
||||||
if (playerData == null)
|
if (playerData == null)
|
||||||
{
|
{
|
||||||
msg(PLAYER_NOT_FOUND);
|
msg(PLAYER_NOT_FOUND);
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package me.totalfreedom.totalfreedommod.command;
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.Punishment;
|
||||||
|
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.apache.commons.lang.ArrayUtils;
|
import org.apache.commons.lang.ArrayUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -53,25 +56,28 @@ public class Command_warn extends FreedomCommand
|
|||||||
|
|
||||||
String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||||
player.sendTitle(ChatColor.RED + "You've been warned.", ChatColor.YELLOW + "Reason: " + warnReason, 20, 100, 60);
|
player.sendTitle(ChatColor.RED + "You've been warned.", ChatColor.YELLOW + "Reason: " + warnReason, 20, 100, 60);
|
||||||
msg(ChatColor.GREEN + "You have successfully warned " + player.getName());
|
msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason);
|
||||||
|
plugin.pl.getPlayer(player).incrementWarnings(quiet);
|
||||||
|
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.WARN, warnReason));
|
||||||
|
|
||||||
if (quiet)
|
if (quiet)
|
||||||
{
|
{
|
||||||
msg("Warned " + player.getName() + " quietly");
|
msg("You have successfully warned " + player.getName() + " quietly.");
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String adminNotice = ChatColor.RED +
|
||||||
|
sender.getName() +
|
||||||
|
" - " +
|
||||||
|
"Warning: " +
|
||||||
|
player.getName() +
|
||||||
|
" - Reason: " +
|
||||||
|
ChatColor.YELLOW +
|
||||||
|
warnReason;
|
||||||
|
plugin.al.messageAllAdmins(adminNotice);
|
||||||
|
|
||||||
msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason);
|
msg("You have successfully warned " + player.getName() + ".");
|
||||||
String adminNotice = ChatColor.RED +
|
}
|
||||||
sender.getName() +
|
|
||||||
" - " +
|
|
||||||
"Warning: " +
|
|
||||||
player.getName() +
|
|
||||||
" - Reason: " +
|
|
||||||
ChatColor.YELLOW +
|
|
||||||
warnReason;
|
|
||||||
plugin.al.messageAllAdmins(adminNotice);
|
|
||||||
plugin.pl.getPlayer(player).incrementWarnings();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -22,47 +22,46 @@ public class DiscordToMinecraftListener extends ListenerAdapter
|
|||||||
public void onMessageReceived(MessageReceivedEvent event)
|
public void onMessageReceived(MessageReceivedEvent event)
|
||||||
{
|
{
|
||||||
String chat_channel_id = ConfigEntry.DISCORD_CHAT_CHANNEL_ID.getString();
|
String chat_channel_id = ConfigEntry.DISCORD_CHAT_CHANNEL_ID.getString();
|
||||||
if (event.getMember() != null && !chat_channel_id.isEmpty()
|
if (event.getMember() != null && !chat_channel_id.isEmpty() && event.getChannel().getId().equals(chat_channel_id))
|
||||||
&& event.getChannel().getId().equals(chat_channel_id)
|
|
||||||
&& !event.getAuthor().getId().equals(Discord.bot.getSelfUser().getId()))
|
|
||||||
{
|
{
|
||||||
Member member = event.getMember();
|
if (!event.getAuthor().getId().equals(Discord.bot.getSelfUser().getId()))
|
||||||
String tag = getDisplay(member);
|
|
||||||
StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord"
|
|
||||||
+ ChatColor.DARK_GRAY + "]");
|
|
||||||
Message msg = event.getMessage();
|
|
||||||
if (tag != null)
|
|
||||||
{
|
{
|
||||||
message.append(" ").append(tag);
|
Member member = event.getMember();
|
||||||
}
|
String tag = getDisplay(member);
|
||||||
message.append(" ").append(ChatColor.RED).append(ChatColor.stripColor(member.getEffectiveName()))
|
StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord" + ChatColor.DARK_GRAY + "]");
|
||||||
.append(ChatColor.DARK_GRAY).append(":").append(ChatColor.RESET);
|
Message msg = event.getMessage();
|
||||||
ComponentBuilder builder = new ComponentBuilder(message.toString());
|
if (tag != null)
|
||||||
if (!msg.getContentDisplay().isEmpty())
|
|
||||||
{
|
|
||||||
builder.append(" ").append(ChatColor.stripColor(msg.getContentDisplay()));
|
|
||||||
message.append(" ").append(ChatColor.stripColor(msg.getContentDisplay())); // for logging
|
|
||||||
}
|
|
||||||
if (!msg.getAttachments().isEmpty())
|
|
||||||
{
|
|
||||||
for (Message.Attachment attachment : msg.getAttachments())
|
|
||||||
{
|
{
|
||||||
attachment.getUrl();
|
message.append(" ").append(tag);
|
||||||
builder.append(" ");
|
|
||||||
TextComponent text = new TextComponent(ChatColor.YELLOW + "[Media]");
|
|
||||||
text.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl()));
|
|
||||||
builder.append(text);
|
|
||||||
message.append(" [Media]"); // for logging
|
|
||||||
}
|
}
|
||||||
}
|
message.append(" ").append(ChatColor.RED).append(ChatColor.stripColor(member.getEffectiveName())).append(ChatColor.DARK_GRAY).append(":").append(ChatColor.RESET);
|
||||||
for (Player player : Bukkit.getOnlinePlayers())
|
ComponentBuilder builder = new ComponentBuilder(message.toString());
|
||||||
{
|
if (!msg.getContentDisplay().isEmpty())
|
||||||
if (TotalFreedomMod.getPlugin().pl.getData(player).doesDisplayDiscord())
|
|
||||||
{
|
{
|
||||||
player.spigot().sendMessage(builder.create());
|
builder.append(" ").append(ChatColor.stripColor(msg.getContentDisplay()));
|
||||||
|
message.append(" ").append(ChatColor.stripColor(msg.getContentDisplay())); // for logging
|
||||||
}
|
}
|
||||||
|
if (!msg.getAttachments().isEmpty())
|
||||||
|
{
|
||||||
|
for (Message.Attachment attachment : msg.getAttachments())
|
||||||
|
{
|
||||||
|
attachment.getUrl();
|
||||||
|
builder.append(" ");
|
||||||
|
TextComponent text = new TextComponent(ChatColor.YELLOW + "[Media]");
|
||||||
|
text.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl()));
|
||||||
|
builder.append(text);
|
||||||
|
message.append(" [Media]"); // for logging
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (TotalFreedomMod.getPlugin().pl.getData(player).doesDisplayDiscord())
|
||||||
|
{
|
||||||
|
player.spigot().sendMessage(builder.create());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FLog.info(message.toString());
|
||||||
}
|
}
|
||||||
FLog.info(message.toString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public class PrivateMessageListener extends ListenerAdapter
|
|||||||
player.setDiscordID(event.getMessage().getAuthor().getId());
|
player.setDiscordID(event.getMessage().getAuthor().getId());
|
||||||
player.setVerification(true);
|
player.setVerification(true);
|
||||||
|
|
||||||
Admin admin = TotalFreedomMod.getPlugin().al.getEntryByName(name);
|
Admin admin = TotalFreedomMod.getPlugin().al.getEntryByUUID(player.getUniqueId());
|
||||||
if (admin != null)
|
if (admin != null)
|
||||||
{
|
{
|
||||||
Discord.syncRoles(admin, player.getDiscordID());
|
Discord.syncRoles(admin, player.getDiscordID());
|
||||||
|
@ -128,7 +128,7 @@ public class ItemFun extends FreedomService
|
|||||||
|
|
||||||
LivingEntity livingEntity = (LivingEntity)event.getRightClicked();
|
LivingEntity livingEntity = (LivingEntity)event.getRightClicked();
|
||||||
EntityType entityType = livingEntity.getType();
|
EntityType entityType = livingEntity.getType();
|
||||||
if (!(entityType == fPlayer.mobThrowerCreature()))
|
if (entityType != fPlayer.mobThrowerCreature())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -304,6 +304,11 @@ public class ItemFun extends FreedomService
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ public class Landminer extends FreedomService
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(player.getLocation().distanceSquared(location) <= (landmine.radius * landmine.radius)))
|
if (player.getLocation().distanceSquared(location) > (landmine.radius * landmine.radius))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -79,11 +79,20 @@ public class Module_list extends HTTPDModule
|
|||||||
switch (admin.getRank())
|
switch (admin.getRank())
|
||||||
{
|
{
|
||||||
case ADMIN:
|
case ADMIN:
|
||||||
|
{
|
||||||
admins.add(player.getName());
|
admins.add(player.getName());
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case SENIOR_ADMIN:
|
case SENIOR_ADMIN:
|
||||||
|
{
|
||||||
senioradmins.add(player.getName());
|
senioradmins.add(player.getName());
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,11 +51,20 @@ public class Module_players extends HTTPDModule
|
|||||||
switch (admin.getRank())
|
switch (admin.getRank())
|
||||||
{
|
{
|
||||||
case ADMIN:
|
case ADMIN:
|
||||||
|
{
|
||||||
admins.add(username);
|
admins.add(username);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case SENIOR_ADMIN:
|
case SENIOR_ADMIN:
|
||||||
|
{
|
||||||
senioradmins.add(username);
|
senioradmins.add(username);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package me.totalfreedom.totalfreedommod.player;
|
package me.totalfreedom.totalfreedommod.player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||||
import me.totalfreedom.totalfreedommod.caging.CageData;
|
import me.totalfreedom.totalfreedommod.caging.CageData;
|
||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
@ -16,21 +14,24 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
public class FPlayer
|
import java.util.ArrayList;
|
||||||
{
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class FPlayer {
|
||||||
|
|
||||||
public static final long AUTO_PURGE_TICKS = 5L * 60L * 20L;
|
public static final long AUTO_PURGE_TICKS = 5L * 60L * 20L;
|
||||||
|
|
||||||
|
|
||||||
private final TotalFreedomMod plugin;
|
private final TotalFreedomMod plugin;
|
||||||
|
|
||||||
private final String name;
|
private final UUID uuid;
|
||||||
|
|
||||||
private final String ip;
|
|
||||||
//
|
//
|
||||||
private final FreezeData freezeData = new FreezeData(this);
|
private final FreezeData freezeData = new FreezeData(this);
|
||||||
private final CageData cageData = new CageData(this);
|
private final CageData cageData = new CageData(this);
|
||||||
private final List<LivingEntity> mobThrowerQueue = new ArrayList<>();
|
private final List<LivingEntity> mobThrowerQueue = new ArrayList<>();
|
||||||
private Player player;
|
private Player player;
|
||||||
|
private PlayerData playerData;
|
||||||
//
|
//
|
||||||
private BukkitTask unmuteTask;
|
private BukkitTask unmuteTask;
|
||||||
private double fuckoffRadius = 0;
|
private double fuckoffRadius = 0;
|
||||||
@ -69,643 +70,520 @@ public class FPlayer
|
|||||||
|
|
||||||
private boolean invSee = false;
|
private boolean invSee = false;
|
||||||
|
|
||||||
public FPlayer(TotalFreedomMod plugin, Player player)
|
|
||||||
{
|
public FPlayer(TotalFreedomMod plugin, Player player) {
|
||||||
this(plugin, player.getName(), FUtil.getIp(player));
|
this(plugin, player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private FPlayer(TotalFreedomMod plugin, String name, String ip)
|
private FPlayer(TotalFreedomMod plugin, UUID uuid) {
|
||||||
{
|
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.name = name;
|
this.uuid = uuid;
|
||||||
this.ip = ip;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static long getAutoPurgeTicks()
|
public static long getAutoPurgeTicks() {
|
||||||
{
|
|
||||||
return AUTO_PURGE_TICKS;
|
return AUTO_PURGE_TICKS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer()
|
public Player getPlayer() {
|
||||||
{
|
if (this.player == null) {
|
||||||
if (player != null && !player.isOnline())
|
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||||
{
|
if (onlinePlayer.getUniqueId().equals(this.uuid)) {
|
||||||
player = null;
|
this.player = onlinePlayer;
|
||||||
}
|
|
||||||
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
if (FUtil.getIp(onlinePlayer).equals(ip))
|
|
||||||
{
|
|
||||||
player = onlinePlayer;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return player;
|
return this.player;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlayer(Player player)
|
public void setPlayer(Player player) {
|
||||||
{
|
|
||||||
this.player = player;
|
this.player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOrbiting()
|
public boolean isOrbiting() {
|
||||||
{
|
|
||||||
return isOrbiting;
|
return isOrbiting;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOrbiting(boolean orbiting)
|
public void setOrbiting(boolean orbiting) {
|
||||||
{
|
|
||||||
isOrbiting = orbiting;
|
isOrbiting = orbiting;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startOrbiting(double strength)
|
public void startOrbiting(double strength) {
|
||||||
{
|
|
||||||
this.isOrbiting = true;
|
this.isOrbiting = true;
|
||||||
this.orbitStrength = strength;
|
this.orbitStrength = strength;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopOrbiting()
|
public void stopOrbiting() {
|
||||||
{
|
|
||||||
this.isOrbiting = false;
|
this.isOrbiting = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double orbitStrength()
|
public double orbitStrength() {
|
||||||
{
|
|
||||||
return orbitStrength;
|
return orbitStrength;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFuckOff()
|
public boolean isFuckOff() {
|
||||||
{
|
|
||||||
return fuckoffRadius > 0;
|
return fuckoffRadius > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFuckoff(double radius)
|
public void setFuckoff(double radius) {
|
||||||
{
|
|
||||||
this.fuckoffRadius = radius;
|
this.fuckoffRadius = radius;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disableFuckoff()
|
public void disableFuckoff() {
|
||||||
{
|
|
||||||
this.fuckoffRadius = 0;
|
this.fuckoffRadius = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetMsgCount()
|
public void resetMsgCount() {
|
||||||
{
|
|
||||||
this.messageCount = 0;
|
this.messageCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int incrementAndGetMsgCount()
|
public int incrementAndGetMsgCount() {
|
||||||
{
|
|
||||||
return this.messageCount++;
|
return this.messageCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int incrementAndGetBlockDestroyCount()
|
public int incrementAndGetBlockDestroyCount() {
|
||||||
{
|
|
||||||
return this.totalBlockDestroy++;
|
return this.totalBlockDestroy++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetBlockDestroyCount()
|
public void resetBlockDestroyCount() {
|
||||||
{
|
|
||||||
this.totalBlockDestroy = 0;
|
this.totalBlockDestroy = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int incrementAndGetBlockPlaceCount()
|
public int incrementAndGetBlockPlaceCount() {
|
||||||
{
|
|
||||||
return this.totalBlockPlace++;
|
return this.totalBlockPlace++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetBlockPlaceCount()
|
public void resetBlockPlaceCount() {
|
||||||
{
|
|
||||||
this.totalBlockPlace = 0;
|
this.totalBlockPlace = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int incrementAndGetFreecamDestroyCount()
|
public int incrementAndGetFreecamDestroyCount() {
|
||||||
{
|
|
||||||
return this.freecamDestroyCount++;
|
return this.freecamDestroyCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetFreecamDestroyCount()
|
public void resetFreecamDestroyCount() {
|
||||||
{
|
|
||||||
this.freecamDestroyCount = 0;
|
this.freecamDestroyCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int incrementAndGetFreecamPlaceCount()
|
public int incrementAndGetFreecamPlaceCount() {
|
||||||
{
|
|
||||||
return this.freecamPlaceCount++;
|
return this.freecamPlaceCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetFreecamPlaceCount()
|
public void resetFreecamPlaceCount() {
|
||||||
{
|
|
||||||
this.freecamPlaceCount = 0;
|
this.freecamPlaceCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enableMobThrower(EntityType mobThrowerCreature, double mobThrowerSpeed)
|
public void enableMobThrower(EntityType mobThrowerCreature, double mobThrowerSpeed) {
|
||||||
{
|
|
||||||
this.mobThrowerEnabled = true;
|
this.mobThrowerEnabled = true;
|
||||||
this.mobThrowerEntity = mobThrowerCreature;
|
this.mobThrowerEntity = mobThrowerCreature;
|
||||||
this.mobThrowerSpeed = mobThrowerSpeed;
|
this.mobThrowerSpeed = mobThrowerSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disableMobThrower()
|
public void disableMobThrower() {
|
||||||
{
|
|
||||||
this.mobThrowerEnabled = false;
|
this.mobThrowerEnabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityType mobThrowerCreature()
|
public EntityType mobThrowerCreature() {
|
||||||
{
|
|
||||||
return this.mobThrowerEntity;
|
return this.mobThrowerEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double mobThrowerSpeed()
|
public double mobThrowerSpeed() {
|
||||||
{
|
|
||||||
return this.mobThrowerSpeed;
|
return this.mobThrowerSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean mobThrowerEnabled()
|
public boolean mobThrowerEnabled() {
|
||||||
{
|
|
||||||
return this.mobThrowerEnabled;
|
return this.mobThrowerEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enqueueMob(LivingEntity mob)
|
public void enqueueMob(LivingEntity mob) {
|
||||||
{
|
|
||||||
mobThrowerQueue.add(mob);
|
mobThrowerQueue.add(mob);
|
||||||
if (mobThrowerQueue.size() > 4)
|
if (mobThrowerQueue.size() > 4) {
|
||||||
{
|
|
||||||
LivingEntity oldmob = mobThrowerQueue.remove(0);
|
LivingEntity oldmob = mobThrowerQueue.remove(0);
|
||||||
if (oldmob != null)
|
if (oldmob != null) {
|
||||||
{
|
|
||||||
oldmob.damage(500.0);
|
oldmob.damage(500.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startArrowShooter(TotalFreedomMod plugin)
|
public void startArrowShooter(TotalFreedomMod plugin) {
|
||||||
{
|
|
||||||
this.stopArrowShooter();
|
this.stopArrowShooter();
|
||||||
this.mp44ScheduleTask = new ArrowShooter(this.player).runTaskTimer(plugin, 1L, 1L);
|
this.mp44ScheduleTask = new ArrowShooter(getPlayer()).runTaskTimer(plugin, 1L, 1L);
|
||||||
this.mp44Firing = true;
|
this.mp44Firing = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopArrowShooter()
|
public void stopArrowShooter() {
|
||||||
{
|
if (this.mp44ScheduleTask != null) {
|
||||||
if (this.mp44ScheduleTask != null)
|
|
||||||
{
|
|
||||||
this.mp44ScheduleTask.cancel();
|
this.mp44ScheduleTask.cancel();
|
||||||
this.mp44ScheduleTask = null;
|
this.mp44ScheduleTask = null;
|
||||||
}
|
}
|
||||||
this.mp44Firing = false;
|
this.mp44Firing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void armMP44()
|
public void armMP44() {
|
||||||
{
|
|
||||||
this.mp44Armed = true;
|
this.mp44Armed = true;
|
||||||
this.stopArrowShooter();
|
this.stopArrowShooter();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disarmMP44()
|
public void disarmMP44() {
|
||||||
{
|
|
||||||
this.mp44Armed = false;
|
this.mp44Armed = false;
|
||||||
this.stopArrowShooter();
|
this.stopArrowShooter();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMP44Armed()
|
public boolean isMP44Armed() {
|
||||||
{
|
|
||||||
return this.mp44Armed;
|
return this.mp44Armed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean toggleMP44Firing()
|
public boolean toggleMP44Firing() {
|
||||||
{
|
|
||||||
this.mp44Firing = !this.mp44Firing;
|
this.mp44Firing = !this.mp44Firing;
|
||||||
return mp44Firing;
|
return mp44Firing;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMuted()
|
public boolean isMuted() {
|
||||||
{
|
|
||||||
return unmuteTask != null;
|
return unmuteTask != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMuted(boolean muted, int minutes)
|
public void setMuted(boolean muted, int minutes) {
|
||||||
{
|
|
||||||
FUtil.cancel(unmuteTask);
|
FUtil.cancel(unmuteTask);
|
||||||
plugin.mu.MUTED_PLAYERS.remove(getPlayer().getName());
|
plugin.mu.MUTED_PLAYERS.remove(getPlayer().getUniqueId());
|
||||||
unmuteTask = null;
|
unmuteTask = null;
|
||||||
|
|
||||||
if (!muted)
|
if (!muted) {
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getPlayer() == null)
|
if (getPlayer() == null) {
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin.mu.MUTED_PLAYERS.add(getPlayer().getName());
|
plugin.mu.MUTED_PLAYERS.add(getPlayer().getUniqueId());
|
||||||
|
|
||||||
// TODO: Simplify this into a Consumer<BukkitTask> lambda?
|
// TODO: Simplify this into a Consumer<BukkitTask> lambda?
|
||||||
unmuteTask = new BukkitRunnable()
|
unmuteTask = new BukkitRunnable() {
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run() {
|
||||||
{
|
if (getPlayer() != null) {
|
||||||
if (getPlayer() != null)
|
|
||||||
{
|
|
||||||
FUtil.adminAction(ConfigEntry.SERVER_NAME.getString(), "Unmuting " + getPlayer().getName(), false);
|
FUtil.adminAction(ConfigEntry.SERVER_NAME.getString(), "Unmuting " + getPlayer().getName(), false);
|
||||||
setMuted(false);
|
setMuted(false);
|
||||||
}
|
} else {
|
||||||
else
|
FUtil.adminAction(ConfigEntry.SERVER_NAME.getString(), "Unmuting " + Bukkit.getOfflinePlayer(uuid).getName(), false);
|
||||||
{
|
plugin.mu.MUTED_PLAYERS.remove(uuid);
|
||||||
FUtil.adminAction(ConfigEntry.SERVER_NAME.getString(), "Unmuting " + getName(), false);
|
|
||||||
plugin.mu.MUTED_PLAYERS.remove(getName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskLater(plugin, minutes * (60L * 20L));
|
}.runTaskLater(plugin, minutes * (60L * 20L));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMuted(boolean muted)
|
public void setMuted(boolean muted) {
|
||||||
{
|
|
||||||
setMuted(muted, 5);
|
setMuted(muted, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BukkitTask getLockupScheduleID()
|
public BukkitTask getLockupScheduleID() {
|
||||||
{
|
|
||||||
return this.lockupScheduleTask;
|
return this.lockupScheduleTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLockupScheduleId(BukkitTask id)
|
public void setLockupScheduleId(BukkitTask id) {
|
||||||
{
|
|
||||||
this.lockupScheduleTask = id;
|
this.lockupScheduleTask = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isLockedUp()
|
public boolean isLockedUp() {
|
||||||
{
|
|
||||||
return this.lockedUp;
|
return this.lockedUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLockedUp(boolean lockedUp)
|
public void setLockedUp(boolean lockedUp) {
|
||||||
{
|
|
||||||
this.lockedUp = lockedUp;
|
this.lockedUp = lockedUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLastMessage()
|
public String getLastMessage() {
|
||||||
{
|
|
||||||
return lastMessage;
|
return lastMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLastMessage(String message)
|
public void setLastMessage(String message) {
|
||||||
{
|
|
||||||
this.lastMessage = message;
|
this.lastMessage = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAdminChat(boolean inAdminchat)
|
public void setAdminChat(boolean inAdminchat) {
|
||||||
{
|
|
||||||
this.inAdminchat = inAdminchat;
|
this.inAdminchat = inAdminchat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean inAdminChat()
|
public boolean inAdminChat() {
|
||||||
{
|
|
||||||
return this.inAdminchat;
|
return this.inAdminchat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean allCommandsBlocked()
|
public boolean allCommandsBlocked() {
|
||||||
{
|
|
||||||
return this.allCommandsBlocked;
|
return this.allCommandsBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCommandsBlocked(boolean commandsBlocked)
|
public void setCommandsBlocked(boolean commandsBlocked) {
|
||||||
{
|
|
||||||
this.allCommandsBlocked = commandsBlocked;
|
this.allCommandsBlocked = commandsBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLastCommand()
|
public String getLastCommand() {
|
||||||
{
|
|
||||||
return lastCommand;
|
return lastCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLastCommand(String lastCommand)
|
public void setLastCommand(String lastCommand) {
|
||||||
{
|
|
||||||
this.lastCommand = lastCommand;
|
this.lastCommand = lastCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCommandSpy(boolean enabled)
|
public void setCommandSpy(boolean enabled) {
|
||||||
{
|
|
||||||
this.cmdspyEnabled = enabled;
|
this.cmdspyEnabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean cmdspyEnabled()
|
public boolean cmdspyEnabled() {
|
||||||
{
|
|
||||||
return cmdspyEnabled;
|
return cmdspyEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTag()
|
public String getTag() {
|
||||||
{
|
|
||||||
return this.tag;
|
return this.tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTag(String tag)
|
public void setTag(String tag) {
|
||||||
{
|
if (tag == null) {
|
||||||
if (tag == null)
|
|
||||||
{
|
|
||||||
this.tag = null;
|
this.tag = null;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
this.tag = FUtil.colorize(tag) + ChatColor.WHITE;
|
this.tag = FUtil.colorize(tag) + ChatColor.WHITE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getWarningCount()
|
public int getWarningCount() {
|
||||||
{
|
|
||||||
return this.warningCount;
|
return this.warningCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setWarningCount(int warningCount)
|
public void setWarningCount(int warningCount) {
|
||||||
{
|
|
||||||
this.warningCount = warningCount;
|
this.warningCount = warningCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void incrementWarnings()
|
public void incrementWarnings(boolean quiet) {
|
||||||
{
|
|
||||||
this.warningCount++;
|
this.warningCount++;
|
||||||
|
|
||||||
if (this.warningCount % 2 == 0)
|
if (this.warningCount % 2 == 0) {
|
||||||
{
|
|
||||||
Player p = getPlayer();
|
Player p = getPlayer();
|
||||||
p.getWorld().strikeLightning(p.getLocation());
|
|
||||||
|
if (!quiet) {
|
||||||
|
p.getWorld().strikeLightning(p.getLocation());
|
||||||
|
}
|
||||||
|
|
||||||
FUtil.playerMsg(p, ChatColor.RED + "You have been warned at least twice now, make sure to read the rules at " + ConfigEntry.SERVER_BAN_URL.getString());
|
FUtil.playerMsg(p, ChatColor.RED + "You have been warned at least twice now, make sure to read the rules at " + ConfigEntry.SERVER_BAN_URL.getString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public TotalFreedomMod getPlugin()
|
public TotalFreedomMod getPlugin() {
|
||||||
{
|
|
||||||
return plugin;
|
return plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName()
|
public UUID getUniqueId() {
|
||||||
{
|
return uuid;
|
||||||
return name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIp()
|
public PlayerData getPlayerData() {
|
||||||
{
|
return playerData;
|
||||||
return ip;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public BukkitTask getUnmuteTask()
|
public BukkitTask getUnmuteTask() {
|
||||||
{
|
|
||||||
return unmuteTask;
|
return unmuteTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUnmuteTask(BukkitTask unmuteTask)
|
public void setUnmuteTask(BukkitTask unmuteTask) {
|
||||||
{
|
|
||||||
this.unmuteTask = unmuteTask;
|
this.unmuteTask = unmuteTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FreezeData getFreezeData()
|
public FreezeData getFreezeData() {
|
||||||
{
|
|
||||||
return freezeData;
|
return freezeData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getFuckoffRadius()
|
public double getFuckoffRadius() {
|
||||||
{
|
|
||||||
return fuckoffRadius;
|
return fuckoffRadius;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFuckoffRadius(double fuckoffRadius)
|
public void setFuckoffRadius(double fuckoffRadius) {
|
||||||
{
|
|
||||||
this.fuckoffRadius = fuckoffRadius;
|
this.fuckoffRadius = fuckoffRadius;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMessageCount()
|
public int getMessageCount() {
|
||||||
{
|
|
||||||
return messageCount;
|
return messageCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMessageCount(int messageCount)
|
public void setMessageCount(int messageCount) {
|
||||||
{
|
|
||||||
this.messageCount = messageCount;
|
this.messageCount = messageCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getTotalBlockDestroy()
|
public int getTotalBlockDestroy() {
|
||||||
{
|
|
||||||
return totalBlockDestroy;
|
return totalBlockDestroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTotalBlockDestroy(int totalBlockDestroy)
|
public void setTotalBlockDestroy(int totalBlockDestroy) {
|
||||||
{
|
|
||||||
this.totalBlockDestroy = totalBlockDestroy;
|
this.totalBlockDestroy = totalBlockDestroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getTotalBlockPlace()
|
public int getTotalBlockPlace() {
|
||||||
{
|
|
||||||
return totalBlockPlace;
|
return totalBlockPlace;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTotalBlockPlace(int totalBlockPlace)
|
public void setTotalBlockPlace(int totalBlockPlace) {
|
||||||
{
|
|
||||||
this.totalBlockPlace = totalBlockPlace;
|
this.totalBlockPlace = totalBlockPlace;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getFreecamDestroyCount()
|
public int getFreecamDestroyCount() {
|
||||||
{
|
|
||||||
return freecamDestroyCount;
|
return freecamDestroyCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFreecamDestroyCount(int freecamDestroyCount)
|
public void setFreecamDestroyCount(int freecamDestroyCount) {
|
||||||
{
|
|
||||||
this.freecamDestroyCount = freecamDestroyCount;
|
this.freecamDestroyCount = freecamDestroyCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getFreecamPlaceCount()
|
public int getFreecamPlaceCount() {
|
||||||
{
|
|
||||||
return freecamPlaceCount;
|
return freecamPlaceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFreecamPlaceCount(int freecamPlaceCount)
|
public void setFreecamPlaceCount(int freecamPlaceCount) {
|
||||||
{
|
|
||||||
this.freecamPlaceCount = freecamPlaceCount;
|
this.freecamPlaceCount = freecamPlaceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CageData getCageData()
|
public CageData getCageData() {
|
||||||
{
|
|
||||||
return cageData;
|
return cageData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getOrbitStrength()
|
public double getOrbitStrength() {
|
||||||
{
|
|
||||||
return orbitStrength;
|
return orbitStrength;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOrbitStrength(double orbitStrength)
|
public void setOrbitStrength(double orbitStrength) {
|
||||||
{
|
|
||||||
this.orbitStrength = orbitStrength;
|
this.orbitStrength = orbitStrength;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMobThrowerEnabled()
|
public boolean isMobThrowerEnabled() {
|
||||||
{
|
|
||||||
return mobThrowerEnabled;
|
return mobThrowerEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMobThrowerEnabled(boolean mobThrowerEnabled)
|
public void setMobThrowerEnabled(boolean mobThrowerEnabled) {
|
||||||
{
|
|
||||||
this.mobThrowerEnabled = mobThrowerEnabled;
|
this.mobThrowerEnabled = mobThrowerEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityType getMobThrowerEntity()
|
public EntityType getMobThrowerEntity() {
|
||||||
{
|
|
||||||
return mobThrowerEntity;
|
return mobThrowerEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMobThrowerEntity(EntityType mobThrowerEntity)
|
public void setMobThrowerEntity(EntityType mobThrowerEntity) {
|
||||||
{
|
|
||||||
this.mobThrowerEntity = mobThrowerEntity;
|
this.mobThrowerEntity = mobThrowerEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getMobThrowerSpeed()
|
public double getMobThrowerSpeed() {
|
||||||
{
|
|
||||||
return mobThrowerSpeed;
|
return mobThrowerSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMobThrowerSpeed(double mobThrowerSpeed)
|
public void setPlayerData(PlayerData playerData) {
|
||||||
{
|
this.playerData = playerData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMobThrowerSpeed(double mobThrowerSpeed) {
|
||||||
this.mobThrowerSpeed = mobThrowerSpeed;
|
this.mobThrowerSpeed = mobThrowerSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<LivingEntity> getMobThrowerQueue()
|
public List<LivingEntity> getMobThrowerQueue() {
|
||||||
{
|
|
||||||
return mobThrowerQueue;
|
return mobThrowerQueue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BukkitTask getMp44ScheduleTask()
|
public BukkitTask getMp44ScheduleTask() {
|
||||||
{
|
|
||||||
return mp44ScheduleTask;
|
return mp44ScheduleTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMp44ScheduleTask(BukkitTask mp44ScheduleTask)
|
public void setMp44ScheduleTask(BukkitTask mp44ScheduleTask) {
|
||||||
{
|
|
||||||
this.mp44ScheduleTask = mp44ScheduleTask;
|
this.mp44ScheduleTask = mp44ScheduleTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMp44Armed()
|
public boolean isMp44Armed() {
|
||||||
{
|
|
||||||
return mp44Armed;
|
return mp44Armed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMp44Armed(boolean mp44Armed)
|
public void setMp44Armed(boolean mp44Armed) {
|
||||||
{
|
|
||||||
this.mp44Armed = mp44Armed;
|
this.mp44Armed = mp44Armed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMp44Firing()
|
public boolean isMp44Firing() {
|
||||||
{
|
|
||||||
return mp44Firing;
|
return mp44Firing;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMp44Firing(boolean mp44Firing)
|
public void setMp44Firing(boolean mp44Firing) {
|
||||||
{
|
|
||||||
this.mp44Firing = mp44Firing;
|
this.mp44Firing = mp44Firing;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BukkitTask getLockupScheduleTask()
|
public BukkitTask getLockupScheduleTask() {
|
||||||
{
|
|
||||||
return lockupScheduleTask;
|
return lockupScheduleTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLockupScheduleTask(BukkitTask lockupScheduleTask)
|
public void setLockupScheduleTask(BukkitTask lockupScheduleTask) {
|
||||||
{
|
|
||||||
this.lockupScheduleTask = lockupScheduleTask;
|
this.lockupScheduleTask = lockupScheduleTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInAdminchat()
|
public boolean isInAdminchat() {
|
||||||
{
|
|
||||||
return inAdminchat;
|
return inAdminchat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setInAdminchat(boolean inAdminchat)
|
public void setInAdminchat(boolean inAdminchat) {
|
||||||
{
|
|
||||||
this.inAdminchat = inAdminchat;
|
this.inAdminchat = inAdminchat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAllCommandsBlocked()
|
public boolean isAllCommandsBlocked() {
|
||||||
{
|
|
||||||
return allCommandsBlocked;
|
return allCommandsBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAllCommandsBlocked(boolean allCommandsBlocked)
|
public void setAllCommandsBlocked(boolean allCommandsBlocked) {
|
||||||
{
|
|
||||||
this.allCommandsBlocked = allCommandsBlocked;
|
this.allCommandsBlocked = allCommandsBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSuperadminIdVerified()
|
public boolean isSuperadminIdVerified() {
|
||||||
{
|
|
||||||
return superadminIdVerified;
|
return superadminIdVerified;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSuperadminIdVerified(boolean superadminIdVerified)
|
public void setSuperadminIdVerified(boolean superadminIdVerified) {
|
||||||
{
|
|
||||||
this.superadminIdVerified = superadminIdVerified;
|
this.superadminIdVerified = superadminIdVerified;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCmdspyEnabled()
|
public boolean isCmdspyEnabled() {
|
||||||
{
|
|
||||||
return cmdspyEnabled;
|
return cmdspyEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCmdspyEnabled(boolean cmdspyEnabled)
|
public void setCmdspyEnabled(boolean cmdspyEnabled) {
|
||||||
{
|
|
||||||
this.cmdspyEnabled = cmdspyEnabled;
|
this.cmdspyEnabled = cmdspyEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEditBlocked()
|
public boolean isEditBlocked() {
|
||||||
{
|
|
||||||
return editBlocked;
|
return editBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEditBlocked(boolean editBlocked)
|
public void setEditBlocked(boolean editBlocked) {
|
||||||
{
|
|
||||||
this.editBlocked = editBlocked;
|
this.editBlocked = editBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPvpBlocked()
|
public boolean isPvpBlocked() {
|
||||||
{
|
|
||||||
return pvpBlocked;
|
return pvpBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPvpBlocked(boolean pvpBlocked)
|
public void setPvpBlocked(boolean pvpBlocked) {
|
||||||
{
|
|
||||||
this.pvpBlocked = pvpBlocked;
|
this.pvpBlocked = pvpBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInvSee()
|
public boolean isInvSee() {
|
||||||
{
|
|
||||||
return invSee;
|
return invSee;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setInvSee(boolean invSee)
|
public void setInvSee(boolean invSee) {
|
||||||
{
|
|
||||||
this.invSee = invSee;
|
this.invSee = invSee;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ArrowShooter extends BukkitRunnable
|
private static class ArrowShooter extends BukkitRunnable {
|
||||||
{
|
|
||||||
|
|
||||||
private final Player player;
|
private final Player player;
|
||||||
|
|
||||||
private ArrowShooter(Player player)
|
private ArrowShooter(Player player) {
|
||||||
{
|
|
||||||
this.player = player;
|
this.player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run() {
|
||||||
{
|
if (player != null) {
|
||||||
Arrow shot = player.launchProjectile(Arrow.class);
|
Arrow shot = player.launchProjectile(Arrow.class);
|
||||||
shot.setVelocity(shot.getVelocity().multiply(2.0));
|
shot.setVelocity(shot.getVelocity().multiply(2.0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,10 +3,8 @@ package me.totalfreedom.totalfreedommod.player;
|
|||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Collections;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||||
import me.totalfreedom.totalfreedommod.shop.ShopItem;
|
import me.totalfreedom.totalfreedommod.shop.ShopItem;
|
||||||
import me.totalfreedom.totalfreedommod.util.FLog;
|
import me.totalfreedom.totalfreedommod.util.FLog;
|
||||||
@ -20,7 +18,7 @@ public class PlayerData
|
|||||||
private final List<String> ips = Lists.newArrayList();
|
private final List<String> ips = Lists.newArrayList();
|
||||||
private final List<String> notes = Lists.newArrayList();
|
private final List<String> notes = Lists.newArrayList();
|
||||||
private final List<String> backupCodes = Lists.newArrayList();
|
private final List<String> backupCodes = Lists.newArrayList();
|
||||||
private String name;
|
private UUID uuid;
|
||||||
private String tag = null;
|
private String tag = null;
|
||||||
private String discordID = null;
|
private String discordID = null;
|
||||||
private Boolean masterBuilder = false;
|
private Boolean masterBuilder = false;
|
||||||
@ -48,7 +46,7 @@ public class PlayerData
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
name = resultSet.getString("username");
|
uuid = UUID.fromString(resultSet.getString("uuid"));
|
||||||
ips.clear();
|
ips.clear();
|
||||||
ips.addAll(FUtil.stringToList(resultSet.getString("ips")));
|
ips.addAll(FUtil.stringToList(resultSet.getString("ips")));
|
||||||
notes.clear();
|
notes.clear();
|
||||||
@ -88,14 +86,13 @@ public class PlayerData
|
|||||||
|
|
||||||
public PlayerData(Player player)
|
public PlayerData(Player player)
|
||||||
{
|
{
|
||||||
this.name = player.getName();
|
this.uuid = player.getUniqueId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
|
return "Player: " + uuid.toString() + "\n" +
|
||||||
return "Player: " + name + "\n" +
|
|
||||||
"- IPs: " + StringUtils.join(ips, ", ") + "\n" +
|
"- IPs: " + StringUtils.join(ips, ", ") + "\n" +
|
||||||
"- Discord ID: " + discordID + "\n" +
|
"- Discord ID: " + discordID + "\n" +
|
||||||
"- Master Builder: " + masterBuilder + "\n" +
|
"- Master Builder: " + masterBuilder + "\n" +
|
||||||
@ -232,7 +229,7 @@ public class PlayerData
|
|||||||
{
|
{
|
||||||
return new HashMap<String, Object>()
|
return new HashMap<String, Object>()
|
||||||
{{
|
{{
|
||||||
put("username", name);
|
put("uuid", uuid);
|
||||||
put("ips", FUtil.listToString(ips));
|
put("ips", FUtil.listToString(ips));
|
||||||
put("notes", FUtil.listToString(notes));
|
put("notes", FUtil.listToString(notes));
|
||||||
put("tag", tag);
|
put("tag", tag);
|
||||||
@ -255,14 +252,14 @@ public class PlayerData
|
|||||||
return displayDiscord;
|
return displayDiscord;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName()
|
public UUID getUniqueId()
|
||||||
{
|
{
|
||||||
return name;
|
return uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name)
|
public void setUniqueId(UUID uuid)
|
||||||
{
|
{
|
||||||
this.name = name;
|
this.uuid = uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTag()
|
public String getTag()
|
||||||
@ -364,4 +361,9 @@ public class PlayerData
|
|||||||
{
|
{
|
||||||
this.inspect = inspect;
|
this.inspect = inspect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return FUtil.getNameFromUUID(uuid);
|
||||||
|
}
|
||||||
}
|
}
|
@ -3,11 +3,9 @@ package me.totalfreedom.totalfreedommod.player;
|
|||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
import java.util.stream.Collectors;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import me.totalfreedom.totalfreedommod.FreedomService;
|
import me.totalfreedom.totalfreedommod.FreedomService;
|
||||||
import me.totalfreedom.totalfreedommod.admin.Admin;
|
import me.totalfreedom.totalfreedommod.admin.Admin;
|
||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
@ -20,13 +18,12 @@ import org.bukkit.entity.Player;
|
|||||||
public class PlayerList extends FreedomService
|
public class PlayerList extends FreedomService
|
||||||
{
|
{
|
||||||
|
|
||||||
public final Map<String, FPlayer> playerMap = Maps.newHashMap(); // ip,dataMap
|
public final Map<UUID, FPlayer> playerMap = Maps.newHashMap(); // uuid,dataMap
|
||||||
public final Map<String, PlayerData> dataMap = Maps.newHashMap(); // username, data
|
//public final Map<String, PlayerData> dataMap = Maps.newHashMap(); // username, data
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart()
|
public void onStart()
|
||||||
{
|
{
|
||||||
dataMap.clear();
|
|
||||||
loadMasterBuilders();
|
loadMasterBuilders();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +54,6 @@ public class PlayerList extends FreedomService
|
|||||||
while (resultSet.next())
|
while (resultSet.next())
|
||||||
{
|
{
|
||||||
PlayerData playerData = load(resultSet);
|
PlayerData playerData = load(resultSet);
|
||||||
dataMap.put(playerData.getName(), playerData);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
@ -73,27 +69,20 @@ public class PlayerList extends FreedomService
|
|||||||
return FUtil.getIp(Objects.requireNonNull(player.getPlayer()));
|
return FUtil.getIp(Objects.requireNonNull(player.getPlayer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
final PlayerData entry = getData(player.getName());
|
final PlayerData entry = getData(player.getUniqueId());
|
||||||
|
|
||||||
return (entry == null ? null : entry.getIps().iterator().next());
|
return (entry == null ? null : entry.getIps().iterator().next());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getMasterBuilderNames()
|
public List<String> getMasterBuilderNames()
|
||||||
{
|
{
|
||||||
List<String> masterBuilders = new ArrayList<>();
|
return playerMap.values().stream().map(FPlayer::getPlayerData).filter(PlayerData::isMasterBuilder).map(p -> FUtil.getNameFromUUID(p.getUniqueId())).collect(Collectors.toList());
|
||||||
for (PlayerData playerData : plugin.pl.dataMap.values())
|
|
||||||
{
|
|
||||||
if (playerData.isMasterBuilder())
|
|
||||||
{
|
|
||||||
masterBuilders.add(playerData.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return masterBuilders;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canManageMasterBuilders(String name)
|
public boolean canManageMasterBuilders(UUID uuid)
|
||||||
{
|
{
|
||||||
PlayerData data = getData(name);
|
PlayerData data = getData(uuid);
|
||||||
|
String name = FUtil.getNameFromUUID(uuid);
|
||||||
|
|
||||||
return (!ConfigEntry.HOST_SENDER_NAMES.getStringList().contains(name.toLowerCase()) && data != null && !ConfigEntry.SERVER_OWNERS.getStringList().contains(data.getName()))
|
return (!ConfigEntry.HOST_SENDER_NAMES.getStringList().contains(name.toLowerCase()) && data != null && !ConfigEntry.SERVER_OWNERS.getStringList().contains(data.getName()))
|
||||||
&& !ConfigEntry.SERVER_EXECUTIVES.getStringList().contains(data.getName())
|
&& !ConfigEntry.SERVER_EXECUTIVES.getStringList().contains(data.getName())
|
||||||
@ -103,31 +92,41 @@ public class PlayerList extends FreedomService
|
|||||||
|
|
||||||
public boolean isTelnetMasterBuilder(PlayerData playerData)
|
public boolean isTelnetMasterBuilder(PlayerData playerData)
|
||||||
{
|
{
|
||||||
Admin admin = plugin.al.getEntryByName(playerData.getName());
|
Admin admin = plugin.al.getEntryByUUID(playerData.getUniqueId());
|
||||||
return admin != null && admin.getRank().isAtLeast(Rank.ADMIN) && playerData.isMasterBuilder();
|
return admin != null && admin.getRank().isAtLeast(Rank.ADMIN) && playerData.isMasterBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
// May not return null
|
// May not return null
|
||||||
public FPlayer getPlayer(Player player)
|
public FPlayer getPlayer(Player player)
|
||||||
{
|
{
|
||||||
FPlayer tPlayer = playerMap.get(FUtil.getIp(player));
|
FPlayer tPlayer = playerMap.get(player.getUniqueId());
|
||||||
if (tPlayer != null)
|
if (tPlayer != null)
|
||||||
{
|
{
|
||||||
return tPlayer;
|
return tPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
tPlayer = new FPlayer(plugin, player);
|
tPlayer = new FPlayer(plugin, player);
|
||||||
playerMap.put(FUtil.getIp(player), tPlayer);
|
playerMap.put(player.getUniqueId(), tPlayer);
|
||||||
|
|
||||||
return tPlayer;
|
return tPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData loadByName(String name)
|
/*public PlayerData loadByName(String name)
|
||||||
{
|
{
|
||||||
return load(plugin.sql.getPlayerByName(name));
|
return load(plugin.sql.getPlayerByName(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData loadByIp(String ip)
|
public PlayerData loadByIp(String ip)
|
||||||
|
{
|
||||||
|
return load(plugin.sql.getPlayerByIp(ip));
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public PlayerData loadByUUID(UUID uuid)
|
||||||
|
{
|
||||||
|
return load(plugin.sql.getPlayerByUUID(uuid));
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlayerData loadByIp(String ip)
|
||||||
{
|
{
|
||||||
return load(plugin.sql.getPlayerByIp(ip));
|
return load(plugin.sql.getPlayerByIp(ip));
|
||||||
}
|
}
|
||||||
@ -168,7 +167,7 @@ public class PlayerList extends FreedomService
|
|||||||
|
|
||||||
if (plugin.al.isAdminImpostor(player))
|
if (plugin.al.isAdminImpostor(player))
|
||||||
{
|
{
|
||||||
Admin admin = plugin.al.getEntryByName(player.getName());
|
Admin admin = plugin.al.getEntryByUUID(player.getUniqueId());
|
||||||
admin.setLastLogin(new Date());
|
admin.setLastLogin(new Date());
|
||||||
admin.addIp(FUtil.getIp(player));
|
admin.addIp(FUtil.getIp(player));
|
||||||
plugin.al.updateTables();
|
plugin.al.updateTables();
|
||||||
@ -180,7 +179,7 @@ public class PlayerList extends FreedomService
|
|||||||
|
|
||||||
public void syncIps(Admin admin)
|
public void syncIps(Admin admin)
|
||||||
{
|
{
|
||||||
PlayerData playerData = getData(admin.getName());
|
PlayerData playerData = getData(admin.getUniqueId());
|
||||||
playerData.clearIps();
|
playerData.clearIps();
|
||||||
playerData.addIps(admin.getIps());
|
playerData.addIps(admin.getIps());
|
||||||
plugin.pl.save(playerData);
|
plugin.pl.save(playerData);
|
||||||
@ -188,7 +187,7 @@ public class PlayerList extends FreedomService
|
|||||||
|
|
||||||
public void syncIps(PlayerData playerData)
|
public void syncIps(PlayerData playerData)
|
||||||
{
|
{
|
||||||
Admin admin = plugin.al.getEntryByName(playerData.getName());
|
Admin admin = plugin.al.getEntryByUUID(playerData.getUniqueId());
|
||||||
|
|
||||||
if (admin != null && admin.isActive())
|
if (admin != null && admin.isActive())
|
||||||
{
|
{
|
||||||
@ -204,7 +203,7 @@ public class PlayerList extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ResultSet currentSave = plugin.sql.getPlayerByName(player.getName());
|
ResultSet currentSave = plugin.sql.getPlayerByUUID(player.getUniqueId());
|
||||||
for (Map.Entry<String, Object> entry : player.toSQLStorable().entrySet())
|
for (Map.Entry<String, Object> entry : player.toSQLStorable().entrySet())
|
||||||
{
|
{
|
||||||
Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue());
|
Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue());
|
||||||
@ -223,31 +222,32 @@ public class PlayerList extends FreedomService
|
|||||||
public PlayerData getData(Player player)
|
public PlayerData getData(Player player)
|
||||||
{
|
{
|
||||||
// Check for existing data
|
// Check for existing data
|
||||||
PlayerData playerData = dataMap.get(player.getName());
|
PlayerData playerData = playerMap.get(player.getUniqueId()).getPlayerData();
|
||||||
if (playerData != null)
|
if (playerData != null)
|
||||||
{
|
{
|
||||||
return playerData;
|
return playerData;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load data
|
// Load data
|
||||||
playerData = loadByName(player.getName());
|
playerData = loadByUUID(player.getUniqueId());
|
||||||
|
|
||||||
if (playerData == null)
|
/*if (playerData == null)
|
||||||
{
|
{
|
||||||
playerData = loadByIp(FUtil.getIp(player));
|
playerData = loadByIp(FUtil.getIp(player));
|
||||||
if (playerData != null)
|
if (playerData != null)
|
||||||
{
|
{
|
||||||
plugin.sql.updatePlayerName(playerData.getName(), player.getName());
|
plugin.sql.updatePlayerName(playerData.getName(), player.getName());
|
||||||
playerData.setName(player.getName());
|
playerMap.get(player.getUniqueId()).setPlayerData(playerData);
|
||||||
dataMap.put(player.getName(), playerData);
|
|
||||||
return playerData;
|
return playerData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dataMap.put(player.getName(), playerData);
|
playerMap.get(player.getUniqueId()).setPlayerData(playerData);
|
||||||
return playerData;
|
return playerData;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
playerMap.get(player.getUniqueId()).setPlayerData(playerData);
|
||||||
|
|
||||||
// Create new data if nonexistent
|
// Create new data if nonexistent
|
||||||
FLog.info("Creating new player verification entry for " + player.getName());
|
FLog.info("Creating new player verification entry for " + player.getName());
|
||||||
@ -257,7 +257,7 @@ public class PlayerList extends FreedomService
|
|||||||
playerData.addIp(FUtil.getIp(player));
|
playerData.addIp(FUtil.getIp(player));
|
||||||
|
|
||||||
// Store player
|
// Store player
|
||||||
dataMap.put(player.getName(), playerData);
|
playerMap.get(player.getUniqueId()).setPlayerData(playerData);
|
||||||
|
|
||||||
// Save player
|
// Save player
|
||||||
plugin.sql.addPlayer(playerData);
|
plugin.sql.addPlayer(playerData);
|
||||||
@ -265,8 +265,10 @@ public class PlayerList extends FreedomService
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*@Deprecated
|
||||||
public PlayerData getData(String username)
|
public PlayerData getData(String username)
|
||||||
{
|
{
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
// Check for existing data
|
// Check for existing data
|
||||||
PlayerData playerData = dataMap.get(username);
|
PlayerData playerData = dataMap.get(username);
|
||||||
if (playerData != null)
|
if (playerData != null)
|
||||||
@ -285,28 +287,58 @@ public class PlayerList extends FreedomService
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return playerData;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public PlayerData getData(UUID uuid)
|
||||||
|
{
|
||||||
|
PlayerData playerData = playerMap.get(uuid).getPlayerData();
|
||||||
|
if (playerData != null)
|
||||||
|
{
|
||||||
|
return playerData;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerData = loadByUUID(uuid);
|
||||||
|
|
||||||
|
if (playerData != null)
|
||||||
|
{
|
||||||
|
playerMap.get(uuid).setPlayerData(playerData);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return playerData;
|
return playerData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData getDataByIp(String ip)
|
public PlayerData getDataByUUID(UUID uuid)
|
||||||
{
|
{
|
||||||
PlayerData player = loadByIp(ip);
|
PlayerData player = loadByUUID(uuid);
|
||||||
|
|
||||||
if (player != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
dataMap.put(player.getName(), player);
|
playerMap.get(uuid).setPlayerData(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, FPlayer> getPlayerMap()
|
public PlayerData getDataByIp(String ip)
|
||||||
|
{
|
||||||
|
PlayerData player = loadByIp(ip);
|
||||||
|
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
playerMap.get(player.getUniqueId()).setPlayerData(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<UUID, FPlayer> getPlayerMap()
|
||||||
{
|
{
|
||||||
return playerMap;
|
return playerMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, PlayerData> getDataMap()
|
|
||||||
{
|
|
||||||
return dataMap;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -7,5 +7,11 @@ public enum PunishmentType
|
|||||||
KICK,
|
KICK,
|
||||||
TEMPBAN,
|
TEMPBAN,
|
||||||
BAN,
|
BAN,
|
||||||
DOOM
|
DOOM,
|
||||||
|
WARN,
|
||||||
|
CAGE,
|
||||||
|
BLOCKEDIT,
|
||||||
|
BLOCKPVP,
|
||||||
|
BLOCKCMD,
|
||||||
|
ORBIT
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ public class RankManager extends FreedomService
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Console admin, get by name
|
// Console admin, get by name
|
||||||
Admin admin = plugin.al.getEntryByName(sender.getName());
|
Admin admin = plugin.al.getEntryByUUID(FUtil.getUUIDFromName(sender.getName()));
|
||||||
|
|
||||||
// Unknown console: RCON?
|
// Unknown console: RCON?
|
||||||
if (admin == null)
|
if (admin == null)
|
||||||
|
@ -37,7 +37,7 @@ public class Votifier extends FreedomService
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
data = plugin.pl.getData(name);
|
data = plugin.pl.getData(FUtil.getUUIDFromName(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data != null)
|
if (data != null)
|
||||||
|
@ -7,6 +7,8 @@ import java.sql.PreparedStatement;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.FreedomService;
|
import me.totalfreedom.totalfreedommod.FreedomService;
|
||||||
import me.totalfreedom.totalfreedommod.admin.Admin;
|
import me.totalfreedom.totalfreedommod.admin.Admin;
|
||||||
import me.totalfreedom.totalfreedommod.banning.Ban;
|
import me.totalfreedom.totalfreedommod.banning.Ban;
|
||||||
@ -70,6 +72,7 @@ public class SQLite extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//TODO: move bans to uuid
|
||||||
connection.createStatement().execute("CREATE TABLE `bans` (`name` VARCHAR, `uuid` VARCHAR, `ips` VARCHAR, `by` VARCHAR NOT NULL, `at` LONG NOT NULL, `expires` LONG, `reason` VARCHAR);");
|
connection.createStatement().execute("CREATE TABLE `bans` (`name` VARCHAR, `uuid` VARCHAR, `ips` VARCHAR, `by` VARCHAR NOT NULL, `at` LONG NOT NULL, `expires` LONG, `reason` VARCHAR);");
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
@ -82,7 +85,7 @@ public class SQLite extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
connection.createStatement().execute("CREATE TABLE `admins` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `ptero_id` VARCHAR);");
|
connection.createStatement().execute("CREATE TABLE `admins` (`uuid` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `ptero_id` VARCHAR);");
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
@ -93,7 +96,7 @@ public class SQLite extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
connection.createStatement().execute("CREATE TABLE `players` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `notes` VARCHAR, `tag` VARCHAR, `discord_id` VARCHAR, `backup_codes` VARCHAR, `master_builder` BOOLEAN NOT NULL,`verification` BOOLEAN NOT NULL, `ride_mode` VARCHAR NOT NULL, `coins` INT, `items` VARCHAR, `total_votes` INT NOT NULL, `display_discord` BOOLEAN NOT NULL, `login_message` VARCHAR, `inspect` BOOLEAN NOT NULL);");
|
connection.createStatement().execute("CREATE TABLE `players` (`uuid` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `notes` VARCHAR, `tag` VARCHAR, `discord_id` VARCHAR, `backup_codes` VARCHAR, `master_builder` BOOLEAN NOT NULL,`verification` BOOLEAN NOT NULL, `ride_mode` VARCHAR NOT NULL, `coins` INT, `items` VARCHAR, `total_votes` INT NOT NULL, `display_discord` BOOLEAN NOT NULL, `login_message` VARCHAR, `inspect` BOOLEAN NOT NULL);");
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
@ -133,8 +136,8 @@ public class SQLite extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Object[] data = {key, admin.getName()};
|
Object[] data = {key, admin.getUniqueId().toString()};
|
||||||
PreparedStatement statement = connection.prepareStatement(MessageFormat.format("UPDATE admins SET {0}=? WHERE username=''{1}''", data));
|
PreparedStatement statement = connection.prepareStatement(MessageFormat.format("UPDATE admins SET {0}=? WHERE uuid=''{1}''", data));
|
||||||
statement = setUnknownType(statement, 1, value);
|
statement = setUnknownType(statement, 1, value);
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
|
||||||
@ -150,8 +153,8 @@ public class SQLite extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Object[] data = {key, player.getName()};
|
Object[] data = {key, player.getUniqueId().toString()};
|
||||||
PreparedStatement statement = connection.prepareStatement(MessageFormat.format("UPDATE players SET {0}=? WHERE username=''{1}''", data));
|
PreparedStatement statement = connection.prepareStatement(MessageFormat.format("UPDATE players SET {0}=? WHERE uuid=''{1}''", data));
|
||||||
statement = setUnknownType(statement, 1, value);
|
statement = setUnknownType(statement, 1, value);
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
|
||||||
@ -162,9 +165,11 @@ public class SQLite extends FreedomService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateAdminName(String oldName, String newName)
|
@Deprecated
|
||||||
|
public void oldUpdateAdminName(String oldName, String newName)
|
||||||
{
|
{
|
||||||
try
|
throw new UnsupportedOperationException("Admin no longer stores names in the object, may be changed in a future update");
|
||||||
|
/*try
|
||||||
{
|
{
|
||||||
PreparedStatement statement = connection.prepareStatement(MessageFormat.format("UPDATE admins SET username=? WHERE username=''{0}''", oldName));
|
PreparedStatement statement = connection.prepareStatement(MessageFormat.format("UPDATE admins SET username=? WHERE username=''{0}''", oldName));
|
||||||
statement = setUnknownType(statement, 1, newName);
|
statement = setUnknownType(statement, 1, newName);
|
||||||
@ -174,10 +179,10 @@ public class SQLite extends FreedomService
|
|||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
FLog.severe("Failed to update admin name: " + e.getMessage());
|
FLog.severe("Failed to update admin name: " + e.getMessage());
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatePlayerName(String oldName, String newName)
|
/*public void updatePlayerName(String oldName, String newName)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -190,7 +195,7 @@ public class SQLite extends FreedomService
|
|||||||
{
|
{
|
||||||
FLog.severe("Failed to update player name: " + e.getMessage());
|
FLog.severe("Failed to update player name: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
public PreparedStatement setUnknownType(PreparedStatement statement, int index, Object value) throws SQLException
|
public PreparedStatement setUnknownType(PreparedStatement statement, int index, Object value) throws SQLException
|
||||||
{
|
{
|
||||||
@ -248,7 +253,7 @@ public class SQLite extends FreedomService
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
PreparedStatement statement = connection.prepareStatement("INSERT INTO admins VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
PreparedStatement statement = connection.prepareStatement("INSERT INTO admins VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||||
statement.setString(1, admin.getName());
|
statement.setString(1, admin.getUniqueId().toString());
|
||||||
statement.setString(2, FUtil.listToString(admin.getIps()));
|
statement.setString(2, FUtil.listToString(admin.getIps()));
|
||||||
statement.setString(3, admin.getRank().toString());
|
statement.setString(3, admin.getRank().toString());
|
||||||
statement.setBoolean(4, admin.isActive());
|
statement.setBoolean(4, admin.isActive());
|
||||||
@ -271,7 +276,7 @@ public class SQLite extends FreedomService
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
PreparedStatement statement = connection.prepareStatement("INSERT INTO players VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
PreparedStatement statement = connection.prepareStatement("INSERT INTO players VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||||
statement.setString(1, player.getName());
|
statement.setString(1, player.getUniqueId().toString());
|
||||||
statement.setString(2, FUtil.listToString(player.getIps()));
|
statement.setString(2, FUtil.listToString(player.getIps()));
|
||||||
statement.setString(3, FUtil.listToString(player.getNotes()));
|
statement.setString(3, FUtil.listToString(player.getNotes()));
|
||||||
statement.setString(4, player.getTag());
|
statement.setString(4, player.getTag());
|
||||||
@ -295,7 +300,7 @@ public class SQLite extends FreedomService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResultSet getAdminByName(String name)
|
/*public ResultSet getAdminByName(String name)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -311,10 +316,29 @@ public class SQLite extends FreedomService
|
|||||||
FLog.severe(e);
|
FLog.severe(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public ResultSet getAdminByUUID(UUID uuid)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ResultSet resultSet = connection.createStatement().executeQuery(MessageFormat.format("SELECT * FROM admins WHERE uuid=''{0}''", uuid.toString()));
|
||||||
|
if (resultSet.next())
|
||||||
|
{
|
||||||
|
return resultSet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SQLException e)
|
||||||
|
{
|
||||||
|
FLog.severe("Failed to get admin by name:");
|
||||||
|
FLog.severe(e);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResultSet getPlayerByName(String name)
|
/*public ResultSet getPlayerByName(String name)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -332,6 +356,8 @@ public class SQLite extends FreedomService
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
public ResultSet getMasterBuilders()
|
public ResultSet getMasterBuilders()
|
||||||
{
|
{
|
||||||
@ -348,6 +374,25 @@ public class SQLite extends FreedomService
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResultSet getPlayerByUUID(UUID uuid)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ResultSet resultSet = connection.createStatement().executeQuery(MessageFormat.format("SELECT * FROM players WHERE uuid LIKE ''%{0}%''", uuid.toString()));
|
||||||
|
if (resultSet.next())
|
||||||
|
{
|
||||||
|
return resultSet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SQLException e)
|
||||||
|
{
|
||||||
|
FLog.severe("Failed to get player by uuid:");
|
||||||
|
FLog.severe(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public ResultSet getPlayerByIp(String ip)
|
public ResultSet getPlayerByIp(String ip)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -371,7 +416,7 @@ public class SQLite extends FreedomService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
connection.createStatement().executeUpdate(MessageFormat.format("DELETE FROM admins where name=''{0}''", admin.getName()));
|
connection.createStatement().executeUpdate(MessageFormat.format("DELETE FROM admins where uuid=''{0}''", admin.getUniqueId()));
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
package me.totalfreedom.totalfreedommod.util;
|
package me.totalfreedom.totalfreedommod.util;
|
||||||
|
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.lang.WordUtils;
|
import org.apache.commons.lang.WordUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.apache.hc.client5.http.classic.methods.HttpGet;
|
||||||
import org.bukkit.ChatColor;
|
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
|
||||||
import org.bukkit.Color;
|
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
|
||||||
import org.bukkit.Location;
|
import org.apache.hc.client5.http.impl.classic.HttpClients;
|
||||||
import org.bukkit.Material;
|
import org.apache.hc.core5.http.HttpResponse;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
||||||
|
import org.bukkit.*;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -19,12 +21,14 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
import org.json.JSONObject;
|
||||||
import org.json.simple.JSONArray;
|
import org.json.simple.JSONArray;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
@ -37,6 +41,8 @@ import static org.bukkit.Bukkit.getServer;
|
|||||||
public class FUtil
|
public class FUtil
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private static final Map<UUID, String> NAME_CACHE = Maps.newHashMap();
|
||||||
|
|
||||||
public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
|
public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
|
||||||
/* See https://github.com/TotalFreedom/License - None of the listed names may be removed.
|
/* See https://github.com/TotalFreedom/License - None of the listed names may be removed.
|
||||||
Leaving this list here for anyone running TFM on a cracked server:
|
Leaving this list here for anyone running TFM on a cracked server:
|
||||||
@ -883,4 +889,52 @@ public class FUtil
|
|||||||
return subList(startIndex, endIndex + 1);
|
return subList(startIndex, endIndex + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getNameFromUUID(UUID uuid) {
|
||||||
|
|
||||||
|
OfflinePlayer player = Bukkit.getOfflinePlayer(uuid);
|
||||||
|
if (player.hasPlayedBefore()) return player.getName();
|
||||||
|
if (NAME_CACHE.containsKey(uuid)) return NAME_CACHE.get(uuid);
|
||||||
|
|
||||||
|
CloseableHttpClient client = HttpClients.createDefault();
|
||||||
|
HttpGet get = new HttpGet("https://api.ashcon.app/mojang/v2/user/" + uuid.toString().replace("-", ""));
|
||||||
|
try {
|
||||||
|
CloseableHttpResponse response = client.execute(get);
|
||||||
|
String json = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||||
|
JSONObject obj = new JSONObject(json);
|
||||||
|
response.close();
|
||||||
|
if (response.getCode() == 200) {
|
||||||
|
String name = NAME_CACHE.put(uuid, obj.getString("username"));
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTaskLaterAsynchronously(TotalFreedomMod.getPlugin(), () -> NAME_CACHE.remove(uuid), 20 * 60L * 5); // remove the uuid from cache as names can be changed
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
client.close();
|
||||||
|
} catch (IOException | org.apache.hc.core5.http.ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UUID getUUIDFromName(String name) {
|
||||||
|
//get offline player is deprecated so we'll just see if they're online to get their uuid
|
||||||
|
Player player = Bukkit.getPlayer(name);
|
||||||
|
if (player != null) return player.getUniqueId();
|
||||||
|
|
||||||
|
CloseableHttpClient client = HttpClients.createDefault();
|
||||||
|
HttpGet get = new HttpGet("https://api.ashcon.app/mojang/v2/user/" + name);
|
||||||
|
try {
|
||||||
|
CloseableHttpResponse response = client.execute(get);
|
||||||
|
String json = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||||
|
JSONObject obj = new JSONObject(json);
|
||||||
|
response.close();
|
||||||
|
if (response.getCode() == 200) {
|
||||||
|
return UUID.fromString(obj.getString("uuid"));
|
||||||
|
}
|
||||||
|
client.close();
|
||||||
|
} catch (IOException | org.apache.hc.core5.http.ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ public class WorldRestrictions extends FreedomService
|
|||||||
|
|
||||||
public boolean doRestrict(Player player)
|
public boolean doRestrict(Player player)
|
||||||
{
|
{
|
||||||
if (!plugin.pl.getData(player).isMasterBuilder() && plugin.pl.canManageMasterBuilders(player.getName()))
|
if (!plugin.pl.getData(player).isMasterBuilder() && plugin.pl.canManageMasterBuilders(player.getUniqueId()))
|
||||||
{
|
{
|
||||||
if (player.getWorld().equals(plugin.wm.masterBuilderWorld.getWorld()))
|
if (player.getWorld().equals(plugin.wm.masterBuilderWorld.getWorld()))
|
||||||
{
|
{
|
||||||
|
@ -1,16 +1,50 @@
|
|||||||
#
|
#
|
||||||
# TotalFreedomMod Permissions
|
# TotalFreedomMod 5.5 Permissions
|
||||||
# by ZeroEpoch1969
|
# by ZeroEpoch1969
|
||||||
#
|
#
|
||||||
|
|
||||||
# Note that every group inherits the previous groups' permissions
|
# Note that every group inherits the previous groups' permissions
|
||||||
# Meaning Senior Admins have the permissions of Operators and Admins, and etc
|
# Meaning Telnet Admins have the permissions of Operators and Super Admins, and etc
|
||||||
|
|
||||||
# This is used to remove all permission begging with the root node
|
# This is used to remove all permission begging with the root node
|
||||||
# This is useful when a plugin gives all permissions to a player because they are opped
|
# This is useful when a plugin gives all permissions to a player because they are opped
|
||||||
remove:
|
remove:
|
||||||
- "voxelsniper"
|
- "voxelsniper"
|
||||||
- "bending"
|
- "bending.admin"
|
||||||
|
- "bending.ability.Cleanse"
|
||||||
|
- "worldedit.brush.apply"
|
||||||
|
- "essentials.near.exclude"
|
||||||
|
- "plots.admin"
|
||||||
|
- "plots.debugroadregen"
|
||||||
|
- "plots.debugclaimtest"
|
||||||
|
- "plots.debugpaste"
|
||||||
|
- "plots.debugallowunsafe"
|
||||||
|
- "plots.debugloadtest"
|
||||||
|
- "plots.debugsavetest"
|
||||||
|
- "plots.cluster"
|
||||||
|
#Crackshot
|
||||||
|
- "crackshot.bypass.all"
|
||||||
|
#NetworkManager
|
||||||
|
- "networkmanager.*"
|
||||||
|
- "networkmanager.notify.joinbanned"
|
||||||
|
- "networkmanager.notify.*"
|
||||||
|
- "networkmanager.announce.global"
|
||||||
|
- "networkmanager.announce"
|
||||||
|
- "networkmanager.chatlock"
|
||||||
|
- "networkmanager.clearchat.bypass"
|
||||||
|
- "networkmanager.clearchat.*"
|
||||||
|
- "networkmanager.notify.ticket.new"
|
||||||
|
- "networkmanager.lookup"
|
||||||
|
- "networkmanager.maintenance.*"
|
||||||
|
- "networkmanager.permissions"
|
||||||
|
- "networkmanager.reports"
|
||||||
|
- "networkmanager.tickets"
|
||||||
|
- "networkmanager.chatlock.bypass"
|
||||||
|
- "networkmanager.anticaps.bypass"
|
||||||
|
- "networkmanager.antispam.bypass"
|
||||||
|
- "networkmanager.commandblocker.bypass"
|
||||||
|
- "networkmanager.tags.*"
|
||||||
|
|
||||||
|
|
||||||
# Operator permission nodes
|
# Operator permission nodes
|
||||||
operators:
|
operators:
|
||||||
@ -36,16 +70,79 @@ operators:
|
|||||||
- "worldedit.removebelow"
|
- "worldedit.removebelow"
|
||||||
- "worldedit.removenear"
|
- "worldedit.removenear"
|
||||||
- "worldedit.replacenear"
|
- "worldedit.replacenear"
|
||||||
|
- "worldedit.brush.*"
|
||||||
|
- "worldedit.global-mask"
|
||||||
|
- "worldedit.fill"
|
||||||
|
- "worldedit.fill.recursive"
|
||||||
# LibsDisguises
|
# LibsDisguises
|
||||||
- "libsdisguises.noactionbar"
|
- "libsdisguises.noactionbar"
|
||||||
|
|
||||||
# WorldGuard
|
# WorldGuard
|
||||||
- "worldguard.region.list.own"
|
- "worldguard.region.list.own"
|
||||||
- "worldguard.region.addmember.own.*"
|
- "worldguard.region.addmember.own.*"
|
||||||
- "worldguard.region.removemember.own.*"
|
- "worldguard.region.removemember.own.*"
|
||||||
- "worldguard.region.info.*"
|
- "worldguard.region.info.*"
|
||||||
|
|
||||||
|
# Bending
|
||||||
|
- "bending.command.add"
|
||||||
|
- "bending.command.bind"
|
||||||
|
- "bending.command.check"
|
||||||
|
- "bending.command.choose"
|
||||||
|
- "bending.command.rechoose"
|
||||||
|
- "bending.command.clear"
|
||||||
|
- "bending.command.copy"
|
||||||
|
- "bending.command.display"
|
||||||
|
- "bending.command.help"
|
||||||
|
- "bending.command.invincible"
|
||||||
|
- "bending.command.preset"
|
||||||
|
- "bending.command.preset.list"
|
||||||
|
- "bending.command.preset.create"
|
||||||
|
- "bending.command.preset.delete"
|
||||||
|
- "bending.command.preset.bind"
|
||||||
|
- "bending.command.preset.bind.assign"
|
||||||
|
- "bending.command.preset.bind.external"
|
||||||
|
- "bending.command.toggle"
|
||||||
|
- "bending.command.version"
|
||||||
|
- "bending.command.who"
|
||||||
|
- "bending.earth"
|
||||||
|
- "bending.air"
|
||||||
|
- "bending.fire"
|
||||||
|
- "bending.water"
|
||||||
|
- "bending.water.bloodbending.anytime"
|
||||||
|
- "bending.ability.AvatarState"
|
||||||
|
- "bending.command.add.chi"
|
||||||
|
- "bending.command.choose.chi"
|
||||||
|
- "bending.ability.Paralyze"
|
||||||
|
- "bending.ability.RapidPunch"
|
||||||
|
- "bending.ability.Smokescreen"
|
||||||
|
- "bending.ability.WarriorStance"
|
||||||
|
- "bending.ability.AcrobatStance"
|
||||||
|
- "bending.ability.QuickStrike"
|
||||||
|
- "bending.ability.SwiftKick"
|
||||||
|
- "bending.ability.ChiCombo"
|
||||||
|
- "bending.chi.passive"
|
||||||
|
- "bending.ability.MetalClips.throw"
|
||||||
|
- "bending.ability.AirCombo"
|
||||||
|
- "bending.ability.Flight"
|
||||||
|
- "bending.ability.WaterCombo"
|
||||||
|
- "bending.ability.EarthCombo"
|
||||||
|
- "bending.ability.FireCombo"
|
||||||
|
- "bending.ability.ChiCombo"
|
||||||
|
- "bending.air.passive"
|
||||||
|
- "bending.chi.passive"
|
||||||
|
- "bending.earth.passive"
|
||||||
|
- "bending.fire.passive"
|
||||||
|
- "bending.water.passive"
|
||||||
|
# NetworkManager
|
||||||
|
- "networkmanager.chatlog"
|
||||||
|
- "networkmanager.find"
|
||||||
|
- "networkmanager.gtps"
|
||||||
|
- "networkmanager.lookup"
|
||||||
|
- "networkmanager.slashserver.*"
|
||||||
|
- "networkmanager.notification.join"
|
||||||
|
- "networkmanager.party.nolimit"
|
||||||
|
- "networkmanager.tabcompletechat"
|
||||||
|
|
||||||
# Master Builder permission nodes
|
# Master Builder permission nodes
|
||||||
master_builders:
|
master_builders:
|
||||||
- "worldedit.tool.*"
|
- "worldedit.tool.*"
|
||||||
@ -59,13 +156,25 @@ master_builders:
|
|||||||
- "voxelsniper.sniper"
|
- "voxelsniper.sniper"
|
||||||
- "voxelsniper.goto"
|
- "voxelsniper.goto"
|
||||||
- "voxelsniper.brush.*"
|
- "voxelsniper.brush.*"
|
||||||
|
|
||||||
# Admin permission nodes
|
# Admin permission nodes
|
||||||
admins:
|
admins:
|
||||||
- "coreprotect.*"
|
|
||||||
- "worldedit.*"
|
- "worldedit.*"
|
||||||
- "worldguard.*"
|
- "worldguard.*"
|
||||||
- "bending.*"
|
- "bending.admin.remove"
|
||||||
|
- "bending.command.toggle.all"
|
||||||
|
- "bending.admin.toggle"
|
||||||
|
- "bending.command.reload"
|
||||||
|
- "plots.cluster"
|
||||||
|
- "networkmanager.adminchat"
|
||||||
|
- "networkmanager.announce.server"
|
||||||
|
- "networkmanager.socialspy"
|
||||||
|
- "networkmanager.fullproxy.bypass"
|
||||||
|
- "networkmanager.lookup.ip"
|
||||||
|
#Crackshot
|
||||||
|
- "crackshot.bypass.all"
|
||||||
|
|
||||||
# Senior Admin permission nodes
|
# Senior Admin permission nodes
|
||||||
senior_admins: []
|
senior_admins:
|
||||||
|
- "bending.admin.permaremove"
|
||||||
|
- "bending.ability.Cleanse"
|
||||||
|
Reference in New Issue
Block a user