mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 12:36:41 +00:00
Compare commits
62 Commits
Author | SHA1 | Date | |
---|---|---|---|
08e4a4a171 | |||
a0affddeed | |||
c82113dc22 | |||
9315227906 | |||
00e9b4ea1f | |||
22b0781020 | |||
7df24c6b86 | |||
0e9044ffc3 | |||
3371f54c06 | |||
5e4649a4d0 | |||
d8560ebc1f | |||
7f2e72ee51 | |||
c98909df12 | |||
d613e0266b | |||
92d7c58957 | |||
478244773b | |||
5237fa0ca2 | |||
b3b182e753 | |||
a54c113a86 | |||
ec8a528564 | |||
6365672eda | |||
d087dc1148 | |||
a3a484dc58 | |||
b89ccb2d55 | |||
9b66304f63 | |||
4784348027 | |||
2705bb4534 | |||
0f6f21e4c6 | |||
527ac6c286 | |||
192b9ea9d9 | |||
fa1a082972 | |||
cf135e211d | |||
56a5a7304a | |||
4b671cc4c7 | |||
10443ff0d5 | |||
5f1f9184ae | |||
a1bb6a34a0 | |||
dfd5f2dba0 | |||
988e62213e | |||
49601035a5 | |||
d05f8b7169 | |||
fbca5f0527 | |||
1c14889bdf | |||
114372194a | |||
49b841acc2 | |||
302b538a3a | |||
539f28549a | |||
716ba57739 | |||
0d32ca5451 | |||
b8b8ed8608 | |||
ca5b79331b | |||
78c1a2eaaf | |||
be4ec7fc04 | |||
794ad2e57a | |||
d2a5c399f0 | |||
67d8bfce09 | |||
90aa3ab420 | |||
a395904c43 | |||
42812be4c5 | |||
049432789f | |||
8b2532e9e9 | |||
b2e27ec8bf |
3
.gitignore
vendored
3
.gitignore
vendored
@ -17,3 +17,6 @@ manifest.mf
|
|||||||
.Trashes
|
.Trashes
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
# TFM files
|
||||||
|
buildcreator.properties
|
||||||
|
@ -5,6 +5,7 @@ We do, however, ask that you comply by several restrictions. These restrictions
|
|||||||
* A un-edited copy of this LICENSE.md shall always be included with this source code.
|
* A un-edited copy of this LICENSE.md shall always be included with this source code.
|
||||||
* TotalFreedomMod source code and its derivations shall be freely distributable between anyone who chooses to download it.
|
* TotalFreedomMod source code and its derivations shall be freely distributable between anyone who chooses to download it.
|
||||||
* You shall not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" or "JeromSar" from any part of the source code.
|
* You shall not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" or "JeromSar" from any part of the source code.
|
||||||
|
* You shall not edit or remove the file Command_tfm.java
|
||||||
* You may not modify the file TFM_FrontDoor.java. Removing it is fine, however.
|
* You may not modify the file TFM_FrontDoor.java. Removing it is fine, however.
|
||||||
* Compiled binaries (*.jar's) shall not to be distributed.
|
* Compiled binaries (*.jar's) shall not to be distributed.
|
||||||
* If you wish to obtain a copy of TotalFreedomMod you must compile the original source code or it's derivations yourself.
|
* If you wish to obtain a copy of TotalFreedomMod you must compile the original source code or it's derivations yourself.
|
||||||
|
@ -2,16 +2,22 @@
|
|||||||
<project name="TotalFreedomMod" default="default" basedir=".">
|
<project name="TotalFreedomMod" default="default" basedir=".">
|
||||||
<description>Builds, tests, and runs the project TotalFreedomMod.</description>
|
<description>Builds, tests, and runs the project TotalFreedomMod.</description>
|
||||||
<import file="nbproject/build-impl.xml" />
|
<import file="nbproject/build-impl.xml" />
|
||||||
|
|
||||||
<target name="-pre-jar">
|
<target name="-pre-jar">
|
||||||
|
<copy file="buildcreator.default.properties" tofile="buildcreator.properties" overwrite="false" />
|
||||||
|
|
||||||
|
<property file="buildcreator.properties"/>
|
||||||
<buildnumber file="buildnumber.properties" />
|
<buildnumber file="buildnumber.properties" />
|
||||||
|
|
||||||
<propertyfile file="appinfo.properties">
|
<propertyfile file="appinfo.properties">
|
||||||
<entry key="program.buildnumber" value="${build.number}" />
|
<entry key="program.buildnumber" value="${build.number}" />
|
||||||
<entry key="program.builddate" type="date" value="now" pattern="MM/dd/yyyy hh:mm aa" />
|
<entry key="program.builddate" type="date" value="now" pattern="MM/dd/yyyy hh:mm aa" />
|
||||||
|
<entry key="program.buildcreator" value="${program.buildcreator}" />
|
||||||
</propertyfile>
|
</propertyfile>
|
||||||
<copy file="appinfo.properties" todir="${build.classes.dir}" />
|
<copy file="appinfo.properties" todir="${build.classes.dir}" />
|
||||||
<delete file="appinfo.properties" />
|
<delete file="appinfo.properties" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="-post-jar">
|
<target name="-post-jar">
|
||||||
<!-- Cleanup -->
|
<!-- Cleanup -->
|
||||||
<delete file="${dist.dir}/README.TXT" />
|
<delete file="${dist.dir}/README.TXT" />
|
||||||
|
2
buildcreator.default.properties
Normal file
2
buildcreator.default.properties
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Build creator configuration
|
||||||
|
program.buildcreator=Unknown
|
@ -1,3 +1,3 @@
|
|||||||
#Build Number for ANT. Do not edit!
|
#Build Number for ANT. Do not edit!
|
||||||
#Tue Jan 14 20:43:15 CET 2014
|
#Mon Apr 21 23:08:17 CEST 2014
|
||||||
build.number=698
|
build.number=787
|
||||||
|
@ -48,11 +48,11 @@ jar.archive.disabled=${jnlp.enabled}
|
|||||||
jar.compress=false
|
jar.compress=false
|
||||||
jar.index=${jnlp.enabled}
|
jar.index=${jnlp.enabled}
|
||||||
javac.classpath=\
|
javac.classpath=\
|
||||||
${libs.CraftBukkit.classpath}:\
|
|
||||||
${libs.WorldEdit.classpath}:\
|
${libs.WorldEdit.classpath}:\
|
||||||
${libs.DisguiseCraft.classpath}:\
|
${libs.DisguiseCraft.classpath}:\
|
||||||
${libs.Essentials.classpath}:\
|
${libs.Essentials.classpath}:\
|
||||||
${libs.BukkitTelnet.classpath}
|
${libs.BukkitTelnet.classpath}:\
|
||||||
|
${libs.CraftBukkit.classpath}
|
||||||
# Space-separated list of extra javac options
|
# Space-separated list of extra javac options
|
||||||
javac.compilerargs=-Xlint:unchecked -Xlint:deprecation
|
javac.compilerargs=-Xlint:unchecked -Xlint:deprecation
|
||||||
javac.deprecation=false
|
javac.deprecation=false
|
||||||
|
13
src/bans.yml
Normal file
13
src/bans.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# TotalFreedomMod banning config
|
||||||
|
# Warning: modification of this file is not reccomended
|
||||||
|
#
|
||||||
|
# Format:
|
||||||
|
# Ip: [IP-address / UUID]:[Last login name]:[Expiry unix timestamp (0 = never)][Banned by]:[Reason]
|
||||||
|
#
|
||||||
|
|
||||||
|
ips:
|
||||||
|
- '192.168.1.254:Notch:DarthSalamon:0:IP ban example'
|
||||||
|
|
||||||
|
uuids:
|
||||||
|
- '245d2f30-61fb-4840-9cd3-298b3920f4a4:Cobrex:DarthSalamon:0:UUID ban example'
|
@ -1,4 +1,4 @@
|
|||||||
# TotalFreedomMod v3.5 Configuration
|
# TotalFreedomMod v4.0 Configuration
|
||||||
# by Madgeek1450 and DarthSalamon
|
# by Madgeek1450 and DarthSalamon
|
||||||
|
|
||||||
# Block placement prevention:
|
# Block placement prevention:
|
||||||
@ -61,7 +61,7 @@ blocked_commands:
|
|||||||
- 'n:b:/toggledownfall:_'
|
- 'n:b:/toggledownfall:_'
|
||||||
- 'n:b:/effect:Please use /potion to set effects.'
|
- 'n:b:/effect:Please use /potion to set effects.'
|
||||||
- 'n:b:/enderchest:_'
|
- 'n:b:/enderchest:_'
|
||||||
|
|
||||||
# Superadmin commands
|
# Superadmin commands
|
||||||
- 's:b:/kick:_'
|
- 's:b:/kick:_'
|
||||||
- 's:b:/socialspy:_'
|
- 's:b:/socialspy:_'
|
||||||
@ -74,7 +74,7 @@ blocked_commands:
|
|||||||
- 's:b:/tool:_'
|
- 's:b:/tool:_'
|
||||||
- 's:b://butcher:_'
|
- 's:b://butcher:_'
|
||||||
- 's:b:/scoreboard:_'
|
- 's:b:/scoreboard:_'
|
||||||
|
|
||||||
# Superadmin commands - Auto-eject
|
# Superadmin commands - Auto-eject
|
||||||
- 's:a:/stop'
|
- 's:a:/stop'
|
||||||
- 's:a:/reload'
|
- 's:a:/reload'
|
||||||
@ -129,6 +129,10 @@ protected_areas_enabled: true
|
|||||||
auto_protect_spawnpoints: true
|
auto_protect_spawnpoints: true
|
||||||
auto_protect_radius: 25.0
|
auto_protect_radius: 25.0
|
||||||
|
|
||||||
|
# Give the default CONSOLE senior admin privileges.
|
||||||
|
# Handy in development environments.
|
||||||
|
console_is_senior: true
|
||||||
|
|
||||||
# Host Sender Names - Names that indicate automated services or host-based consoles you want to block from using some commands.
|
# Host Sender Names - Names that indicate automated services or host-based consoles you want to block from using some commands.
|
||||||
# Make sure these are all lower-case.
|
# Make sure these are all lower-case.
|
||||||
host_sender_names:
|
host_sender_names:
|
||||||
@ -170,6 +174,9 @@ unbannable_usernames:
|
|||||||
- cavemanfilms
|
- cavemanfilms
|
||||||
- herobrine
|
- herobrine
|
||||||
- whiteboy7thst
|
- whiteboy7thst
|
||||||
|
- stampylonghead
|
||||||
|
- stampylongnose
|
||||||
|
- dantdm
|
||||||
|
|
||||||
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
||||||
twitterbot_enabled: false
|
twitterbot_enabled: false
|
||||||
@ -182,7 +189,7 @@ pet_protect_enabled: true
|
|||||||
# Logs Registration
|
# Logs Registration
|
||||||
logs_register_password: ''
|
logs_register_password: ''
|
||||||
logs_register_url: ''
|
logs_register_url: ''
|
||||||
|
|
||||||
# Mojang service checker
|
# Mojang service checker
|
||||||
service_checker_url: http://status.mojang.com/check
|
service_checker_url: http://status.mojang.com/check
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod;
|
package me.StevenLawson.TotalFreedomMod.Bridge;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import pgDev.bukkit.DisguiseCraft.DisguiseCraft;
|
import pgDev.bukkit.DisguiseCraft.DisguiseCraft;
|
@ -1,7 +1,9 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod;
|
package me.StevenLawson.TotalFreedomMod.Bridge;
|
||||||
|
|
||||||
import com.earth2me.essentials.Essentials;
|
import com.earth2me.essentials.Essentials;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod;
|
package me.StevenLawson.TotalFreedomMod.Bridge;
|
||||||
|
|
||||||
import com.sk89q.worldedit.IncompleteRegionException;
|
import com.sk89q.worldedit.IncompleteRegionException;
|
||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
@ -6,6 +6,10 @@ import com.sk89q.worldedit.LocalWorld;
|
|||||||
import com.sk89q.worldedit.bukkit.BukkitPlayer;
|
import com.sk89q.worldedit.bukkit.BukkitPlayer;
|
||||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||||
import com.sk89q.worldedit.regions.Region;
|
import com.sk89q.worldedit.regions.Region;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -118,7 +122,7 @@ public class TFM_WorldEditBridge
|
|||||||
|
|
||||||
public void validateSelection(final Player player)
|
public void validateSelection(final Player player)
|
||||||
{
|
{
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(player))
|
if (TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
@ -10,5 +10,5 @@ public @interface CommandPermissions
|
|||||||
|
|
||||||
SourceType source();
|
SourceType source();
|
||||||
|
|
||||||
boolean block_host_console() default false;
|
boolean blockHostConsole() default false;
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Close server to non-superadmins.", usage = "/<command> [on | off]")
|
@CommandParameters(description = "Close server to non-superadmins.", usage = "/<command> [on | off]")
|
||||||
public class Command_adminmode extends TFM_Command
|
public class Command_adminmode extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -31,7 +31,7 @@ public class Command_adminmode extends TFM_Command
|
|||||||
TFM_Util.adminAction(sender.getName(), "Closing the server to non-superadmins.", true);
|
TFM_Util.adminAction(sender.getName(), "Closing the server to non-superadmins.", true);
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
player.kickPlayer("Server is now closed to non-superadmins.");
|
player.kickPlayer("Server is now closed to non-superadmins.");
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminWorld;
|
import me.StevenLawson.TotalFreedomMod.World.TFM_AdminWorld;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -217,7 +217,7 @@ public class Command_adminworld extends TFM_Command
|
|||||||
|
|
||||||
private void assertCommandPerms(CommandSender sender, Player sender_p) throws PermissionDeniedException
|
private void assertCommandPerms(CommandSender sender, Player sender_p) throws PermissionDeniedException
|
||||||
{
|
{
|
||||||
if (!(sender instanceof Player) || sender_p == null || !TFM_SuperadminList.isUserSuperadmin(sender))
|
if (!(sender instanceof Player) || sender_p == null || !TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
throw new PermissionDeniedException(TotalFreedomMod.MSG_NO_PERMS);
|
throw new PermissionDeniedException(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -47,7 +47,7 @@ public class Command_blockcmd extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(player))
|
if (TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
playerMsg(player.getName() + " is a Superadmin, and cannot have their commands blocked.");
|
playerMsg(player.getName() + " is a Superadmin, and cannot have their commands blocked.");
|
||||||
return true;
|
return true;
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "For the people that are still alive.", usage = "/<command>")
|
@CommandParameters(description = "For the people that are still alive.", usage = "/<command>")
|
||||||
@ -18,6 +19,7 @@ public class Command_cake extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
|
|
||||||
StringBuilder output = new StringBuilder();
|
StringBuilder output = new StringBuilder();
|
||||||
Random randomGenerator = new Random();
|
Random randomGenerator = new Random();
|
||||||
|
|
||||||
@ -28,9 +30,13 @@ public class Command_cake extends TFM_Command
|
|||||||
output.append(ChatColor.COLOR_CHAR).append(color_code).append(word).append(" ");
|
output.append(ChatColor.COLOR_CHAR).append(color_code).append(word).append(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ItemStack heldItem = new ItemStack(Material.CAKE);
|
||||||
|
ItemMeta heldItemMeta = heldItem.getItemMeta();
|
||||||
|
heldItemMeta.setDisplayName((new StringBuilder()).append(ChatColor.WHITE).append("The ").append(ChatColor.BLACK).append("Lie").toString());
|
||||||
|
heldItem.setItemMeta(heldItemMeta);
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
ItemStack heldItem = new ItemStack(Material.CAKE, 1);
|
|
||||||
player.getInventory().setItem(player.getInventory().firstEmpty(), heldItem);
|
player.getInventory().setItem(player.getInventory().firstEmpty(), heldItem);
|
||||||
player.awardAchievement(Achievement.MINE_WOOD);
|
player.awardAchievement(Achievement.MINE_WOOD);
|
||||||
player.awardAchievement(Achievement.BUILD_WORKBENCH);
|
player.awardAchievement(Achievement.BUILD_WORKBENCH);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Minecart;
|
import org.bukkit.entity.Minecart;
|
||||||
@ -36,7 +36,7 @@ public class Command_cartsit extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (targetPlayer != sender_p && !TFM_SuperadminList.isUserSuperadmin(sender))
|
else if (targetPlayer != sender_p && !TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
|
sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
|
||||||
return true;
|
return true;
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_EssentialsBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
@ -33,7 +33,7 @@ public class Command_creative extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("-a"))
|
if (args[0].equalsIgnoreCase("-a"))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
@ -48,7 +48,7 @@ public class Command_creative extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)))
|
if (!(senderIsConsole || TFM_AdminList.isSuperAdmin(sender)))
|
||||||
{
|
{
|
||||||
playerMsg("Only superadmins can change other user's gamemode.");
|
playerMsg("Only superadmins can change other user's gamemode.");
|
||||||
return true;
|
return true;
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Make some noise.", usage = "/<command>")
|
@CommandParameters(description = "Make some noise.", usage = "/<command>")
|
||||||
public class Command_deafen extends TFM_Command
|
public class Command_deafen extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_EssentialsBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
@ -11,7 +13,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
||||||
@CommandParameters(description = "For the bad Superadmins.", usage = "/<command> <playername>")
|
@CommandParameters(description = "For the bad Superadmins", usage = "/<command> <playername>")
|
||||||
public class Command_doom extends TFM_Command
|
public class Command_doom extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -36,13 +38,13 @@ public class Command_doom extends TFM_Command
|
|||||||
TFM_Util.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
|
||||||
TFM_Util.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
|
TFM_Util.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
|
||||||
|
|
||||||
final String IP = player.getAddress().getAddress().getHostAddress().trim();
|
final String ip = player.getAddress().getAddress().getHostAddress().trim();
|
||||||
|
|
||||||
// remove from superadmin
|
// remove from superadmin
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(player))
|
if (TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing " + player.getName() + " from the superadmin list.", true);
|
TFM_Util.adminAction(sender.getName(), "Removing " + player.getName() + " from the superadmin list.", true);
|
||||||
TFM_SuperadminList.removeSuperadmin(player);
|
TFM_AdminList.removeSuperadmin(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove from whitelist
|
// remove from whitelist
|
||||||
@ -52,10 +54,10 @@ public class Command_doom extends TFM_Command
|
|||||||
player.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
// ban IP
|
// ban IP
|
||||||
TFM_ServerInterface.banIP(IP, null, null, null);
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName()));
|
||||||
|
|
||||||
// ban name
|
// ban name
|
||||||
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
||||||
|
|
||||||
// set gamemode to survival
|
// set gamemode to survival
|
||||||
player.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
@ -89,7 +91,7 @@ public class Command_doom extends TFM_Command
|
|||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
// message
|
// message
|
||||||
TFM_Util.adminAction(sender.getName(), "Banning " + player.getName() + ", IP: " + IP, true);
|
TFM_Util.adminAction(sender.getName(), "Banning " + player.getName() + ", IP: " + ip, true);
|
||||||
|
|
||||||
// generate explosion
|
// generate explosion
|
||||||
player.getWorld().createExplosion(player.getLocation(), 4F);
|
player.getWorld().createExplosion(player.getLocation(), 4F);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -30,7 +30,7 @@ public class Command_findip extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Player IPs: " + StringUtils.join(TFM_UserList.getInstance(TotalFreedomMod.plugin).getEntry(player).getIpAddresses(), ", "));
|
playerMsg("Player IPs: " + StringUtils.join(TFM_PlayerList.getInstance().getEntry(player).getIps(), ", "));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Flatlands;
|
import me.StevenLawson.TotalFreedomMod.World.TFM_Flatlands;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -40,6 +42,13 @@ public class Command_fr extends TFM_Command
|
|||||||
}.runTaskLater(plugin, 20L * 60L * 5L);
|
}.runTaskLater(plugin, 20L * 60L * 5L);
|
||||||
|
|
||||||
playerMsg("Players are now frozen.");
|
playerMsg("Players are now frozen.");
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
|
{
|
||||||
|
TFM_Util.playerMsg(player, "You have been frozen due to rule breaker(s), you will be unfrozen very soon.", ChatColor.RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
@ -49,33 +51,33 @@ public class Command_gadmin extends TFM_Command
|
|||||||
}
|
}
|
||||||
else if (mode.equals("nameban"))
|
else if (mode.equals("nameban"))
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", player.getName()), true);
|
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", player.getName()), true);
|
||||||
player.kickPlayer("Username banned by Administrator.");
|
player.kickPlayer("Username banned by Administrator.");
|
||||||
}
|
}
|
||||||
else if (mode.equals("ipban"))
|
else if (mode.equals("ipban"))
|
||||||
{
|
{
|
||||||
String user_ip = player.getAddress().getAddress().getHostAddress();
|
String ip = player.getAddress().getAddress().getHostAddress();
|
||||||
String[] ip_parts = user_ip.split("\\.");
|
String[] ip_parts = ip.split("\\.");
|
||||||
if (ip_parts.length == 4)
|
if (ip_parts.length == 4)
|
||||||
{
|
{
|
||||||
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||||
}
|
}
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", player.getName(), user_ip), true);
|
TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", player.getName(), ip), true);
|
||||||
TFM_ServerInterface.banIP(user_ip, null, null, null);
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName()));
|
||||||
player.kickPlayer("IP address banned by Administrator.");
|
player.kickPlayer("IP address banned by Administrator.");
|
||||||
}
|
}
|
||||||
else if (mode.equals("ban"))
|
else if (mode.equals("ban"))
|
||||||
{
|
{
|
||||||
String user_ip = player.getAddress().getAddress().getHostAddress();
|
String ip = player.getAddress().getAddress().getHostAddress();
|
||||||
String[] ip_parts = user_ip.split("\\.");
|
String[] ip_parts = ip.split("\\.");
|
||||||
if (ip_parts.length == 4)
|
if (ip_parts.length == 4)
|
||||||
{
|
{
|
||||||
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||||
}
|
}
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", player.getName(), user_ip), true);
|
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", player.getName(), ip), true);
|
||||||
TFM_ServerInterface.banIP(user_ip, null, null, null);
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
||||||
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName()));
|
||||||
player.kickPlayer("IP and username banned by Administrator.");
|
player.kickPlayer("IP and username banned by Administrator.");
|
||||||
}
|
}
|
||||||
else if (mode.equals("op"))
|
else if (mode.equals("op"))
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
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;
|
||||||
@ -28,26 +30,17 @@ public class Command_gcmd extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String outcommand = "";
|
final String outCommand = StringUtils.join(args, " ", 1, args.length);
|
||||||
try
|
|
||||||
|
if (TFM_CommandBlocker.getInstance().isCommandBlocked(outCommand, sender))
|
||||||
{
|
{
|
||||||
StringBuilder outcommand_bldr = new StringBuilder();
|
|
||||||
for (int i = 1; i < args.length; i++)
|
|
||||||
{
|
|
||||||
outcommand_bldr.append(args[i]).append(" ");
|
|
||||||
}
|
|
||||||
outcommand = outcommand_bldr.toString().trim();
|
|
||||||
}
|
|
||||||
catch (Throwable ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.GRAY + "Error building command: " + ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
playerMsg("Sending command as " + player.getName() + ": " + outcommand);
|
playerMsg("Sending command as " + player.getName() + ": " + outCommand);
|
||||||
if (server.dispatchCommand(player, outcommand))
|
if (server.dispatchCommand(player, outCommand))
|
||||||
{
|
{
|
||||||
playerMsg("Command sent.");
|
playerMsg("Command sent.");
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,14 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_UserList.TFM_UserListEntry;
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -29,9 +32,9 @@ public class Command_glist extends TFM_Command
|
|||||||
if (args[0].equalsIgnoreCase("purge"))
|
if (args[0].equalsIgnoreCase("purge"))
|
||||||
{
|
{
|
||||||
//Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database!
|
//Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database!
|
||||||
if (TFM_SuperadminList.isSeniorAdmin(sender))
|
if (TFM_AdminList.isSeniorAdmin(sender))
|
||||||
{
|
{
|
||||||
TFM_UserList.getInstance(plugin).purge();
|
TFM_PlayerList.getInstance().purgeAll();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -47,18 +50,18 @@ public class Command_glist extends TFM_Command
|
|||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
{
|
{
|
||||||
String username;
|
String username;
|
||||||
List<String> ip_addresses = new ArrayList<String>();
|
List<String> ips = new ArrayList<String>();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Player player = getPlayer(args[1]);
|
Player player = getPlayer(args[1]);
|
||||||
|
|
||||||
username = player.getName();
|
username = player.getName();
|
||||||
ip_addresses.add(player.getAddress().getAddress().getHostAddress());
|
ips.add(player.getAddress().getAddress().getHostAddress());
|
||||||
}
|
}
|
||||||
catch (PlayerNotFoundException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]);
|
final TFM_PlayerEntry entry = TFM_PlayerList.getInstance().getEntry(args[1]);
|
||||||
|
|
||||||
if (entry == null)
|
if (entry == null)
|
||||||
{
|
{
|
||||||
@ -66,44 +69,44 @@ public class Command_glist extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
username = entry.getUsername();
|
username = entry.getLastJoinName();
|
||||||
ip_addresses = entry.getIpAddresses();
|
ips = entry.getIps();
|
||||||
}
|
}
|
||||||
|
|
||||||
String mode = args[0].toLowerCase();
|
String mode = args[0].toLowerCase();
|
||||||
if (mode.equalsIgnoreCase("ban"))
|
if (mode.equalsIgnoreCase("ban"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true);
|
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ","), true);
|
||||||
|
|
||||||
Player player = server.getPlayerExact(username);
|
Player player = server.getPlayerExact(username);
|
||||||
if (player != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
||||||
player.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: http://www.totalfreedom.boards.net");
|
player.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: http://www.totalfreedom.boards.net");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.banUsername(username, null, null, null);
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(Bukkit.getOfflinePlayer(username).getUniqueId(), username));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String ip_address : ip_addresses)
|
for (String ip : ips)
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.banIP(ip_address, null, null, null);
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, username));
|
||||||
String[] ip_address_parts = ip_address.split("\\.");
|
String[] ip_address_parts = ip.split("\\.");
|
||||||
TFM_ServerInterface.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", null, null, null);
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", username));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (mode.equalsIgnoreCase("unban") || mode.equalsIgnoreCase("pardon"))
|
else if (mode.equalsIgnoreCase("unban") || mode.equalsIgnoreCase("pardon"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true);
|
TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ips, ","), true);
|
||||||
|
|
||||||
TFM_ServerInterface.unbanUsername(username);
|
TFM_BanManager.getInstance().unbanUuid(Bukkit.getOfflinePlayer(username).getUniqueId());
|
||||||
|
|
||||||
for (String ip_address : ip_addresses)
|
for (String ip : ips)
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.unbanIP(ip_address);
|
TFM_BanManager.getInstance().unbanIp(ip);
|
||||||
String[] ip_address_parts = ip_address.split("\\.");
|
String[] ipParts = ip.split("\\.");
|
||||||
TFM_ServerInterface.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*");
|
TFM_BanManager.getInstance().unbanIp(ipParts[0] + "." + ipParts[1] + ".*.*");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_WorldEditBridge;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_WorldEditBridge;
|
|
||||||
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -36,16 +38,22 @@ public class Command_gtfo extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String ban_reason = null;
|
String reason = null;
|
||||||
if (args.length >= 2)
|
if (args.length >= 2)
|
||||||
{
|
{
|
||||||
ban_reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
|
TFM_Util.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
|
||||||
|
|
||||||
// Undo WorldEdits:
|
// Undo WorldEdits:
|
||||||
TFM_WorldEditBridge.getInstance().undo(player, 15);
|
try
|
||||||
|
{
|
||||||
|
TFM_WorldEditBridge.getInstance().undo(player, 15);
|
||||||
|
}
|
||||||
|
catch (NoClassDefFoundError ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
// rollback
|
// rollback
|
||||||
TFM_RollbackManager.rollback(player.getName());
|
TFM_RollbackManager.rollback(player.getName());
|
||||||
@ -71,20 +79,21 @@ public class Command_gtfo extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ban IP address:
|
// ban IP address:
|
||||||
String user_ip = player.getAddress().getAddress().getHostAddress();
|
String ip = player.getAddress().getAddress().getHostAddress();
|
||||||
String[] ip_parts = user_ip.split("\\.");
|
String[] ipParts = ip.split("\\.");
|
||||||
if (ip_parts.length == 4)
|
if (ipParts.length == 4)
|
||||||
{
|
{
|
||||||
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
ip = String.format("%s.%s.*.*", ipParts[0], ipParts[1]);
|
||||||
}
|
}
|
||||||
TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", player.getName(), user_ip), ChatColor.RED);
|
TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", player.getName(), ip), ChatColor.RED);
|
||||||
TFM_ServerInterface.banIP(user_ip, ban_reason, null, null);
|
|
||||||
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName(), sender.getName(), null, reason));
|
||||||
|
|
||||||
// ban username:
|
// ban username:
|
||||||
TFM_ServerInterface.banUsername(player.getName(), ban_reason, null, null);
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName(), sender.getName(), null, reason));
|
||||||
|
|
||||||
// kick Player:
|
// kick Player:
|
||||||
player.kickPlayer(ChatColor.RED + "GTFO" + (ban_reason != null ? ("\nReason: " + ChatColor.YELLOW + ban_reason) : ""));
|
player.kickPlayer(ChatColor.RED + "GTFO" + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason) : ""));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -25,7 +25,7 @@ public class Command_halt extends TFM_Command
|
|||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
TFM_PlayerData.getPlayerData(player).setHalted(true);
|
TFM_PlayerData.getPlayerData(player).setHalted(true);
|
||||||
counter++;
|
counter++;
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -22,6 +22,7 @@ public class Command_invis extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("smite"))
|
if (args[0].equalsIgnoreCase("smite"))
|
||||||
{
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Smiting all invisible players", true);
|
||||||
smite = true;
|
smite = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -38,9 +39,9 @@ public class Command_invis extends TFM_Command
|
|||||||
if (player.hasPotionEffect(PotionEffectType.INVISIBILITY))
|
if (player.hasPotionEffect(PotionEffectType.INVISIBILITY))
|
||||||
{
|
{
|
||||||
players.add(player.getName());
|
players.add(player.getName());
|
||||||
if (smite && !TFM_SuperadminList.isUserSuperadmin(player))
|
if (smite && !TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
Command_smite.smite(player);
|
player.setHealth(0.0);
|
||||||
smites++;
|
smites++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
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;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Kick all non-superadmins on server.", usage = "/<command>")
|
@CommandParameters(description = "Kick all non-superadmins on server.", usage = "/<command>")
|
||||||
public class Command_kicknoob extends TFM_Command
|
public class Command_kicknoob extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -18,7 +18,7 @@ public class Command_kicknoob extends TFM_Command
|
|||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
|
player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -4,8 +4,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerRank;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerRank;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ public class Command_list extends TFM_Command
|
|||||||
final List<String> names = new ArrayList<String>();
|
final List<String> names = new ArrayList<String>();
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final boolean userSuperadmin = TFM_SuperadminList.isUserSuperadmin(player);
|
final boolean userSuperadmin = TFM_AdminList.isSuperAdmin(player);
|
||||||
|
|
||||||
if (listFilter == Command_list.ListFilter.ADMINS && !userSuperadmin)
|
if (listFilter == Command_list.ListFilter.ADMINS && !userSuperadmin)
|
||||||
{
|
{
|
||||||
|
@ -1,14 +1,16 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PermbanList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Download the superadmin and permban lists from the main TotalFreedom server.", usage = "/<command>")
|
@CommandParameters(description = "Download the superadmin and permban lists from the main TotalFreedom server.", usage = "/<command>")
|
||||||
public class Command_listsync extends TFM_Command
|
public class Command_listsync extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -19,8 +21,10 @@ public class Command_listsync extends TFM_Command
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TFM_Util.downloadFile("http://madgeekonline.com/apps/get_superadmins_raw.php", new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE));
|
TFM_AdminList.createBackup();
|
||||||
TotalFreedomMod.loadSuperadminConfig();
|
TFM_Util.downloadFile("http://madgeekonline.com/apps/get_superadmins_raw.php", new File(TotalFreedomMod.plugin.getDataFolder(),
|
||||||
|
TotalFreedomMod.SUPERADMIN_FILE));
|
||||||
|
TFM_AdminList.load();
|
||||||
TFM_Util.adminAction(sender.getName(), TotalFreedomMod.SUPERADMIN_FILE + " downloaded.", false);
|
TFM_Util.adminAction(sender.getName(), TotalFreedomMod.SUPERADMIN_FILE + " downloaded.", false);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -30,8 +34,10 @@ public class Command_listsync extends TFM_Command
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TFM_Util.downloadFile("http://madgeekonline.com/apps/get_permbans_raw.php", new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.PERMBAN_FILE));
|
TFM_PermbanList.createBackup();
|
||||||
TotalFreedomMod.loadPermbanConfig();
|
TFM_Util.downloadFile("http://madgeekonline.com/apps/get_permbans_raw.php", new File(TotalFreedomMod.plugin.getDataFolder(),
|
||||||
|
TotalFreedomMod.PERMBAN_FILE));
|
||||||
|
TFM_PermbanList.load();
|
||||||
TFM_Util.adminAction(sender.getName(), TotalFreedomMod.PERMBAN_FILE + " downloaded.", false);
|
TFM_Util.adminAction(sender.getName(), TotalFreedomMod.PERMBAN_FILE + " downloaded.", false);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -8,7 +8,7 @@ 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;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Block target's minecraft input. This is evil, and I never should have wrote it.", usage = "/<command> <all | purge | <<partialname> on | off>>")
|
@CommandParameters(description = "Block target's minecraft input. This is evil, and I never should have wrote it.", usage = "/<command> <all | purge | <<partialname> on | off>>")
|
||||||
public class Command_lockup extends TFM_Command
|
public class Command_lockup extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -9,9 +9,9 @@ import java.util.Iterator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
@ -109,11 +109,11 @@ public class Command_logs extends TFM_Command
|
|||||||
}.runTaskAsynchronously(TotalFreedomMod.plugin);
|
}.runTaskAsynchronously(TotalFreedomMod.plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void deactivateSuperadmin(TFM_Superadmin superadmin)
|
public static void deactivateSuperadmin(TFM_Admin superadmin)
|
||||||
{
|
{
|
||||||
for (String ip : superadmin.getIps())
|
for (String ip : superadmin.getIps())
|
||||||
{
|
{
|
||||||
updateLogsRegistration(null, superadmin.getName(), ip, Command_logs.LogsRegistrationMode.DELETE);
|
updateLogsRegistration(null, superadmin.getLastLoginName(), ip, Command_logs.LogsRegistrationMode.DELETE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_EssentialsBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Attempt to detect \"invisible griefers\" and \"nukers\".", usage = "/<command> <on | off> [range] [blockrate]")
|
@CommandParameters(description = "Attempt to detect \"invisible griefers\" and \"nukers\".", usage = "/<command> <on | off> [range] [blockrate]")
|
||||||
public class Command_nonuke extends TFM_Command
|
public class Command_nonuke extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -26,7 +26,7 @@ public class Command_onlinemode extends TFM_Command
|
|||||||
{
|
{
|
||||||
boolean online_mode;
|
boolean online_mode;
|
||||||
|
|
||||||
if (sender instanceof Player && !TFM_SuperadminList.isSeniorAdmin(sender, true))
|
if (sender instanceof Player && !TFM_AdminList.isSeniorAdmin(sender, true))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@ -38,7 +38,7 @@ public class Command_op extends TFM_Command
|
|||||||
// if the player is not online
|
// if the player is not online
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)
|
if (TFM_AdminList.isSuperAdmin(sender) || senderIsConsole)
|
||||||
{
|
{
|
||||||
player = server.getOfflinePlayer(args[0]);
|
player = server.getOfflinePlayer(args[0]);
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Manage operators", usage = "/<command> <count | list | purge>")
|
@CommandParameters(description = "Manage operators", usage = "/<command> <count | list>")
|
||||||
public class Command_ops extends TFM_Command
|
public class Command_ops extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -51,29 +50,6 @@ public class Command_ops extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("purge"))
|
|
||||||
{
|
|
||||||
if (!senderIsConsole)
|
|
||||||
{
|
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all operators", true);
|
|
||||||
|
|
||||||
for (OfflinePlayer player : server.getOperators())
|
|
||||||
{
|
|
||||||
player.setOp(false);
|
|
||||||
|
|
||||||
if (player.isOnline())
|
|
||||||
{
|
|
||||||
player.getPlayer().sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PermbanList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -7,7 +8,7 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Manage permanently banned players and IPs.", usage = "/<command> <list | reload>")
|
@CommandParameters(description = "Manage permanently banned players and IPs.", usage = "/<command> <list | reload>")
|
||||||
public class Command_permban extends TFM_Command
|
public class Command_permban extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -31,7 +32,8 @@ public class Command_permban extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
playerMsg("Reloading permban list...", ChatColor.RED);
|
playerMsg("Reloading permban list...", ChatColor.RED);
|
||||||
TotalFreedomMod.loadPermbanConfig();
|
TFM_PermbanList.createBackup();
|
||||||
|
TFM_PermbanList.load();
|
||||||
dumplist(sender);
|
dumplist(sender);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -44,24 +46,24 @@ public class Command_permban extends TFM_Command
|
|||||||
|
|
||||||
private void dumplist(CommandSender sender)
|
private void dumplist(CommandSender sender)
|
||||||
{
|
{
|
||||||
if (TotalFreedomMod.permbannedPlayers.isEmpty())
|
if (TFM_PermbanList.getPermbannedPlayers().isEmpty())
|
||||||
{
|
{
|
||||||
playerMsg(sender, "No permanently banned player names.");
|
playerMsg(sender, "No permanently banned player names.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(sender, TotalFreedomMod.permbannedPlayers.size() + " permanently banned players:");
|
playerMsg(sender, TFM_PermbanList.getPermbannedPlayers().size() + " permanently banned players:");
|
||||||
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbannedPlayers, ", "));
|
playerMsg(sender, StringUtils.join(TFM_PermbanList.getPermbannedPlayers(), ", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TotalFreedomMod.permbannedIps.isEmpty())
|
if (TFM_PermbanList.getPermbannedIps().isEmpty())
|
||||||
{
|
{
|
||||||
playerMsg(sender, "No permanently banned IPs.");
|
playerMsg(sender, "No permanently banned IPs.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(sender, TotalFreedomMod.permbannedIps.size() + " permanently banned IPs:");
|
playerMsg(sender, TFM_PermbanList.getPermbannedIps().size() + " permanently banned IPs:");
|
||||||
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbannedIps, ", "));
|
playerMsg(sender, StringUtils.join(TFM_PermbanList.getPermbannedIps(), ", "));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
@ -38,7 +38,7 @@ public class Command_potion extends TFM_Command
|
|||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("clearall"))
|
else if (args[0].equalsIgnoreCase("clearall"))
|
||||||
{
|
{
|
||||||
if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole))
|
if (!(TFM_AdminList.isSuperAdmin(sender) || senderIsConsole))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
@ -71,7 +71,7 @@ public class Command_potion extends TFM_Command
|
|||||||
|
|
||||||
if (!target.equals(sender_p))
|
if (!target.equals(sender_p))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
playerMsg("Only superadmins can clear potion effects from other players.");
|
playerMsg("Only superadmins can clear potion effects from other players.");
|
||||||
return true;
|
return true;
|
||||||
@ -116,7 +116,7 @@ public class Command_potion extends TFM_Command
|
|||||||
|
|
||||||
if (!target.equals(sender_p))
|
if (!target.equals(sender_p))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
sender.sendMessage("Only superadmins can apply potion effects to other players.");
|
sender.sendMessage("Only superadmins can apply potion effects to other players.");
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(
|
@CommandParameters(
|
||||||
description = "Enable/disable the command prelogger. When this is on, logs will be filled with many duplicate messages.",
|
description = "Enable/disable the command prelogger. When this is on, logs will be filled with many duplicate messages.",
|
||||||
usage = "/<command> <on | off>")
|
usage = "/<command> <on | off>")
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_DisguiseCraftBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_DisguiseCraftBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Broadcasts the given message. Supports colors.", usage = "/<command> <message>")
|
@CommandParameters(description = "Broadcasts the given message. Supports colors.", usage = "/<command> <message>")
|
||||||
public class Command_rawsay extends TFM_Command
|
public class Command_rawsay extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = false)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = false)
|
||||||
@CommandParameters(description = "Remove all blocks of a certain type in the radius of certain players.", usage = "/<command> <block> [radius (default=50)] [player]")
|
@CommandParameters(description = "Remove all blocks of a certain type in the radius of certain players.", usage = "/<command> <block> [radius (default=50)] [player]")
|
||||||
public class Command_ro extends TFM_Command
|
public class Command_ro extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Issues a rollback on a player", usage = "/<command> <[partialname] | undo [partialname] purge [partialname] | purgeall>", aliases = "rb")
|
@CommandParameters(description = "Issues a rollback on a player", usage = "/<command> <[partialname] | undo [partialname] purge [partialname] | purgeall>", aliases = "rb")
|
||||||
public class Command_rollback extends TFM_Command
|
public class Command_rollback extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -99,7 +99,7 @@ public class Command_rollback extends TFM_Command
|
|||||||
|
|
||||||
if (playerName == null)
|
if (playerName == null)
|
||||||
{
|
{
|
||||||
playerName = TFM_UserList.getInstance(plugin).searchByPartialName(playerNameInput);
|
playerName = TFM_PlayerList.getInstance().getEntry(playerNameInput).getLastJoinName();
|
||||||
}
|
}
|
||||||
|
|
||||||
return playerName;
|
return playerName;
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
|
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -19,154 +21,138 @@ public class Command_saconfig extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
|
if (args.length == 0 || args.length > 2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
if (args[0].equals("list"))
|
if (args[0].equals("list"))
|
||||||
{
|
{
|
||||||
playerMsg("Superadmins: " + StringUtils.join(TFM_SuperadminList.getSuperadminNames(), ", "), ChatColor.GOLD);
|
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperNames(), ", "), ChatColor.GOLD);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (args[0].equals("clean"))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isSeniorAdmin(sender, true))
|
|
||||||
|
if (!TFM_AdminList.isSeniorAdmin(sender, true))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equals("clean"))
|
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
||||||
{
|
TFM_AdminList.cleanSuperadminList(true);
|
||||||
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperUUIDs(), ", "), ChatColor.YELLOW);
|
||||||
TFM_SuperadminList.cleanSuperadminList(true);
|
|
||||||
playerMsg("Superadmins: " + StringUtils.join(TFM_SuperadminList.getSuperadminNames(), ", "), ChatColor.YELLOW);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (args.length == 2)
|
|
||||||
{
|
|
||||||
if (args[0].equalsIgnoreCase("info"))
|
|
||||||
{
|
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender))
|
|
||||||
{
|
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Superadmin superadmin = TFM_SuperadminList.getAdminEntry(args[1].toLowerCase());
|
|
||||||
|
|
||||||
if (superadmin == null)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
superadmin = TFM_SuperadminList.getAdminEntry(getPlayer(args[1]).getName().toLowerCase());
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (superadmin == null)
|
|
||||||
{
|
|
||||||
playerMsg("Superadmin not found: " + args[1]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg(ChatColor.stripColor(TFM_Util.colorize(superadmin.toString())));
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!senderIsConsole)
|
|
||||||
{
|
|
||||||
playerMsg("This command may only be used from the console.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("add"))
|
|
||||||
{
|
|
||||||
Player player = null;
|
|
||||||
String admin_name = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
player = getPlayer(args[1]);
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
TFM_Superadmin superadmin = TFM_SuperadminList.getAdminEntry(args[1].toLowerCase());
|
|
||||||
if (superadmin != null)
|
|
||||||
{
|
|
||||||
admin_name = superadmin.getName();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player != null)
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list.", true);
|
|
||||||
TFM_SuperadminList.addSuperadmin(player);
|
|
||||||
}
|
|
||||||
else if (admin_name != null)
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Adding " + admin_name + " to the superadmin list.", true);
|
|
||||||
TFM_SuperadminList.addSuperadmin(admin_name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (TFM_Util.isRemoveCommand(args[0]))
|
|
||||||
{
|
|
||||||
if (!TFM_SuperadminList.isSeniorAdmin(sender))
|
|
||||||
{
|
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String targetName = args[1];
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
targetName = getPlayer(targetName).getName();
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TFM_SuperadminList.getSuperadminNames().contains(targetName.toLowerCase()))
|
|
||||||
{
|
|
||||||
playerMsg("Superadmin not found: " + targetName);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
|
|
||||||
TFM_SuperadminList.removeSuperadmin(targetName);
|
|
||||||
|
|
||||||
// Twitterbot
|
|
||||||
if (TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean())
|
|
||||||
{
|
|
||||||
TFM_TwitterHandler.getInstance().delTwitterVerbose(targetName, sender);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args[0].equalsIgnoreCase("info"))
|
||||||
|
{
|
||||||
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
|
{
|
||||||
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Admin superadmin = TFM_AdminList.getEntry(args[1].toLowerCase());
|
||||||
|
|
||||||
|
if (superadmin == null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
superadmin = TFM_AdminList.getEntry(getPlayer(args[1]).getName().toLowerCase());
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (superadmin == null)
|
||||||
|
{
|
||||||
|
playerMsg("Superadmin not found: " + args[1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg(superadmin.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!senderIsConsole)
|
||||||
|
{
|
||||||
|
playerMsg("This command may only be used from the console.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equalsIgnoreCase("add"))
|
||||||
|
{
|
||||||
|
OfflinePlayer player;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
player = getPlayer(args[1]);
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
final TFM_Admin superadmin = TFM_AdminList.getEntry(args[1]);
|
||||||
|
|
||||||
|
if (superadmin == null)
|
||||||
|
{
|
||||||
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
player = Bukkit.getOfflinePlayer(superadmin.getLastLoginName());
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list", true);
|
||||||
|
TFM_AdminList.addSuperadmin(player);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TFM_Util.isRemoveCommand(args[0]))
|
||||||
|
{
|
||||||
|
if (!TFM_AdminList.isSeniorAdmin(sender))
|
||||||
|
{
|
||||||
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String targetName = args[1];
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
targetName = getPlayer(targetName).getName();
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TFM_AdminList.getLowerSuperNames().contains(targetName.toLowerCase()))
|
||||||
|
{
|
||||||
|
playerMsg("Superadmin not found: " + targetName);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
|
||||||
|
TFM_AdminList.removeSuperadmin(Bukkit.getOfflinePlayer(targetName));
|
||||||
|
|
||||||
|
// Twitterbot
|
||||||
|
if (TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean())
|
||||||
|
{
|
||||||
|
TFM_TwitterHandler.getInstance().delTwitterVerbose(targetName, sender);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_WorldEditBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_WorldEditBridge;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -68,7 +68,7 @@ public class Command_stfu extends TFM_Command
|
|||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
playerdata = TFM_PlayerData.getPlayerData(player);
|
playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.setMuted(true);
|
playerdata.setMuted(true);
|
||||||
@ -118,7 +118,7 @@ public class Command_stfu extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Muting " + player.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Muting " + player.getName(), true);
|
||||||
playerdata.setMuted(true);
|
playerdata.setMuted(true);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -35,7 +35,7 @@ public class Command_survival extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("-a"))
|
if (args[0].equalsIgnoreCase("-a"))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)
|
if (!TFM_AdminList.isSuperAdmin(sender) || senderIsConsole)
|
||||||
{
|
{
|
||||||
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
@ -50,7 +50,7 @@ public class Command_survival extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
|
if (senderIsConsole || TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -27,7 +27,7 @@ public class Command_tag extends TFM_Command
|
|||||||
{
|
{
|
||||||
if ("clearall".equals(args[0]))
|
if ("clearall".equals(args[0]))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
@ -69,7 +69,7 @@ public class Command_tag extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
for (String word : FORBIDDEN_WORDS)
|
for (String word : FORBIDDEN_WORDS)
|
||||||
{
|
{
|
||||||
@ -98,7 +98,7 @@ public class Command_tag extends TFM_Command
|
|||||||
{
|
{
|
||||||
if ("clear".equals(args[0]))
|
if ("clear".equals(args[0]))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -44,7 +46,8 @@ public class Command_tban extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Tempbanning: " + player.getName() + " for 5 minutes.", true);
|
TFM_Util.adminAction(sender.getName(), "Tempbanning: " + player.getName() + " for 5 minutes.", true);
|
||||||
TFM_ServerInterface.banUsername(player.getName(), ChatColor.RED + "You have been temporarily banned for 5 minutes.", sender.getName(), TFM_Util.parseDateOffset("5m"));
|
TFM_BanManager.getInstance().addUuidBan(
|
||||||
|
new TFM_Ban(player.getUniqueId(), player.getName(), sender.getName(), TFM_Util.parseDateOffset("5m"), ChatColor.RED + "You have been temporarily banned for 5 minutes."));
|
||||||
player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
|
player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -2,6 +2,8 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
||||||
@ -37,24 +39,24 @@ public class Command_tempban extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder bcast_msg = new StringBuilder("Temporarily banned " + player.getName());
|
final StringBuilder message = new StringBuilder("Temporarily banned " + player.getName());
|
||||||
|
|
||||||
Date ban_duration = TFM_Util.parseDateOffset("30m");
|
Date expires = TFM_Util.parseDateOffset("30m");
|
||||||
if (args.length >= 2)
|
if (args.length >= 2)
|
||||||
{
|
{
|
||||||
Date parsed_offset = TFM_Util.parseDateOffset(args[1]);
|
Date parsed_offset = TFM_Util.parseDateOffset(args[1]);
|
||||||
if (parsed_offset != null)
|
if (parsed_offset != null)
|
||||||
{
|
{
|
||||||
ban_duration = parsed_offset;
|
expires = parsed_offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bcast_msg.append(" until ").append(date_format.format(ban_duration));
|
message.append(" until ").append(date_format.format(expires));
|
||||||
|
|
||||||
String ban_reason = "Banned by " + sender.getName();
|
String reason = "Banned by " + sender.getName();
|
||||||
if (args.length >= 3)
|
if (args.length >= 3)
|
||||||
{
|
{
|
||||||
ban_reason = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ") + " (" + sender.getName() + ")";
|
reason = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ") + " (" + sender.getName() + ")";
|
||||||
bcast_msg.append(", Reason: \"").append(ban_reason).append("\"");
|
message.append(", Reason: \"").append(reason).append("\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -69,10 +71,12 @@ public class Command_tempban extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), bcast_msg.toString(), true);
|
TFM_Util.adminAction(sender.getName(), message.toString(), true);
|
||||||
TFM_ServerInterface.banUsername(player.getName(), ban_reason, sender.getName(), ban_duration);
|
|
||||||
TFM_ServerInterface.banIP(player.getAddress().getAddress().getHostAddress().trim(), ban_reason, sender.getName(), ban_duration);
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(TFM_Util.getIp(player), player.getName(), sender.getName(), expires, reason));
|
||||||
player.kickPlayer(sender.getName() + " - " + bcast_msg.toString());
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName(), sender.getName(), expires, reason));
|
||||||
|
|
||||||
|
player.kickPlayer(sender.getName() + " - " + message.toString());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,8 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@ -21,12 +22,12 @@ public class Command_tfbanlist extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("purge"))
|
if (args[0].equalsIgnoreCase("purge"))
|
||||||
{
|
{
|
||||||
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
|
if (senderIsConsole || TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Purging the ban list", true);
|
TFM_Util.adminAction(sender.getName(), "Purging the ban list", true);
|
||||||
TFM_ServerInterface.wipeNameBans();
|
TFM_BanManager.getInstance().purgeUuidBans();
|
||||||
sender.sendMessage(ChatColor.GRAY + "Ban list has been purged.");
|
sender.sendMessage(ChatColor.GRAY + "Ban list has been purged.");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -43,20 +44,7 @@ public class Command_tfbanlist extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder banned_players = new StringBuilder();
|
playerMsg(TFM_BanManager.getInstance().getUuidBanList().size() + " UUID bans total");
|
||||||
banned_players.append("Banned Players: ");
|
|
||||||
boolean first = true;
|
|
||||||
for (OfflinePlayer player : server.getBannedPlayers())
|
|
||||||
{
|
|
||||||
if (!first)
|
|
||||||
{
|
|
||||||
banned_players.append(", ");
|
|
||||||
}
|
|
||||||
first = false;
|
|
||||||
banned_players.append(player.getName().trim());
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg(banned_players.toString());
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,10 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
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;
|
||||||
@ -22,11 +24,13 @@ public class Command_tfipbanlist extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("purge"))
|
if (args[0].equalsIgnoreCase("purge"))
|
||||||
{
|
{
|
||||||
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
|
if (senderIsConsole || TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.wipeIpBans();
|
TFM_BanManager.getInstance().purgeIpBans();
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Purging the IP ban list", true);
|
||||||
|
|
||||||
sender.sendMessage(ChatColor.GRAY + "IP ban list has been purged.");
|
sender.sendMessage(ChatColor.GRAY + "IP ban list has been purged.");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -43,26 +47,7 @@ public class Command_tfipbanlist extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> ip_bans = Arrays.asList(server.getIPBans().toArray(new String[0]));
|
playerMsg(TFM_BanManager.getInstance().getIpBanList().size() + " IPbans total");
|
||||||
Collections.sort(ip_bans);
|
|
||||||
|
|
||||||
StringBuilder banned_ips = new StringBuilder();
|
|
||||||
banned_ips.append("Banned IPs: ");
|
|
||||||
boolean first = true;
|
|
||||||
for (String ip : ip_bans)
|
|
||||||
{
|
|
||||||
if (!first)
|
|
||||||
{
|
|
||||||
banned_ips.append(", ");
|
|
||||||
}
|
|
||||||
if (ip.matches("^\\d{1,3}\\.\\d{1,3}\\.(\\d{1,3}|\\*)\\.(\\d{1,3}|\\*)$"))
|
|
||||||
{
|
|
||||||
first = false;
|
|
||||||
banned_ips.append(ip.trim());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg(banned_ips.toString());
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,15 @@ public class Command_tfm extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
playerMsg("TotalFreedomMod for 'TotalFreedom', the original all-op server.", ChatColor.GOLD);
|
playerMsg("TotalFreedomMod for 'Total Freedom', the original all-op server.", ChatColor.GOLD);
|
||||||
playerMsg(String.format("Version " + ChatColor.BLUE + "%s.%s" + ChatColor.BLUE + ", built %s.", TotalFreedomMod.pluginVersion, TotalFreedomMod.buildNumber, TotalFreedomMod.buildDate), ChatColor.GOLD);
|
playerMsg(String.format("Version "
|
||||||
|
+ ChatColor.BLUE + "%s.%s" + ChatColor.GOLD + ", built "
|
||||||
|
+ ChatColor.BLUE + "%s" + ChatColor.GOLD + " by "
|
||||||
|
+ ChatColor.BLUE + "%s" + ChatColor.GOLD + ".",
|
||||||
|
TotalFreedomMod.pluginVersion,
|
||||||
|
TotalFreedomMod.buildNumber,
|
||||||
|
TotalFreedomMod.buildDate,
|
||||||
|
TotalFreedomMod.buildCreator), ChatColor.GOLD);
|
||||||
playerMsg("Created by Madgeek1450 and DarthSalamon.", ChatColor.GOLD);
|
playerMsg("Created by Madgeek1450 and DarthSalamon.", ChatColor.GOLD);
|
||||||
playerMsg("Visit " + ChatColor.AQUA + "http://totalfreedom.me/" + ChatColor.GREEN + " for more information.", ChatColor.GREEN);
|
playerMsg("Visit " + ChatColor.AQUA + "http://totalfreedom.me/" + ChatColor.GREEN + " for more information.", ChatColor.GREEN);
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Update server files.", usage = "/<command>")
|
@CommandParameters(description = "Update server files.", usage = "/<command>")
|
||||||
public class Command_tfupdate extends TFM_Command
|
public class Command_tfupdate extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
|
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_DisguiseCraftBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_DisguiseCraftBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@ -56,7 +56,7 @@ public class Command_whitelist extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// all commands past this line are superadmin-only
|
// all commands past this line are superadmin-only
|
||||||
if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)))
|
if (!(senderIsConsole || TFM_AdminList.isSuperAdmin(sender)))
|
||||||
{
|
{
|
||||||
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -57,7 +57,7 @@ public class Command_whohas extends TFM_Command
|
|||||||
if (player.getInventory().contains(material))
|
if (player.getInventory().contains(material))
|
||||||
{
|
{
|
||||||
players.add(player.getName());
|
players.add(player.getName());
|
||||||
if (smite & !TFM_SuperadminList.isUserSuperadmin(player))
|
if (smite & !TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
Command_smite.smite(player);
|
Command_smite.smite(player);
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,11 @@ public class Command_wildcard extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
|
if (args.length == 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (args[0].equals("wildcard"))
|
if (args[0].equals("wildcard"))
|
||||||
{
|
{
|
||||||
playerMsg("What the hell are you trying to do, you stupid idiot...", ChatColor.RED);
|
playerMsg("What the hell are you trying to do, you stupid idiot...", ChatColor.RED);
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Wipe the flatlands map. Requires manual restart after command is used.", usage = "/<command>")
|
@CommandParameters(description = "Wipe the flatlands map. Requires manual restart after command is used.", usage = "/<command>")
|
||||||
public class Command_wipeflatlands extends TFM_Command
|
public class Command_wipeflatlands extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -59,82 +59,78 @@ public abstract class TFM_Command
|
|||||||
|
|
||||||
public boolean senderHasPermission()
|
public boolean senderHasPermission()
|
||||||
{
|
{
|
||||||
CommandPermissions permissions = commandClass.getAnnotation(CommandPermissions.class);
|
final CommandPermissions permissions = commandClass.getAnnotation(CommandPermissions.class);
|
||||||
if (permissions != null)
|
|
||||||
{
|
|
||||||
boolean is_super = TFM_SuperadminList.isUserSuperadmin(this.commandSender);
|
|
||||||
boolean is_senior = false;
|
|
||||||
if (is_super)
|
|
||||||
{
|
|
||||||
is_senior = TFM_SuperadminList.isSeniorAdmin(this.commandSender);
|
|
||||||
}
|
|
||||||
|
|
||||||
AdminLevel level = permissions.level();
|
if (permissions == null)
|
||||||
SourceType source = permissions.source();
|
|
||||||
boolean block_host_console = permissions.block_host_console();
|
|
||||||
|
|
||||||
Player sender_p = null;
|
|
||||||
if (this.commandSender instanceof Player)
|
|
||||||
{
|
|
||||||
sender_p = (Player) this.commandSender;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender_p == null)
|
|
||||||
{
|
|
||||||
if (source == SourceType.ONLY_IN_GAME)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (level == AdminLevel.SENIOR && !is_senior)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (block_host_console && TFM_Util.isFromHostConsole(this.commandSender.getName()))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (source == SourceType.ONLY_CONSOLE)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (level == AdminLevel.SENIOR)
|
|
||||||
{
|
|
||||||
if (is_senior)
|
|
||||||
{
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(sender_p);
|
|
||||||
Boolean superadminIdVerified = playerdata.isSuperadminIdVerified();
|
|
||||||
|
|
||||||
if (superadminIdVerified != null)
|
|
||||||
{
|
|
||||||
if (!superadminIdVerified.booleanValue())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (level == AdminLevel.SUPER && !is_super)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (level == AdminLevel.OP && !sender_p.isOp())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
TFM_Log.warning(commandClass.getName() + " is missing permissions annotation.");
|
TFM_Log.warning(commandClass.getName() + " is missing permissions annotation.");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isSuper = TFM_AdminList.isSuperAdmin(commandSender);
|
||||||
|
boolean isSenior = false;
|
||||||
|
|
||||||
|
if (isSuper)
|
||||||
|
{
|
||||||
|
isSenior = TFM_AdminList.isSeniorAdmin(commandSender);
|
||||||
|
}
|
||||||
|
|
||||||
|
final AdminLevel level = permissions.level();
|
||||||
|
final SourceType source = permissions.source();
|
||||||
|
final boolean blockHostConsole = permissions.blockHostConsole();
|
||||||
|
|
||||||
|
if (!(commandSender instanceof Player))
|
||||||
|
{
|
||||||
|
if (source == SourceType.ONLY_IN_GAME)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level == AdminLevel.SENIOR && !isSenior)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (blockHostConsole && TFM_Util.isFromHostConsole(commandSender.getName()))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Player senderPlayer = (Player) commandSender;
|
||||||
|
|
||||||
|
if (source == SourceType.ONLY_CONSOLE)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level == AdminLevel.SENIOR)
|
||||||
|
{
|
||||||
|
if (!isSenior)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TFM_PlayerData.getPlayerData(senderPlayer).isSuperadminIdVerified())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level == AdminLevel.SUPER && !isSuper)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level == AdminLevel.OP && !senderPlayer.isOp())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,82 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class TFM_CommandHandler
|
||||||
|
{
|
||||||
|
public static final String COMMAND_PATH = TFM_Command.class.getPackage().getName(); // "me.StevenLawson.TotalFreedomMod.Commands";
|
||||||
|
public static final String COMMAND_PREFIX = "Command_";
|
||||||
|
|
||||||
|
public static boolean handleCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
|
||||||
|
{
|
||||||
|
final Player playerSender;
|
||||||
|
final boolean senderIsConsole;
|
||||||
|
|
||||||
|
if (sender instanceof Player)
|
||||||
|
{
|
||||||
|
senderIsConsole = false;
|
||||||
|
playerSender = (Player) sender;
|
||||||
|
|
||||||
|
TFM_Log.info(String.format("[PLAYER_COMMAND] %s (%s): /%s %s",
|
||||||
|
playerSender.getName(),
|
||||||
|
ChatColor.stripColor(playerSender.getDisplayName()),
|
||||||
|
commandLabel,
|
||||||
|
StringUtils.join(args, " ")), true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
senderIsConsole = true;
|
||||||
|
playerSender = null;
|
||||||
|
|
||||||
|
TFM_Log.info(String.format("[CONSOLE_COMMAND] %s: /%s %s",
|
||||||
|
sender.getName(),
|
||||||
|
commandLabel,
|
||||||
|
StringUtils.join(args, " ")), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
final TFM_Command dispatcher;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final ClassLoader classLoader = TotalFreedomMod.class.getClassLoader();
|
||||||
|
dispatcher = (TFM_Command) classLoader.loadClass(String.format("%s.%s%s",
|
||||||
|
COMMAND_PATH,
|
||||||
|
COMMAND_PREFIX,
|
||||||
|
cmd.getName().toLowerCase())).newInstance();
|
||||||
|
dispatcher.setup(TotalFreedomMod.plugin, sender, dispatcher.getClass());
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe("Could not load command: " + cmd.getName());
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
|
||||||
|
sender.sendMessage(ChatColor.RED + "Command Error! Could not load command: " + cmd.getName());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!dispatcher.senderHasPermission())
|
||||||
|
{
|
||||||
|
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return dispatcher.run(sender, playerSender, cmd, commandLabel, args, senderIsConsole);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe("Command Error: " + commandLabel);
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
sender.sendMessage(ChatColor.RED + "Command Error: " + ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -4,6 +4,7 @@ import java.io.IOException;
|
|||||||
import java.security.CodeSource;
|
import java.security.CodeSource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
@ -23,11 +24,17 @@ import org.bukkit.plugin.Plugin;
|
|||||||
|
|
||||||
public class TFM_CommandLoader
|
public class TFM_CommandLoader
|
||||||
{
|
{
|
||||||
public static final Pattern COMMAND_CLASS_PATTERN = Pattern.compile(TotalFreedomMod.COMMAND_PATH.replace('.', '/') + "/(" + TotalFreedomMod.COMMAND_PREFIX + "[^\\$]+)\\.class");
|
public static final Pattern COMMAND_PATTERN;
|
||||||
private List<TFM_CommandInfo> commandList = null;
|
private final List<TFM_CommandInfo> commandList;
|
||||||
|
|
||||||
|
static
|
||||||
|
{
|
||||||
|
COMMAND_PATTERN = Pattern.compile(TFM_CommandHandler.COMMAND_PATH.replace('.', '/') + "/(" + TFM_CommandHandler.COMMAND_PREFIX + "[^\\$]+)\\.class");
|
||||||
|
}
|
||||||
|
|
||||||
private TFM_CommandLoader()
|
private TFM_CommandLoader()
|
||||||
{
|
{
|
||||||
|
commandList = new ArrayList<TFM_CommandInfo>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void scan()
|
public void scan()
|
||||||
@ -38,11 +45,8 @@ public class TFM_CommandLoader
|
|||||||
TFM_Log.severe("Error loading commandMap.");
|
TFM_Log.severe("Error loading commandMap.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
commandList.clear();
|
||||||
if (commandList == null)
|
commandList.addAll(getCommands());
|
||||||
{
|
|
||||||
commandList = getCommands();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (TFM_CommandInfo commandInfo : commandList)
|
for (TFM_CommandInfo commandInfo : commandList)
|
||||||
{
|
{
|
||||||
@ -136,15 +140,15 @@ public class TFM_CommandLoader
|
|||||||
while ((zipEntry = zip.getNextEntry()) != null)
|
while ((zipEntry = zip.getNextEntry()) != null)
|
||||||
{
|
{
|
||||||
String entryName = zipEntry.getName();
|
String entryName = zipEntry.getName();
|
||||||
Matcher matcher = COMMAND_CLASS_PATTERN.matcher(entryName);
|
Matcher matcher = COMMAND_PATTERN.matcher(entryName);
|
||||||
if (matcher.find())
|
if (matcher.find())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Class<?> commandClass = Class.forName(TotalFreedomMod.COMMAND_PATH + "." + matcher.group(1));
|
Class<?> commandClass = Class.forName(TFM_CommandHandler.COMMAND_PATH + "." + matcher.group(1));
|
||||||
|
|
||||||
CommandPermissions commandPermissions = (CommandPermissions) commandClass.getAnnotation(CommandPermissions.class);
|
CommandPermissions commandPermissions = commandClass.getAnnotation(CommandPermissions.class);
|
||||||
CommandParameters commandParameters = (CommandParameters) commandClass.getAnnotation(CommandParameters.class);
|
CommandParameters commandParameters = commandClass.getAnnotation(CommandParameters.class);
|
||||||
|
|
||||||
if (commandPermissions != null && commandParameters != null)
|
if (commandPermissions != null && commandParameters != null)
|
||||||
{
|
{
|
||||||
@ -153,7 +157,7 @@ public class TFM_CommandLoader
|
|||||||
matcher.group(1).split("_")[1],
|
matcher.group(1).split("_")[1],
|
||||||
commandPermissions.level(),
|
commandPermissions.level(),
|
||||||
commandPermissions.source(),
|
commandPermissions.source(),
|
||||||
commandPermissions.block_host_console(),
|
commandPermissions.blockHostConsole(),
|
||||||
commandParameters.description(),
|
commandParameters.description(),
|
||||||
commandParameters.usage(),
|
commandParameters.usage(),
|
||||||
commandParameters.aliases());
|
commandParameters.aliases());
|
||||||
@ -202,7 +206,7 @@ public class TFM_CommandLoader
|
|||||||
|
|
||||||
public List<String> getAliases()
|
public List<String> getAliases()
|
||||||
{
|
{
|
||||||
return aliases;
|
return Collections.unmodifiableList(aliases);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Class<?> getCommandClass()
|
public Class<?> getCommandClass()
|
||||||
|
150
src/me/StevenLawson/TotalFreedomMod/Config/TFM_Config.java
Normal file
150
src/me/StevenLawson/TotalFreedomMod/Config/TFM_Config.java
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Config;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.apache.commons.lang.exception.ExceptionUtils;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a definable YAML configuration.
|
||||||
|
*
|
||||||
|
* @see YamlConfiguration
|
||||||
|
*/
|
||||||
|
public class TFM_Config extends YamlConfiguration // BukkitLib @ https://github.com/Pravian/BukkitLib
|
||||||
|
{
|
||||||
|
private final Plugin plugin;
|
||||||
|
private final File configFile;
|
||||||
|
private final boolean copyDefaults;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new YamlConfig instance.
|
||||||
|
*
|
||||||
|
* <p>Example:
|
||||||
|
* <pre>
|
||||||
|
* YamlConfig config = new YamlConfig(this, "config.yml", true);
|
||||||
|
* config.load();
|
||||||
|
* </pre></p>
|
||||||
|
*
|
||||||
|
* @param plugin The plugin to which the config belongs.
|
||||||
|
* @param fileName The filename of the config file.
|
||||||
|
* @param copyDefaults If the defaults should be copied and/loaded from a config in the plugin jar-file.
|
||||||
|
*/
|
||||||
|
public TFM_Config(Plugin plugin, String fileName, boolean copyDefaults)
|
||||||
|
{
|
||||||
|
this(plugin, TFM_Util.getPluginFile(plugin, fileName), copyDefaults);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new YamlConfig instance.
|
||||||
|
*
|
||||||
|
* <p>Example:
|
||||||
|
* <pre>
|
||||||
|
* YamlConfig config = new YamlConfig(this, new File(plugin.getDataFolder() + "/players", "DarthSalamon.yml"), false);
|
||||||
|
* config.load();
|
||||||
|
* </pre></p>
|
||||||
|
*
|
||||||
|
* @param plugin The plugin to which the config belongs.
|
||||||
|
* @param file The file of the config file.
|
||||||
|
* @param copyDefaults If the defaults should be copied and/loaded from a config in the plugin jar-file.
|
||||||
|
*/
|
||||||
|
public TFM_Config(Plugin plugin, File file, boolean copyDefaults)
|
||||||
|
{
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.configFile = file;
|
||||||
|
this.copyDefaults = copyDefaults;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saves the configuration to the predefined file.
|
||||||
|
*
|
||||||
|
* @see #YamlConfig(Plugin, String, boolean)
|
||||||
|
*/
|
||||||
|
public void save()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
super.save(configFile);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
plugin.getLogger().severe("Could not save configuration file: " + configFile.getName());
|
||||||
|
plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads the configuration from the predefined file.
|
||||||
|
*
|
||||||
|
* <p>Optionally, if loadDefaults has been set to true, the file will be copied over from the default inside the jar-file of the owning plugin.</p>
|
||||||
|
*
|
||||||
|
* @see #YamlConfig(Plugin, String, boolean)
|
||||||
|
*/
|
||||||
|
public void load()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (copyDefaults)
|
||||||
|
{
|
||||||
|
if (!configFile.exists())
|
||||||
|
{
|
||||||
|
configFile.getParentFile().mkdirs();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TFM_Util.copy(plugin.getResource(configFile.getName()), configFile);
|
||||||
|
}
|
||||||
|
catch (IOException ex)
|
||||||
|
{
|
||||||
|
plugin.getLogger().severe("Could not write default configuration file: " + configFile.getName());
|
||||||
|
plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
|
||||||
|
}
|
||||||
|
plugin.getLogger().info("Installed default configuration " + configFile.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
super.addDefaults(getDefaultConfig());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (configFile.exists())
|
||||||
|
{
|
||||||
|
super.load(configFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
plugin.getLogger().severe("Could not load configuration file: " + configFile.getName());
|
||||||
|
plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw YamlConfiguration this config is based on.
|
||||||
|
*
|
||||||
|
* @return The YamlConfiguration.
|
||||||
|
* @see YamlConfiguration
|
||||||
|
*/
|
||||||
|
public YamlConfiguration getConfig()
|
||||||
|
{
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default configuration as been stored in the jar-file of the owning plugin.
|
||||||
|
* @return The default configuration.
|
||||||
|
*/
|
||||||
|
public YamlConfiguration getDefaultConfig()
|
||||||
|
{
|
||||||
|
final YamlConfiguration DEFAULT_CONFIG = new YamlConfiguration();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DEFAULT_CONFIG.load(plugin.getResource(configFile.getName()));
|
||||||
|
}
|
||||||
|
catch (Throwable ex)
|
||||||
|
{
|
||||||
|
plugin.getLogger().severe("Could not load default configuration: " + configFile.getName());
|
||||||
|
plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return DEFAULT_CONFIG;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod;
|
package me.StevenLawson.TotalFreedomMod.Config;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -33,6 +33,7 @@ public enum TFM_ConfigEntry
|
|||||||
TWITTERBOT_ENABLED(Boolean.class, "twitterbot_enabled"),
|
TWITTERBOT_ENABLED(Boolean.class, "twitterbot_enabled"),
|
||||||
HTTPD_ENABLED(Boolean.class, "httpd_enabled"),
|
HTTPD_ENABLED(Boolean.class, "httpd_enabled"),
|
||||||
AUTOKICK_ENABLED(Boolean.class, "autokick_enabled"),
|
AUTOKICK_ENABLED(Boolean.class, "autokick_enabled"),
|
||||||
|
CONSOLE_IS_SENIOR(Boolean.class, "console_is_senior"),
|
||||||
//
|
//
|
||||||
AUTO_PROTECT_RADIUS(Double.class, "auto_protect_radius"),
|
AUTO_PROTECT_RADIUS(Double.class, "auto_protect_radius"),
|
||||||
EXPLOSIVE_RADIUS(Double.class, "explosive_radius"),
|
EXPLOSIVE_RADIUS(Double.class, "explosive_radius"),
|
||||||
@ -79,51 +80,51 @@ public enum TFM_ConfigEntry
|
|||||||
|
|
||||||
public String getString()
|
public String getString()
|
||||||
{
|
{
|
||||||
return TFM_Config.getInstance().getString(this);
|
return TFM_MainConfig.getInstance().getString(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String setString(String value)
|
public String setString(String value)
|
||||||
{
|
{
|
||||||
TFM_Config.getInstance().setString(this, value);
|
TFM_MainConfig.getInstance().setString(this, value);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Double getDouble()
|
public Double getDouble()
|
||||||
{
|
{
|
||||||
return TFM_Config.getInstance().getDouble(this);
|
return TFM_MainConfig.getInstance().getDouble(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Double setDouble(Double value)
|
public Double setDouble(Double value)
|
||||||
{
|
{
|
||||||
TFM_Config.getInstance().setDouble(this, value);
|
TFM_MainConfig.getInstance().setDouble(this, value);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean getBoolean()
|
public Boolean getBoolean()
|
||||||
{
|
{
|
||||||
return TFM_Config.getInstance().getBoolean(this);
|
return TFM_MainConfig.getInstance().getBoolean(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean setBoolean(Boolean value)
|
public Boolean setBoolean(Boolean value)
|
||||||
{
|
{
|
||||||
TFM_Config.getInstance().setBoolean(this, value);
|
TFM_MainConfig.getInstance().setBoolean(this, value);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getInteger()
|
public Integer getInteger()
|
||||||
{
|
{
|
||||||
return TFM_Config.getInstance().getInteger(this);
|
return TFM_MainConfig.getInstance().getInteger(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer setInteger(Integer value)
|
public Integer setInteger(Integer value)
|
||||||
{
|
{
|
||||||
TFM_Config.getInstance().setInteger(this, value);
|
TFM_MainConfig.getInstance().setInteger(this, value);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List getList()
|
public List<?> getList()
|
||||||
{
|
{
|
||||||
return TFM_Config.getInstance().getList(this);
|
return TFM_MainConfig.getInstance().getList(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TFM_ConfigEntry findConfigEntry(String name)
|
public static TFM_ConfigEntry findConfigEntry(String name)
|
@ -1,23 +1,26 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod;
|
package me.StevenLawson.TotalFreedomMod.Config;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.io.FileUtils;
|
import net.minecraft.util.org.apache.commons.io.FileUtils;
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
public class TFM_Config
|
public class TFM_MainConfig
|
||||||
{
|
{
|
||||||
public static final String CONFIG_FILENAME = "config.yml";
|
public static final String CONFIG_FILENAME = "config.yml";
|
||||||
public static final File CONFIG_FILE = new File(TotalFreedomMod.plugin.getDataFolder(), CONFIG_FILENAME);
|
public static final File CONFIG_FILE = new File(TotalFreedomMod.plugin.getDataFolder(), CONFIG_FILENAME);
|
||||||
//
|
//
|
||||||
private final EnumMap<TFM_ConfigEntry, Object> configEntryMap = new EnumMap<TFM_ConfigEntry, Object>(TFM_ConfigEntry.class);
|
private final EnumMap<TFM_ConfigEntry, Object> configEntryMap = new EnumMap<TFM_ConfigEntry, Object>(TFM_ConfigEntry.class);
|
||||||
|
|
||||||
private TFM_Config()
|
private TFM_MainConfig()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -258,7 +261,7 @@ public class TFM_Config
|
|||||||
{
|
{
|
||||||
private YamlConfiguration defaults = null;
|
private YamlConfiguration defaults = null;
|
||||||
|
|
||||||
public TFM_Config_DefaultsLoader(InputStream defaultConfig)
|
private TFM_Config_DefaultsLoader(InputStream defaultConfig)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -281,13 +284,13 @@ public class TFM_Config
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TFM_Config getInstance()
|
public static TFM_MainConfig getInstance()
|
||||||
{
|
{
|
||||||
return TFM_ConfigHolder.INSTANCE;
|
return TFM_ConfigHolder.INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class TFM_ConfigHolder
|
private static class TFM_ConfigHolder
|
||||||
{
|
{
|
||||||
private static final TFM_Config INSTANCE = new TFM_Config();
|
private static final TFM_MainConfig INSTANCE = new TFM_MainConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -12,7 +12,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
|
|
||||||
import static me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.*;
|
import static me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.*;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.HTTPD;
|
package me.StevenLawson.TotalFreedomMod.HTTPD;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -26,9 +26,9 @@ public class Module_list extends TFM_HTTPD_Module
|
|||||||
for (Player player : onlinePlayers)
|
for (Player player : onlinePlayers)
|
||||||
{
|
{
|
||||||
String prefix = "";
|
String prefix = "";
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(player))
|
if (TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
if (TFM_SuperadminList.isSeniorAdmin(player))
|
if (TFM_AdminList.isSeniorAdmin(player))
|
||||||
{
|
{
|
||||||
prefix = "[SrA]";
|
prefix = "[SrA]";
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.HTTPD;
|
package me.StevenLawson.TotalFreedomMod.HTTPD;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import java.util.UUID;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -34,14 +35,14 @@ public class Module_players extends TFM_HTTPD_Module
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Super admins (non-telnet and non-senior)
|
// Super admins (non-telnet and non-senior)
|
||||||
for (String superadmin : TFM_SuperadminList.getSuperadminNames())
|
for (UUID superadmin : TFM_AdminList.getSuperUUIDs())
|
||||||
{
|
{
|
||||||
if (TFM_SuperadminList.getSenioradminNames().contains(superadmin))
|
if (TFM_AdminList.getSeniorUUIDs().contains(superadmin))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_SuperadminList.getTelnetadminNames().contains(superadmin))
|
if (TFM_AdminList.getTelnetUUIDs().contains(superadmin))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -50,9 +51,9 @@ public class Module_players extends TFM_HTTPD_Module
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Telnet admins (non-senior)
|
// Telnet admins (non-senior)
|
||||||
for (String telnetadmin : TFM_SuperadminList.getTelnetadminNames())
|
for (UUID telnetadmin : TFM_AdminList.getTelnetUUIDs())
|
||||||
{
|
{
|
||||||
if (TFM_SuperadminList.getSenioradminNames().contains(telnetadmin))
|
if (TFM_AdminList.getSeniorUUIDs().contains(telnetadmin))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -60,7 +61,7 @@ public class Module_players extends TFM_HTTPD_Module
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Senior admins
|
// Senior admins
|
||||||
for (String senioradmin : TFM_SuperadminList.getSenioradminNames())
|
for (UUID senioradmin : TFM_AdminList.getSeniorUUIDs())
|
||||||
{
|
{
|
||||||
senioradmins.add(getName(senioradmin));
|
senioradmins.add(getName(senioradmin));
|
||||||
}
|
}
|
||||||
@ -79,16 +80,8 @@ public class Module_players extends TFM_HTTPD_Module
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getName(String caseInsensitiveName)
|
private String getName(UUID uuid)
|
||||||
{
|
{
|
||||||
final OfflinePlayer player = Bukkit.getOfflinePlayer(caseInsensitiveName);
|
return TFM_AdminList.getEntry(uuid).getLastLoginName();
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
return caseInsensitiveName;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return player.getName();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,8 @@ import java.util.regex.Pattern;
|
|||||||
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Method;
|
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Method;
|
||||||
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Response;
|
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Response;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import net.minecraft.util.org.apache.commons.io.FileUtils;
|
import net.minecraft.util.org.apache.commons.io.FileUtils;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringEscapeUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringEscapeUtils;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
@ -223,7 +223,7 @@ public class Module_schematic extends TFM_HTTPD_Module
|
|||||||
|
|
||||||
private boolean isAuthorized(String remoteAddress)
|
private boolean isAuthorized(String remoteAddress)
|
||||||
{
|
{
|
||||||
TFM_Superadmin entry = TFM_SuperadminList.getAdminEntryByIP(remoteAddress);
|
TFM_Admin entry = TFM_AdminList.getEntryByIp(remoteAddress);
|
||||||
return entry != null && entry.isActivated();
|
return entry != null && entry.isActivated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import java.util.regex.Matcher;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.HTTPSession;
|
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.HTTPSession;
|
||||||
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Response;
|
import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Response;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Listener;
|
package me.StevenLawson.TotalFreedomMod.Listener;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.*;
|
import me.StevenLawson.TotalFreedomMod.*;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -91,7 +92,7 @@ public class TFM_BlockListener implements Listener
|
|||||||
|
|
||||||
if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
|
if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
if (TFM_ProtectedArea.isInProtectedArea(blockLocation))
|
if (TFM_ProtectedArea.isInProtectedArea(blockLocation))
|
||||||
{
|
{
|
||||||
@ -161,7 +162,7 @@ public class TFM_BlockListener implements Listener
|
|||||||
|
|
||||||
if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
|
if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
if (TFM_ProtectedArea.isInProtectedArea(blockLocation))
|
if (TFM_ProtectedArea.isInProtectedArea(blockLocation))
|
||||||
{
|
{
|
||||||
@ -249,7 +250,7 @@ public class TFM_BlockListener implements Listener
|
|||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
public void onRollbackBlockBreak(BlockBreakEvent event)
|
public void onRollbackBlockBreak(BlockBreakEvent event)
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(event.getPlayer()))
|
if (!TFM_AdminList.isSuperAdmin(event.getPlayer()))
|
||||||
{
|
{
|
||||||
TFM_RollbackManager.blockBreak(event);
|
TFM_RollbackManager.blockBreak(event);
|
||||||
}
|
}
|
||||||
@ -258,7 +259,7 @@ public class TFM_BlockListener implements Listener
|
|||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
public void onRollbackBlockPlace(BlockPlaceEvent event)
|
public void onRollbackBlockPlace(BlockPlaceEvent event)
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(event.getPlayer()))
|
if (!TFM_AdminList.isSuperAdmin(event.getPlayer()))
|
||||||
{
|
{
|
||||||
TFM_RollbackManager.blockPlace(event);
|
TFM_RollbackManager.blockPlace(event);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Listener;
|
package me.StevenLawson.TotalFreedomMod.Listener;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Listener;
|
package me.StevenLawson.TotalFreedomMod.Listener;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.World.TFM_AdminWorld;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -96,7 +98,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
{
|
{
|
||||||
case STICK:
|
case STICK:
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -112,10 +114,15 @@ public class TFM_PlayerListener implements Listener
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.playerMsg(player, "Block edits at (" + ChatColor.WHITE + "x" + location.getBlockX() + ", y" + location.getBlockY() + ", z" + location.getBlockZ() + ChatColor.BLUE + ")" + ChatColor.WHITE + ":", ChatColor.BLUE);
|
TFM_Util.playerMsg(player, "Block edits at ("
|
||||||
|
+ ChatColor.WHITE + "x" + location.getBlockX()
|
||||||
|
+ ", y" + location.getBlockY()
|
||||||
|
+ ", z" + location.getBlockZ()
|
||||||
|
+ ChatColor.BLUE + ")" + ChatColor.WHITE + ":", ChatColor.BLUE);
|
||||||
for (RollbackEntry entry : entries)
|
for (RollbackEntry entry : entries)
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(player, " - " + ChatColor.BLUE + entry.author + " " + entry.getType() + " " + StringUtils.capitalize(entry.getMaterial().toString().toLowerCase()) + (entry.data == 0 ? "" : ":" + entry.data));
|
TFM_Util.playerMsg(player, " - " + ChatColor.BLUE + entry.author + " " + entry.getType() + " "
|
||||||
|
+ StringUtils.capitalize(entry.getMaterial().toString().toLowerCase()) + (entry.data == 0 ? "" : ":" + entry.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -166,7 +173,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TFM_SuperadminList.isSeniorAdmin(player, true))
|
if (!TFM_AdminList.isSeniorAdmin(player, true))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -202,7 +209,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TFM_SuperadminList.isSeniorAdmin(player, true))
|
if (!TFM_AdminList.isSeniorAdmin(player, true))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -330,7 +337,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
boolean freeze = false;
|
boolean freeze = false;
|
||||||
if (TotalFreedomMod.allPlayersFrozen)
|
if (TotalFreedomMod.allPlayersFrozen)
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
freeze = true;
|
freeze = true;
|
||||||
}
|
}
|
||||||
@ -454,10 +461,10 @@ public class TFM_PlayerListener implements Listener
|
|||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
String message = event.getMessage().trim();
|
String message = event.getMessage().trim();
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
// Check for spam
|
// Check for spam
|
||||||
Long lastRan = TFM_Heartbeat.getLastRan();
|
final Long lastRan = TFM_Heartbeat.getLastRan();
|
||||||
if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis())
|
if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis())
|
||||||
{
|
{
|
||||||
//TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates.");
|
//TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates.");
|
||||||
@ -489,7 +496,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
// Check for muted
|
// Check for muted
|
||||||
if (playerdata.isMuted())
|
if (playerdata.isMuted())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
player.sendMessage(ChatColor.RED + "You are muted, STFU!");
|
player.sendMessage(ChatColor.RED + "You are muted, STFU!");
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -537,9 +544,6 @@ public class TFM_PlayerListener implements Listener
|
|||||||
// Finally, set message
|
// Finally, set message
|
||||||
event.setMessage(message);
|
event.setMessage(message);
|
||||||
|
|
||||||
// Broadcast it to console (since 1.7 doesn't do that anymore)
|
|
||||||
TFM_Log.info(String.format(event.getFormat(), player.getDisplayName(), event.getMessage()), true);
|
|
||||||
|
|
||||||
// Set the tag
|
// Set the tag
|
||||||
if (playerdata.getTag() != null)
|
if (playerdata.getTag() != null)
|
||||||
{
|
{
|
||||||
@ -557,9 +561,9 @@ public class TFM_PlayerListener implements Listener
|
|||||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
|
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
|
||||||
{
|
{
|
||||||
String command = event.getMessage();
|
String command = event.getMessage();
|
||||||
Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.setLastCommand(command);
|
playerdata.setLastCommand(command);
|
||||||
|
|
||||||
if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
|
if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
|
||||||
@ -585,7 +589,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
// Block commands if player is muted
|
// Block commands if player is muted
|
||||||
if (playerdata.isMuted())
|
if (playerdata.isMuted())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
for (String commandName : BLOCKED_MUTED_CMDS)
|
for (String commandName : BLOCKED_MUTED_CMDS)
|
||||||
{
|
{
|
||||||
@ -617,11 +621,11 @@ public class TFM_PlayerListener implements Listener
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
for (Player pl : Bukkit.getOnlinePlayers())
|
for (Player pl : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(pl) && TFM_PlayerData.getPlayerData(pl).cmdspyEnabled())
|
if (TFM_AdminList.isSuperAdmin(pl) && TFM_PlayerData.getPlayerData(pl).cmdspyEnabled())
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(pl, player.getName() + ": " + command);
|
TFM_Util.playerMsg(pl, player.getName() + ": " + command);
|
||||||
}
|
}
|
||||||
@ -661,8 +665,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
playerdata.clearHistory();
|
playerdata.clearHistory();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log player quitting, because 1.7 doesn't do this
|
TFM_Log.info("[EXIT] " + player.getName() + " left the game.", true);
|
||||||
TFM_Log.info(player.getName() + " left the game.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
@ -673,80 +676,98 @@ public class TFM_PlayerListener implements Listener
|
|||||||
{
|
{
|
||||||
TotalFreedomMod.fuckoffEnabledFor.remove(player);
|
TotalFreedomMod.fuckoffEnabledFor.remove(player);
|
||||||
}
|
}
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
|
||||||
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.disarmMP44();
|
playerdata.disarmMP44();
|
||||||
if (playerdata.isCaged())
|
if (playerdata.isCaged())
|
||||||
{
|
{
|
||||||
playerdata.regenerateHistory();
|
playerdata.regenerateHistory();
|
||||||
playerdata.clearHistory();
|
playerdata.clearHistory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TFM_Log.info("[EXIT] " + player.getName() + " left the game.", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void onPlayerJoin(PlayerJoinEvent event)
|
public void onPlayerJoin(PlayerJoinEvent event)
|
||||||
{
|
{
|
||||||
try
|
final Player player = event.getPlayer();
|
||||||
|
final String ip = TFM_Util.getIp(player);
|
||||||
|
TFM_Log.info("[JOIN] " + TFM_Util.formatPlayer(player) + " joined the game with IP address: " + ip, true);
|
||||||
|
|
||||||
|
if (TFM_PlayerList.getInstance().existsEntry(player))
|
||||||
{
|
{
|
||||||
final Player player = event.getPlayer();
|
final TFM_PlayerEntry entry = TFM_PlayerList.getInstance().getEntry(player);
|
||||||
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
entry.setLastJoinUnix(TFM_Util.getUnixTime());
|
||||||
playerdata.setSuperadminIdVerified(null);
|
entry.setLastJoinName(player.getName());
|
||||||
|
entry.save();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TFM_Log.info("Added new player: " + TFM_Util.formatPlayer(player));
|
||||||
|
}
|
||||||
|
|
||||||
// Log join message, as 1.7 doesn't log it anymore
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
TFM_Log.info(player.getName() + " joined the game.");
|
playerdata.setSuperadminIdVerified(false);
|
||||||
|
|
||||||
TFM_UserList.getInstance(TotalFreedomMod.plugin).addUser(player);
|
// Verify strict IP match
|
||||||
|
if (TFM_AdminList.isSuperAdmin(player))
|
||||||
final boolean impostor = TFM_SuperadminList.isSuperadminImpostor(player);
|
{
|
||||||
|
if (TFM_BanManager.getInstance().isIpBanned(ip))
|
||||||
if (impostor || TFM_SuperadminList.isUserSuperadmin(player))
|
|
||||||
{
|
{
|
||||||
TFM_Util.bcastMsg(ChatColor.AQUA + player.getName() + " is " + TFM_PlayerRank.getLoginMessage(player));
|
TFM_BanManager.getInstance().unbanIp(ip);
|
||||||
|
|
||||||
if (impostor)
|
|
||||||
{
|
|
||||||
player.getInventory().clear();
|
|
||||||
player.setOp(false);
|
|
||||||
player.setGameMode(GameMode.SURVIVAL);
|
|
||||||
TFM_Util.bcastMsg("Warning: " + player.getName() + " has been flagged as an impostor!", ChatColor.RED);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (TFM_SuperadminList.verifyIdentity(player.getName(), player.getAddress().getAddress().getHostAddress()))
|
|
||||||
{
|
|
||||||
playerdata.setSuperadminIdVerified(Boolean.TRUE);
|
|
||||||
|
|
||||||
TFM_SuperadminList.updateLastLogin(player);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerdata.setSuperadminIdVerified(Boolean.FALSE);
|
|
||||||
|
|
||||||
TFM_Util.bcastMsg("Warning: " + player.getName() + " is an admin, but is using a username not registered to one of their IPs.", ChatColor.RED);
|
|
||||||
}
|
|
||||||
|
|
||||||
player.setOp(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (TFM_Util.DEVELOPERS.contains(player.getName()))
|
|
||||||
{
|
|
||||||
TFM_Util.bcastMsg(ChatColor.AQUA + player.getName() + " is " + TFM_PlayerRank.getLoginMessage(player));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
|
if (TFM_BanManager.getInstance().isUuidBanned(player.getUniqueId()))
|
||||||
{
|
{
|
||||||
new BukkitRunnable()
|
TFM_BanManager.getInstance().unbanUuid(player.getUniqueId());
|
||||||
{
|
}
|
||||||
@Override
|
|
||||||
public void run()
|
player.setOp(true);
|
||||||
{
|
|
||||||
player.sendMessage(ChatColor.RED + "Server is currently closed to non-superadmins.");
|
if (!TFM_AdminList.isIdentityMatched(player))
|
||||||
}
|
{
|
||||||
}.runTaskLater(TotalFreedomMod.plugin, 20L * 3L);
|
playerdata.setSuperadminIdVerified(false);
|
||||||
|
|
||||||
|
TFM_Util.bcastMsg("Warning: " + player.getName() + " is an admin, but is using an account not registered to one of their ip-list.", ChatColor.RED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerdata.setSuperadminIdVerified(true);
|
||||||
|
TFM_AdminList.updateLastLogin(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Throwable ex)
|
|
||||||
|
// Handle admin impostors
|
||||||
|
if (TFM_AdminList.isAdminImpostor(player))
|
||||||
{
|
{
|
||||||
|
TFM_Util.bcastMsg("Warning: " + player.getName() + " has been flagged as an impostor!", ChatColor.RED);
|
||||||
|
TFM_Util.bcastMsg(ChatColor.AQUA + player.getName() + " is " + TFM_PlayerRank.getLoginMessage(player));
|
||||||
|
player.getInventory().clear();
|
||||||
|
player.setOp(false);
|
||||||
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
}
|
}
|
||||||
|
else if (TFM_AdminList.isSuperAdmin(player) || TFM_Util.DEVELOPERS.contains(player.getName()))
|
||||||
|
{
|
||||||
|
TFM_Util.bcastMsg(ChatColor.AQUA + player.getName() + " is " + TFM_PlayerRank.getLoginMessage(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
if (TFM_ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
|
||||||
|
{
|
||||||
|
player.sendMessage(ChatColor.RED + "Server is currently closed to non-superadmins.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TotalFreedomMod.lockdownEnabled)
|
||||||
|
{
|
||||||
|
TFM_Util.playerMsg(player, "Warning: Server is currenty in lockdown-mode, new players will not be able to join!", ChatColor.RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.runTaskLater(TotalFreedomMod.plugin, 20L * 3L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Listener;
|
package me.StevenLawson.TotalFreedomMod.Listener;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -50,32 +51,15 @@ public class TFM_ServerListener implements Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
@Deprecated // Moved to TFM_TelnetListener
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL)
|
|
||||||
public void onRemoteServerCommand(RemoteServerCommandEvent event)
|
|
||||||
{
|
|
||||||
if (TFM_CommandBlocker.getInstance().isCommandBlocked(event.getCommand(), event.getSender()))
|
|
||||||
{
|
|
||||||
event.setCommand("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated // Moved to TFM_TelnetListener
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL)
|
|
||||||
public void onServerCommand(ServerCommandEvent event)
|
|
||||||
{
|
|
||||||
if (TFM_CommandBlocker.getInstance().isCommandBlocked(event.getCommand(), event.getSender()))
|
|
||||||
{
|
|
||||||
event.setCommand("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onServerPing(ServerListPingEvent event)
|
public void onServerPing(ServerListPingEvent event)
|
||||||
{
|
{
|
||||||
|
final String ip = event.getAddress().getHostAddress();
|
||||||
event.setMotd(TFM_Util.randomChatColor() + "Total" + TFM_Util.randomChatColor() + "Freedom " + ChatColor.DARK_GRAY + "-" + TFM_Util.randomChatColor() + " Bukkit v" + TFM_ServerInterface.getVersion());
|
event.setMotd(TFM_Util.randomChatColor() + "Total" + TFM_Util.randomChatColor() + "Freedom " + ChatColor.DARK_GRAY + "-" + TFM_Util.randomChatColor() + " Bukkit v" + TFM_ServerInterface.getVersion());
|
||||||
|
|
||||||
if (TFM_ServerInterface.isIPBanned(event.getAddress().getHostAddress()))
|
|
||||||
|
|
||||||
|
if (TFM_BanManager.getInstance().isIpBanned(ip))
|
||||||
{
|
{
|
||||||
event.setMotd(ChatColor.RED + "You are banned.");
|
event.setMotd(ChatColor.RED + "You are banned.");
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Listener;
|
package me.StevenLawson.TotalFreedomMod.Listener;
|
||||||
|
|
||||||
|
import me.StevenLawson.BukkitTelnet.api.TelnetCommandEvent;
|
||||||
|
import me.StevenLawson.BukkitTelnet.api.TelnetPreLoginEvent;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -12,7 +14,7 @@ import org.bukkit.event.Listener;
|
|||||||
public class TFM_TelnetListener implements Listener
|
public class TFM_TelnetListener implements Listener
|
||||||
{
|
{
|
||||||
@EventHandler(priority = EventPriority.NORMAL)
|
@EventHandler(priority = EventPriority.NORMAL)
|
||||||
public void onTelnetPreLogin(me.StevenLawson.BukkitTelnet.TelnetPreLoginEvent event)
|
public void onTelnetPreLogin(TelnetPreLoginEvent event)
|
||||||
{
|
{
|
||||||
|
|
||||||
final String ip = event.getIp();
|
final String ip = event.getIp();
|
||||||
@ -21,17 +23,17 @@ public class TFM_TelnetListener implements Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final TFM_Superadmin admin = TFM_SuperadminList.getAdminEntryByIP(ip, true);
|
final TFM_Admin admin = TFM_AdminList.getEntryByIp(ip, true);
|
||||||
|
|
||||||
if (admin == null || !(admin.isTelnetAdmin() || admin.isSeniorAdmin()))
|
if (admin == null || !admin.isTelnetAdmin())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
event.setBypassPassword(true);
|
event.setBypassPassword(true);
|
||||||
event.setName(admin.getName());
|
event.setName(admin.getLastLoginName());
|
||||||
|
|
||||||
final OfflinePlayer player = Bukkit.getOfflinePlayer(admin.getName());
|
final OfflinePlayer player = Bukkit.getOfflinePlayer(admin.getLastLoginName());
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -41,7 +43,7 @@ public class TFM_TelnetListener implements Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL)
|
@EventHandler(priority = EventPriority.NORMAL)
|
||||||
public void onTelnetCommand(me.StevenLawson.BukkitTelnet.TelnetCommandEvent event)
|
public void onTelnetCommand(TelnetCommandEvent event)
|
||||||
{
|
{
|
||||||
if (TFM_CommandBlocker.getInstance().isCommandBlocked(event.getCommand(), event.getSender()))
|
if (TFM_CommandBlocker.getInstance().isCommandBlocked(event.getCommand(), event.getSender()))
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Listener;
|
package me.StevenLawson.TotalFreedomMod.Listener;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminWorld;
|
import me.StevenLawson.TotalFreedomMod.World.TFM_AdminWorld;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod;
|
package me.StevenLawson.TotalFreedomMod;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import java.util.UUID;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
public class TFM_Superadmin
|
public class TFM_Admin
|
||||||
{
|
{
|
||||||
private final String name;
|
private final UUID uuid;
|
||||||
|
private String lastLoginName;
|
||||||
private final String loginMessage;
|
private final String loginMessage;
|
||||||
private final boolean isSeniorAdmin;
|
private final boolean isSeniorAdmin;
|
||||||
private final boolean isTelnetAdmin;
|
private final boolean isTelnetAdmin;
|
||||||
@ -16,21 +20,23 @@ public class TFM_Superadmin
|
|||||||
private Date lastLogin;
|
private Date lastLogin;
|
||||||
private boolean isActivated;
|
private boolean isActivated;
|
||||||
|
|
||||||
public TFM_Superadmin(String name, List<String> ips, Date lastLogin, String loginMessage, boolean isSeniorAdmin, boolean isTelnetAdmin, List<String> consoleAliases, boolean isActivated)
|
public TFM_Admin(UUID uuid, String lastLoginName, Date lastLogin, String loginMessage, boolean isSeniorAdmin, boolean isTelnetAdmin, boolean isActivated)
|
||||||
{
|
{
|
||||||
this.name = name.toLowerCase();
|
this.uuid = uuid;
|
||||||
this.ips = ips;
|
this.lastLoginName = lastLoginName;
|
||||||
|
this.ips = new ArrayList<String>();
|
||||||
this.lastLogin = lastLogin;
|
this.lastLogin = lastLogin;
|
||||||
this.loginMessage = loginMessage;
|
this.loginMessage = loginMessage;
|
||||||
this.isSeniorAdmin = isSeniorAdmin;
|
this.isSeniorAdmin = isSeniorAdmin;
|
||||||
this.isTelnetAdmin = isTelnetAdmin;
|
this.isTelnetAdmin = isTelnetAdmin;
|
||||||
this.consoleAliases = consoleAliases;
|
this.consoleAliases = new ArrayList<String>();
|
||||||
this.isActivated = isActivated;
|
this.isActivated = isActivated;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TFM_Superadmin(String name, ConfigurationSection section)
|
public TFM_Admin(UUID uuid, ConfigurationSection section)
|
||||||
{
|
{
|
||||||
this.name = name.toLowerCase();
|
this.uuid = uuid;
|
||||||
|
this.lastLoginName = section.getString("last_login_name");
|
||||||
this.ips = section.getStringList("ips");
|
this.ips = section.getStringList("ips");
|
||||||
this.lastLogin = TFM_Util.stringToDate(section.getString("last_login", TFM_Util.dateToString(new Date(0L))));
|
this.lastLogin = TFM_Util.stringToDate(section.getString("last_login", TFM_Util.dateToString(new Date(0L))));
|
||||||
this.loginMessage = section.getString("custom_login_message", "");
|
this.loginMessage = section.getString("custom_login_message", "");
|
||||||
@ -43,35 +49,47 @@ public class TFM_Superadmin
|
|||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
StringBuilder output = new StringBuilder();
|
final StringBuilder output = new StringBuilder();
|
||||||
|
|
||||||
try
|
output.append("UUID: ").append(uuid.toString()).append("\n");
|
||||||
{
|
output.append("- Last Login Name: ").append(lastLoginName).append("\n");
|
||||||
output.append("Name: ").append(this.name).append("\n");
|
output.append("- IPs: ").append(StringUtils.join(ips, ", ")).append("\n");
|
||||||
output.append("- IPs: ").append(StringUtils.join(this.ips, ", ")).append("\n");
|
output.append("- Last Login: ").append(TFM_Util.dateToString(lastLogin)).append("\n");
|
||||||
output.append("- Last Login: ").append(TFM_Util.dateToString(this.lastLogin)).append("\n");
|
output.append("- Custom Login Message: ").append(loginMessage).append("\n");
|
||||||
output.append("- Custom Login Message: ").append(this.loginMessage).append("\n");
|
output.append("- Is Senior Admin: ").append(isSeniorAdmin).append("\n");
|
||||||
output.append("- Is Senior Admin: ").append(this.isSeniorAdmin).append("\n");
|
output.append("- Is Telnet Admin: ").append(isTelnetAdmin).append("\n");
|
||||||
output.append("- Is Telnet Admin: ").append(this.isTelnetAdmin).append("\n");
|
output.append("- Console Aliases: ").append(StringUtils.join(consoleAliases, ", ")).append("\n");
|
||||||
output.append("- Console Aliases: ").append(StringUtils.join(this.consoleAliases, ", ")).append("\n");
|
output.append("- Is Activated: ").append(isActivated);
|
||||||
output.append("- Is Activated: ").append(this.isActivated);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
TFM_Log.severe(ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return output.toString();
|
return output.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName()
|
public UUID getUniqueId()
|
||||||
{
|
{
|
||||||
return name;
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastLoginName(String lastLoginName)
|
||||||
|
{
|
||||||
|
this.lastLoginName = lastLoginName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastLoginName()
|
||||||
|
{
|
||||||
|
return lastLoginName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getIps()
|
public List<String> getIps()
|
||||||
{
|
{
|
||||||
return ips;
|
return Collections.unmodifiableList(ips);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addIp(String ip)
|
||||||
|
{
|
||||||
|
if (!ips.contains(ip))
|
||||||
|
{
|
||||||
|
ips.add(ip);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getLastLogin()
|
public Date getLastLogin()
|
||||||
@ -96,7 +114,7 @@ public class TFM_Superadmin
|
|||||||
|
|
||||||
public List<String> getConsoleAliases()
|
public List<String> getConsoleAliases()
|
||||||
{
|
{
|
||||||
return consoleAliases;
|
return Collections.unmodifiableList(consoleAliases);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLastLogin(Date lastLogin)
|
public void setLastLogin(Date lastLogin)
|
586
src/me/StevenLawson/TotalFreedomMod/TFM_AdminList.java
Normal file
586
src/me/StevenLawson/TotalFreedomMod/TFM_AdminList.java
Normal file
@ -0,0 +1,586 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Commands.Command_logs;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_Config;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_MainConfig;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.World.TFM_AdminWorld;
|
||||||
|
import net.minecraft.util.com.google.common.collect.Sets;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.util.FileUtil;
|
||||||
|
|
||||||
|
public class TFM_AdminList
|
||||||
|
{
|
||||||
|
private static final Map<UUID, TFM_Admin> adminList;
|
||||||
|
private static final Set<UUID> superUUIDs;
|
||||||
|
private static final Set<UUID> telnetUUIDs;
|
||||||
|
private static final Set<UUID> seniorUUIDs;
|
||||||
|
private static final Set<String> seniorConsoleAliases;
|
||||||
|
private static final Set<String> superIps;
|
||||||
|
private static int cleanThreshold = 24 * 7; // 1 Week in hours
|
||||||
|
|
||||||
|
static
|
||||||
|
{
|
||||||
|
adminList = new HashMap<UUID, TFM_Admin>();
|
||||||
|
superUUIDs = new HashSet<UUID>();
|
||||||
|
telnetUUIDs = new HashSet<UUID>();
|
||||||
|
seniorUUIDs = new HashSet<UUID>();
|
||||||
|
seniorConsoleAliases = new HashSet<String>();
|
||||||
|
superIps = new HashSet<String>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private TFM_AdminList()
|
||||||
|
{
|
||||||
|
throw new AssertionError();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<UUID> getSuperUUIDs()
|
||||||
|
{
|
||||||
|
return Collections.unmodifiableSet(superUUIDs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<UUID> getTelnetUUIDs()
|
||||||
|
{
|
||||||
|
return Collections.unmodifiableSet(telnetUUIDs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<UUID> getSeniorUUIDs()
|
||||||
|
{
|
||||||
|
return Collections.unmodifiableSet(seniorUUIDs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<String> getSeniorConsoleAliases()
|
||||||
|
{
|
||||||
|
return Collections.unmodifiableSet(seniorConsoleAliases);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<String> getSuperadminIps()
|
||||||
|
{
|
||||||
|
return Collections.unmodifiableSet(superIps);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<String> getSuperNames()
|
||||||
|
{
|
||||||
|
final Set<String> names = new HashSet<String>();
|
||||||
|
|
||||||
|
for (TFM_Admin admin : adminList.values())
|
||||||
|
{
|
||||||
|
if (!admin.isActivated())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
names.add(admin.getLastLoginName());
|
||||||
|
}
|
||||||
|
|
||||||
|
return Collections.unmodifiableSet(names);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<String> getLowerSuperNames()
|
||||||
|
{
|
||||||
|
final Set<String> names = new HashSet<String>();
|
||||||
|
|
||||||
|
for (TFM_Admin admin : adminList.values())
|
||||||
|
{
|
||||||
|
if (!admin.isActivated())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
names.add(admin.getLastLoginName().toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
return Collections.unmodifiableSet(names);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<TFM_Admin> getAllAdmins()
|
||||||
|
{
|
||||||
|
return Sets.newHashSet(adminList.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void load()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
adminList.clear();
|
||||||
|
|
||||||
|
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, TotalFreedomMod.SUPERADMIN_FILE, true);
|
||||||
|
config.load();
|
||||||
|
|
||||||
|
cleanThreshold = config.getInt("clean_threshold_hours", cleanThreshold);
|
||||||
|
|
||||||
|
// Parse old superadmins
|
||||||
|
if (config.isConfigurationSection("superadmins"))
|
||||||
|
{
|
||||||
|
TFM_Log.info("Old superadmin configuration found, parsing...");
|
||||||
|
|
||||||
|
final ConfigurationSection section = config.getConfigurationSection("superadmins");
|
||||||
|
|
||||||
|
int counter = 0;
|
||||||
|
int errors = 0;
|
||||||
|
|
||||||
|
for (String admin : config.getConfigurationSection("superadmins").getKeys(false))
|
||||||
|
{
|
||||||
|
final OfflinePlayer player = Bukkit.getOfflinePlayer(admin);
|
||||||
|
|
||||||
|
if (player == null || player.getUniqueId() == null)
|
||||||
|
{
|
||||||
|
errors++;
|
||||||
|
TFM_Log.warning("Could not convert admin " + admin + ", UUID could not be found!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String uuid = player.getUniqueId().toString();
|
||||||
|
|
||||||
|
config.set("admins." + uuid + ".last_login_name", player.getName());
|
||||||
|
config.set("admins." + uuid + ".is_activated", section.getBoolean(admin + ".is_activated"));
|
||||||
|
config.set("admins." + uuid + ".is_telnet_admin", section.getBoolean(admin + ".is_telnet_admin"));
|
||||||
|
config.set("admins." + uuid + ".is_senior_admin", section.getBoolean(admin + ".is_senior_admin"));
|
||||||
|
config.set("admins." + uuid + ".last_login", section.getString(admin + ".last_login"));
|
||||||
|
config.set("admins." + uuid + ".custom_login_message", section.getString(admin + ".custom_login_message"));
|
||||||
|
config.set("admins." + uuid + ".console_aliases", section.getStringList(admin + ".console_aliases"));
|
||||||
|
config.set("admins." + uuid + ".ips", section.getStringList(admin + ".ips"));
|
||||||
|
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
config.set("superadmins", null);
|
||||||
|
config.save();
|
||||||
|
|
||||||
|
TFM_Log.info(counter + " admins parsed, " + errors + " errors");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!config.isConfigurationSection("admins"))
|
||||||
|
{
|
||||||
|
TFM_Log.warning("Missing admins section in superadmin.yml.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final ConfigurationSection section = config.getConfigurationSection("admins");
|
||||||
|
|
||||||
|
for (String uuidString : section.getKeys(false))
|
||||||
|
{
|
||||||
|
if (!TFM_Util.isUniqueId(uuidString))
|
||||||
|
{
|
||||||
|
TFM_Log.warning("Invalid Unique ID: " + uuidString + " in superadmin.yml, ignoring");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final UUID uuid = UUID.fromString(uuidString);
|
||||||
|
|
||||||
|
final TFM_Admin superadmin = new TFM_Admin(uuid, section.getConfigurationSection(uuidString));
|
||||||
|
adminList.put(uuid, superadmin);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateIndexLists();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void createBackup()
|
||||||
|
{
|
||||||
|
final File oldYaml = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE);
|
||||||
|
final File newYaml = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE + ".bak");
|
||||||
|
FileUtil.copy(oldYaml, newYaml);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void updateIndexLists()
|
||||||
|
{
|
||||||
|
superUUIDs.clear();
|
||||||
|
telnetUUIDs.clear();
|
||||||
|
seniorUUIDs.clear();
|
||||||
|
seniorConsoleAliases.clear();
|
||||||
|
superIps.clear();
|
||||||
|
|
||||||
|
for (TFM_Admin admin : adminList.values())
|
||||||
|
{
|
||||||
|
if (!admin.isActivated())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final UUID uuid = admin.getUniqueId();
|
||||||
|
|
||||||
|
superUUIDs.add(uuid);
|
||||||
|
|
||||||
|
for (String ip : admin.getIps())
|
||||||
|
{
|
||||||
|
superIps.add(ip);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (admin.isTelnetAdmin())
|
||||||
|
{
|
||||||
|
telnetUUIDs.add(uuid);
|
||||||
|
|
||||||
|
for (String alias : admin.getConsoleAliases())
|
||||||
|
{
|
||||||
|
seniorConsoleAliases.add(alias.toLowerCase());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (admin.isSeniorAdmin())
|
||||||
|
{
|
||||||
|
seniorUUIDs.add(uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_AdminWorld.getInstance().wipeAccessCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void save()
|
||||||
|
{
|
||||||
|
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, TotalFreedomMod.SUPERADMIN_FILE, true);
|
||||||
|
config.load();
|
||||||
|
|
||||||
|
config.set("clean_threshold_hours", cleanThreshold);
|
||||||
|
|
||||||
|
Iterator<Entry<UUID, TFM_Admin>> it = adminList.entrySet().iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
Entry<UUID, TFM_Admin> pair = it.next();
|
||||||
|
|
||||||
|
UUID uuid = pair.getKey();
|
||||||
|
TFM_Admin superadmin = pair.getValue();
|
||||||
|
|
||||||
|
config.set("admins." + uuid + ".last_login_name", superadmin.getLastLoginName());
|
||||||
|
config.set("admins." + uuid + ".is_activated", superadmin.isActivated());
|
||||||
|
config.set("admins." + uuid + ".is_telnet_admin", superadmin.isTelnetAdmin());
|
||||||
|
config.set("admins." + uuid + ".is_senior_admin", superadmin.isSeniorAdmin());
|
||||||
|
config.set("admins." + uuid + ".last_login", TFM_Util.dateToString(superadmin.getLastLogin()));
|
||||||
|
config.set("admins." + uuid + ".custom_login_message", superadmin.getCustomLoginMessage());
|
||||||
|
config.set("admins." + uuid + ".console_aliases", TFM_Util.removeDuplicates(superadmin.getConsoleAliases()));
|
||||||
|
config.set("admins." + uuid + ".ips", TFM_Util.removeDuplicates(superadmin.getIps()));
|
||||||
|
}
|
||||||
|
|
||||||
|
config.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TFM_Admin getEntry(Player player)
|
||||||
|
{
|
||||||
|
final UUID uuid = player.getUniqueId();
|
||||||
|
|
||||||
|
if (Bukkit.getOnlineMode())
|
||||||
|
{
|
||||||
|
if (adminList.containsKey(uuid))
|
||||||
|
{
|
||||||
|
return adminList.get(uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return getEntryByIp(TFM_Util.getIp(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TFM_Admin getEntry(UUID uuid)
|
||||||
|
{
|
||||||
|
return adminList.get(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public static TFM_Admin getEntry(String name)
|
||||||
|
{
|
||||||
|
for (UUID uuid : adminList.keySet())
|
||||||
|
{
|
||||||
|
if (adminList.get(uuid).getLastLoginName().equalsIgnoreCase(name))
|
||||||
|
{
|
||||||
|
return adminList.get(uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TFM_Admin getEntryByIp(String ip)
|
||||||
|
{
|
||||||
|
return getEntryByIp(ip, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TFM_Admin getEntryByIp(String needleIp, boolean fuzzy)
|
||||||
|
{
|
||||||
|
Iterator<Entry<UUID, TFM_Admin>> it = adminList.entrySet().iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
final Entry<UUID, TFM_Admin> pair = it.next();
|
||||||
|
final TFM_Admin superadmin = pair.getValue();
|
||||||
|
|
||||||
|
if (fuzzy)
|
||||||
|
{
|
||||||
|
for (String haystackIp : superadmin.getIps())
|
||||||
|
{
|
||||||
|
if (TFM_Util.fuzzyIpMatch(needleIp, haystackIp, 3))
|
||||||
|
{
|
||||||
|
return superadmin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (superadmin.getIps().contains(needleIp))
|
||||||
|
{
|
||||||
|
return superadmin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void updateLastLogin(Player player)
|
||||||
|
{
|
||||||
|
final TFM_Admin admin = getEntry(player);
|
||||||
|
if (admin == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
admin.setLastLogin(new Date());
|
||||||
|
admin.setLastLoginName(player.getName());
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isSeniorAdmin(CommandSender sender)
|
||||||
|
{
|
||||||
|
return isSeniorAdmin(sender, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isSeniorAdmin(CommandSender sender, boolean verifySuperadmin)
|
||||||
|
{
|
||||||
|
if (verifySuperadmin)
|
||||||
|
{
|
||||||
|
if (!isSuperAdmin(sender))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
return seniorConsoleAliases.contains(sender.getName())
|
||||||
|
|| (TFM_MainConfig.getInstance().getBoolean(TFM_ConfigEntry.CONSOLE_IS_SENIOR) && sender.getName().equals("CONSOLE"));
|
||||||
|
}
|
||||||
|
|
||||||
|
final TFM_Admin entry = getEntry((Player) sender);
|
||||||
|
if (entry != null)
|
||||||
|
{
|
||||||
|
return entry.isSeniorAdmin();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isSuperAdmin(CommandSender sender)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Bukkit.getOnlineMode() && superUUIDs.contains(((Player) sender).getUniqueId()))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (superIps.contains(TFM_Util.getIp((Player) sender)))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isIdentityMatched(Player player)
|
||||||
|
{
|
||||||
|
if (!isSuperAdmin(player))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Bukkit.getOnlineMode())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final TFM_Admin entry = getEntry(player);
|
||||||
|
if (entry == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return entry.getUniqueId().equals(player.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public static boolean checkPartialSuperadminIp(String ip, String name)
|
||||||
|
{
|
||||||
|
ip = ip.trim();
|
||||||
|
|
||||||
|
if (superIps.contains(ip))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
String matchIp = null;
|
||||||
|
for (String testIp : superIps)
|
||||||
|
{
|
||||||
|
if (TFM_Util.fuzzyIpMatch(ip, testIp, 3))
|
||||||
|
{
|
||||||
|
matchIp = testIp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (matchIp != null)
|
||||||
|
{
|
||||||
|
final TFM_Admin entry = getEntryByIp(matchIp);
|
||||||
|
|
||||||
|
if (entry == null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entry.getLastLoginName().equalsIgnoreCase(name))
|
||||||
|
{
|
||||||
|
if (!entry.getIps().contains(ip))
|
||||||
|
{
|
||||||
|
entry.addIp(ip);
|
||||||
|
}
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isAdminImpostor(Player player)
|
||||||
|
{
|
||||||
|
if (superUUIDs.contains(player.getUniqueId()))
|
||||||
|
{
|
||||||
|
return !isSuperAdmin(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addSuperadmin(OfflinePlayer player)
|
||||||
|
{
|
||||||
|
final UUID uuid = player.getUniqueId();
|
||||||
|
final String ip = TFM_Util.getIp(player);
|
||||||
|
|
||||||
|
if (adminList.containsKey(uuid))
|
||||||
|
{
|
||||||
|
final TFM_Admin superadmin = adminList.get(uuid);
|
||||||
|
superadmin.setActivated(true);
|
||||||
|
|
||||||
|
if (player instanceof Player)
|
||||||
|
{
|
||||||
|
superadmin.setLastLogin(new Date());
|
||||||
|
superadmin.addIp(ip);
|
||||||
|
}
|
||||||
|
save();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ip == null)
|
||||||
|
{
|
||||||
|
TFM_Log.severe("Cannot add superadmin: " + TFM_Util.formatPlayer(player));
|
||||||
|
TFM_Log.severe("Could not retrieve IP!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final TFM_Admin superadmin = new TFM_Admin(
|
||||||
|
uuid,
|
||||||
|
player.getName(),
|
||||||
|
new Date(),
|
||||||
|
"",
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
true);
|
||||||
|
superadmin.addIp(ip);
|
||||||
|
|
||||||
|
adminList.put(uuid, superadmin);
|
||||||
|
|
||||||
|
save();
|
||||||
|
updateIndexLists();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void removeSuperadmin(OfflinePlayer player)
|
||||||
|
{
|
||||||
|
final UUID uuid = player.getUniqueId();
|
||||||
|
|
||||||
|
if (!adminList.containsKey(uuid))
|
||||||
|
{
|
||||||
|
TFM_Log.warning("Could not remove admin: " + TFM_Util.formatPlayer(player));
|
||||||
|
TFM_Log.warning("Player is not an admin!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final TFM_Admin superadmin = adminList.get(uuid);
|
||||||
|
superadmin.setActivated(false);
|
||||||
|
Command_logs.deactivateSuperadmin(superadmin);
|
||||||
|
|
||||||
|
save();
|
||||||
|
updateIndexLists();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void cleanSuperadminList(boolean verbose)
|
||||||
|
{
|
||||||
|
Iterator<Entry<UUID, TFM_Admin>> it = adminList.entrySet().iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
final Entry<UUID, TFM_Admin> pair = it.next();
|
||||||
|
final TFM_Admin superadmin = pair.getValue();
|
||||||
|
|
||||||
|
if (!superadmin.isActivated() || superadmin.isSeniorAdmin())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Date lastLogin = superadmin.getLastLogin();
|
||||||
|
final long lastLoginHours = TimeUnit.HOURS.convert(new Date().getTime() - lastLogin.getTime(), TimeUnit.MILLISECONDS);
|
||||||
|
|
||||||
|
if (lastLoginHours > cleanThreshold)
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction("TotalFreedomMod", "Deactivating superadmin " + superadmin.getLastLoginName() + ", inactive for " + lastLoginHours + " hours.", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
superadmin.setActivated(false);
|
||||||
|
Command_logs.deactivateSuperadmin(superadmin);
|
||||||
|
TFM_TwitterHandler.getInstance().delTwitter(superadmin.getLastLoginName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
save();
|
||||||
|
updateIndexLists();
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user