mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 04:26:42 +00:00
Compare commits
41 Commits
Author | SHA1 | Date | |
---|---|---|---|
70e248202b | |||
51ef752259 | |||
b3e40462e2 | |||
73a91c02c6 | |||
7b8ba0bdf5 | |||
bd9d6114ba | |||
0435174342 | |||
796ef3d359 | |||
a3f3903760 | |||
5c99aa9a44 | |||
8292eb20ae | |||
d9e0791a3b | |||
dbfec1e86d | |||
31e03d6348 | |||
46494a2c87 | |||
b11eb0f762 | |||
730b0e2c83 | |||
60a9de7e7c | |||
8a4fa946fd | |||
9bc0859fdf | |||
742450d016 | |||
ad06bea3ae | |||
68d83fa397 | |||
fe84c3a2a0 | |||
6e5e70ac90 | |||
489549a0ea | |||
56b55eb3e2 | |||
4ef5f59fb9 | |||
d31ad2e9fc | |||
8a9dfca6d3 | |||
55ddf5a30a | |||
59e890c654 | |||
b0e62add9f | |||
7cdf1abcf2 | |||
ee0ebd85fc | |||
518537413b | |||
802d02d653 | |||
f3cb57c9cd | |||
c7c2795f41 | |||
20b117a703 | |||
8522570db5 |
12
LICENSE.md
12
LICENSE.md
@ -1,13 +1,3 @@
|
|||||||
# TotalFreedomMod License #
|
# TotalFreedomMod License #
|
||||||
TotalFreedomMod is primarily derived from the Bukkit and CraftBukkit library and server, respectively. Therefore, we have chosen for it to inherit the GNU GPLv3 License as used by those programs. This license is available at http://www.gnu.org/licenses/gpl-3.0.txt
|
|
||||||
|
|
||||||
We do, however, ask that you comply by several restrictions. These restrictions are in place to make sure that credit is given to the original authors, who remain the maintainers of the plugin and its source code.
|
TotalFreedomMod is licensed under the TotalFreedom General License. It is available [here](https://github.com/TotalFreedom/License/blob/master/LICENSE.md).
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* 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.
|
|
||||||
* The primary developers, StevenLawson (Madgeek1450) and Jerom van der Sar (DarthSalamon), may choose to provide official binaries on a discretionary basis.
|
|
||||||
* Any restrictions listed here may be waived by any of the above mentioned primary developers.
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#Build Number for ANT. Do not edit!
|
#Build Number for ANT. Do not edit!
|
||||||
#Mon Apr 21 23:08:17 CEST 2014
|
#Tue May 13 17:55:47 CEST 2014
|
||||||
build.number=787
|
build.number=846
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# TotalFreedomMod banning config
|
# TotalFreedomMod banning config
|
||||||
# Warning: modification of this file is not reccomended
|
# Warning: modification of this file is not recomended
|
||||||
#
|
#
|
||||||
# Format:
|
# Format:
|
||||||
# Ip: [IP-address / UUID]:[Last login name]:[Expiry unix timestamp (0 = never)][Banned by]:[Reason]
|
# Ip: [IP-address / UUID]:[Last login name]:[Expiry unix timestamp (0 = never)][Banned by]:[Reason]
|
||||||
|
121
src/config.yml
121
src/config.yml
@ -1,33 +1,32 @@
|
|||||||
# TotalFreedomMod v4.0 Configuration
|
# TotalFreedomMod v4.2 Configuration
|
||||||
# by Madgeek1450 and DarthSalamon
|
# by Madgeek1450 and DarthSalamon
|
||||||
|
|
||||||
# Block placement prevention:
|
# Blocking certain events
|
||||||
allow_fire_place: false
|
allow:
|
||||||
allow_fire_spread: false
|
fire_place: false
|
||||||
allow_lava_damage: false
|
fire_spread: false
|
||||||
allow_lava_place: false
|
fluid_spread: false
|
||||||
allow_water_place: false
|
lava_place: false
|
||||||
allow_fluid_spread: false
|
lava_damage: false
|
||||||
allow_tnt_minecarts: false
|
water_place: false
|
||||||
|
tnt_minecarts: false
|
||||||
|
explosions: false
|
||||||
|
|
||||||
# Explosion management:
|
|
||||||
allow_explosions: false
|
|
||||||
explosive_radius: 4.0
|
explosive_radius: 4.0
|
||||||
|
|
||||||
# Blocked commands:
|
# Blocked commands:
|
||||||
#
|
#
|
||||||
# How blocked commands work:
|
# How blocked commands work:
|
||||||
# All sections described below are delimited by colon-characters.
|
# All sections described below are delimited by colon characters.
|
||||||
# Make sure that you block a command by it's main command name, not an alias
|
# Make sure that you block a command by its main command name, not an alias
|
||||||
# -as all aliases are blocked by default. Commands are case-insensitive ofcourse.
|
# -as all aliases are blocked by default. Commands are case-insensitive.
|
||||||
# You can block specific subcommands aswell. eg: /mail sendall
|
|
||||||
#
|
#
|
||||||
# * The first section is a letter which indicates which rank may use this command
|
# * The first section is a letter which indicates which rank may use this command
|
||||||
# Valid ranks:
|
# Valid ranks:
|
||||||
# n - Nobody (Completely disabled)
|
# n - Nobody (Completely disabled)
|
||||||
# c - Senior Admins (Console)
|
# c - Senior Admins (Console)
|
||||||
# t - Telnet Admins (Console)
|
# t - Telnet Admins (Console)
|
||||||
# s - SuperAdmins
|
# s - Super Admins (Any in-game admin)
|
||||||
# o - Ops (Non-Ops won't be able to use it)
|
# o - Ops (Non-Ops won't be able to use it)
|
||||||
#
|
#
|
||||||
# * The second section is a letter which indicates what to do when a player executes that command.
|
# * The second section is a letter which indicates what to do when a player executes that command.
|
||||||
@ -74,6 +73,7 @@ blocked_commands:
|
|||||||
- 's:b:/tool:_'
|
- 's:b:/tool:_'
|
||||||
- 's:b://butcher:_'
|
- 's:b://butcher:_'
|
||||||
- 's:b:/scoreboard:_'
|
- 's:b:/scoreboard:_'
|
||||||
|
- 's:b:/setspawn:_'
|
||||||
|
|
||||||
# Superadmin commands - Auto-eject
|
# Superadmin commands - Auto-eject
|
||||||
- 's:a:/stop'
|
- 's:a:/stop'
|
||||||
@ -82,25 +82,32 @@ blocked_commands:
|
|||||||
- 's:a:/save-on'
|
- 's:a:/save-on'
|
||||||
- 's:a:/save-off'
|
- 's:a:/save-off'
|
||||||
- 's:a:/clearhistory'
|
- 's:a:/clearhistory'
|
||||||
|
- 's:a:/mat'
|
||||||
|
|
||||||
|
# Spigot commands
|
||||||
|
- 's:a:/restart'
|
||||||
|
- 's:b:/setblock'
|
||||||
|
|
||||||
# Automatically wipe dropped objects:
|
# Automatically wipe dropped objects:
|
||||||
auto_wipe: true
|
auto_wipe: true
|
||||||
|
|
||||||
# Nuking prevention:
|
# Nuking prevention
|
||||||
nuke_monitor: true
|
nukemonitor:
|
||||||
nuke_monitor_count_break: 100
|
enabled: true
|
||||||
nuke_monitor_count_place: 25
|
count_break: 100
|
||||||
nuke_monitor_range: 10.0
|
count_place: 40
|
||||||
|
range: 10.0
|
||||||
|
|
||||||
freecam_trigger_count: 10
|
freecam_trigger_count: 10
|
||||||
|
|
||||||
# Show all attempted commands in the log, will result in duplicate log messages:
|
# Show all attempted commands in the log, will result in duplicate log messages:
|
||||||
preprocess_log: true
|
preprocess_log: true
|
||||||
|
|
||||||
# Disable nighttime:
|
# Disable certain events
|
||||||
disable_night: true
|
disable:
|
||||||
|
night: true
|
||||||
|
weather: true
|
||||||
|
|
||||||
# Disable weather:
|
|
||||||
disable_weather: true
|
|
||||||
|
|
||||||
# Enable misc. features:
|
# Enable misc. features:
|
||||||
landmines_enabled: false
|
landmines_enabled: false
|
||||||
@ -108,26 +115,30 @@ mp44_enabled: false
|
|||||||
tossmob_enabled: false
|
tossmob_enabled: false
|
||||||
|
|
||||||
# Moblimiter:
|
# Moblimiter:
|
||||||
mob_limiter_enabled: true
|
|
||||||
# Max per world:
|
moblimiter:
|
||||||
mob_limiter_max: 50
|
enabled: true
|
||||||
mob_limiter_disable_dragon: true
|
max: 50
|
||||||
mob_limiter_disable_ghast: true
|
disable:
|
||||||
mob_limiter_disable_slime: true
|
dragon: true
|
||||||
mob_limiter_disable_giant: true
|
ghast: true
|
||||||
|
slime: true
|
||||||
|
giant: true
|
||||||
|
|
||||||
# Flatlands
|
# Flatlands
|
||||||
generate_flatlands: true
|
flatlands:
|
||||||
# Flatlands generation parameters, uses CleanroomGenerator syntax - http://dev.bukkit.org/server-mods/cleanroomgenerator/
|
generate: true
|
||||||
flatlands_generation_params: 16,stone,32,dirt,1,grass
|
# Flatlands generation parameters, uses CleanroomGenerator syntax - http://dev.bukkit.org/server-mods/cleanroomgenerator/
|
||||||
|
generate_params: 16,stone,32,dirt,1,grass
|
||||||
|
|
||||||
# Admin-Only Mode
|
# Admin-Only Mode
|
||||||
admin_only_mode: false
|
admin_only_mode: false
|
||||||
|
|
||||||
# Protected Areas - Protect areas so that only superadmins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.
|
# Protected Areas - Protect areas so that only superadmins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.
|
||||||
protected_areas_enabled: true
|
protectarea:
|
||||||
auto_protect_spawnpoints: true
|
enabled: true
|
||||||
auto_protect_radius: 25.0
|
auto_protect_spawnpoints: true
|
||||||
|
auto_protect_radius: 25.0
|
||||||
|
|
||||||
# Give the default CONSOLE senior admin privileges.
|
# Give the default CONSOLE senior admin privileges.
|
||||||
# Handy in development environments.
|
# Handy in development environments.
|
||||||
@ -177,30 +188,36 @@ unbannable_usernames:
|
|||||||
- stampylonghead
|
- stampylonghead
|
||||||
- stampylongnose
|
- stampylongnose
|
||||||
- dantdm
|
- dantdm
|
||||||
|
- gizzy14gazza
|
||||||
|
|
||||||
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
||||||
twitterbot_enabled: false
|
twitterbot:
|
||||||
twitterbot_url: ''
|
enabled: false
|
||||||
twitterbot_secret: ''
|
url: ''
|
||||||
|
secret: ''
|
||||||
|
|
||||||
# Pet Protect - Prevent tamed pets from being killed.
|
# Pet Protect - Prevent tamed pets from being killed.
|
||||||
pet_protect_enabled: true
|
petprotect:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
# Logs Registration
|
# Logs Registration
|
||||||
logs_register_password: ''
|
logs:
|
||||||
logs_register_url: ''
|
url: ''
|
||||||
|
secret: ''
|
||||||
|
|
||||||
# Mojang service checker
|
# Mojang service checker
|
||||||
service_checker_url: http://status.mojang.com/check
|
service_checker_url: http://status.mojang.com/check
|
||||||
|
|
||||||
# HTTPD
|
# HTTPD
|
||||||
httpd_enabled: true
|
httpd:
|
||||||
httpd_public_folder: ./public_html
|
enabled: true
|
||||||
httpd_port: 28966
|
port: 28966
|
||||||
|
public_folder: ./public_html
|
||||||
|
|
||||||
# Inactivity Auto-Kick (Requires Essentials)
|
# Inactivity Auto-Kick (Requires Essentials)
|
||||||
autokick_enabled: true
|
autokick:
|
||||||
# autokick_threshold - Percentage of server player capacity used at which players will be automatically kicked for being inactive. Range: 0.0 - 1.0
|
enabled: true
|
||||||
autokick_threshold: 0.9
|
# autokick_threshold - Percentage of server player capacity used at which players will be automatically kicked for being inactive. Range: 0.0 - 1.0
|
||||||
# autokick_time - Time, in seconds, after which a player should be kicked when inactive
|
threshold: 0.9
|
||||||
autokick_time: 120
|
# autokick_time - Time, in seconds, after which a player should be kicked when inactive
|
||||||
|
time: 120
|
||||||
|
@ -113,18 +113,15 @@ public class Command_adminworld extends TFM_Command
|
|||||||
|
|
||||||
if ("add".equalsIgnoreCase(args[1]))
|
if ("add".equalsIgnoreCase(args[1]))
|
||||||
{
|
{
|
||||||
Player player;
|
final Player player = getPlayer(args[2]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[2]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != null && TFM_AdminWorld.getInstance().addGuest(player, sender_p))
|
if (TFM_AdminWorld.getInstance().addGuest(player, sender_p))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "AdminWorld guest added: " + player.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "AdminWorld guest added: " + player.getName(), false);
|
||||||
}
|
}
|
||||||
@ -133,9 +130,9 @@ public class Command_adminworld extends TFM_Command
|
|||||||
playerMsg("Could not add player to guest list.");
|
playerMsg("Could not add player to guest list.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (TFM_Util.isRemoveCommand(args[1]))
|
else if ("remove".equals(args[1]))
|
||||||
{
|
{
|
||||||
Player player = TFM_AdminWorld.getInstance().removeGuest(args[2]);
|
final Player player = TFM_AdminWorld.getInstance().removeGuest(args[2]);
|
||||||
if (player != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "AdminWorld guest removed: " + player.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "AdminWorld guest removed: " + player.getName(), false);
|
||||||
|
@ -3,6 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
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 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;
|
||||||
@ -36,14 +37,11 @@ public class Command_blockcmd extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
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 org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -21,7 +22,7 @@ public class Command_cage extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]) && sender instanceof Player)
|
if ("off".equals(args[0]) && sender instanceof Player)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(sender_p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(sender_p);
|
||||||
@ -32,9 +33,9 @@ public class Command_cage extends TFM_Command
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if ("purge".equalsIgnoreCase(args[0]))
|
else if ("purge".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Uncaging all players.", true);
|
TFM_Util.adminAction(sender.getName(), "Uncaging all players", true);
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
@ -47,14 +48,11 @@ public class Command_cage extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +63,7 @@ public class Command_cage extends TFM_Command
|
|||||||
|
|
||||||
if (args.length >= 2)
|
if (args.length >= 2)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if ("off".equals(args[1]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
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.Minecart;
|
import org.bukkit.entity.Minecart;
|
||||||
@ -17,13 +18,12 @@ public class Command_cartsit extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
|
targetPlayer = getPlayer(args[0]);
|
||||||
|
|
||||||
|
if (targetPlayer == null)
|
||||||
{
|
{
|
||||||
targetPlayer = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
|
||||||
@CommandParameters(description = "Temporarily change config parameters.", usage = "/<command> <entry> <value>")
|
|
||||||
public class Command_config extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 2)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_ConfigEntry entry = TFM_ConfigEntry.findConfigEntry(args[0]);
|
|
||||||
|
|
||||||
if (entry == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage("Can't find configuration option: " + args[0]);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Object newValue = null;
|
|
||||||
final String newValueString = args[1].trim();
|
|
||||||
final Class<?> type = entry.getType();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (type.isAssignableFrom(Integer.class))
|
|
||||||
{
|
|
||||||
newValue = new Integer(newValueString);
|
|
||||||
entry.setInteger((Integer) newValue);
|
|
||||||
}
|
|
||||||
else if (type.isAssignableFrom(Double.class))
|
|
||||||
{
|
|
||||||
newValue = new Double(newValueString);
|
|
||||||
entry.setDouble((Double) newValue);
|
|
||||||
}
|
|
||||||
else if (type.isAssignableFrom(Boolean.class))
|
|
||||||
{
|
|
||||||
newValue = Boolean.valueOf(newValueString);
|
|
||||||
entry.setBoolean((Boolean) newValue);
|
|
||||||
}
|
|
||||||
else if (type.isAssignableFrom(String.class))
|
|
||||||
{
|
|
||||||
newValue = newValueString;
|
|
||||||
entry.setString((String) newValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
if (newValue != null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(String.format("Set configuration entry \"%s\" to \"%s\" value \"%s\".",
|
|
||||||
entry.toString(), type.getName(), newValue.toString()));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sender.sendMessage("Could not parse value \"" + newValueString + "\" as type \"" + type.getName() + "\".");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -54,13 +54,12 @@ public class Command_creative extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
|
||||||
|
player = getPlayer(args[0]);
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,10 +13,9 @@ public class Command_denick 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)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all nicknames.", false);
|
TFM_Util.adminAction(sender.getName(), "Removing all nicknames", false);
|
||||||
|
|
||||||
Player[] onlinePlayers = server.getOnlinePlayers();
|
for (Player player : server.getOnlinePlayers())
|
||||||
for (Player player : onlinePlayers)
|
|
||||||
{
|
{
|
||||||
TFM_EssentialsBridge.getInstance().setNickname(player.getName(), null);
|
TFM_EssentialsBridge.getInstance().setNickname(player.getName(), null);
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
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;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@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>")
|
||||||
@ -24,14 +26,11 @@ public class Command_doom extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,8 +52,11 @@ public class Command_doom extends TFM_Command
|
|||||||
// deop
|
// deop
|
||||||
player.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
// ban IP
|
// ban IPs
|
||||||
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName()));
|
for (String playerIp : TFM_PlayerList.getInstance().getEntry(player).getIps())
|
||||||
|
{
|
||||||
|
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(playerIp, player.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
// ban name
|
// ban name
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
||||||
@ -72,6 +74,9 @@ public class Command_doom extends TFM_Command
|
|||||||
// generate explosion
|
// generate explosion
|
||||||
player.getWorld().createExplosion(player.getLocation(), 4F);
|
player.getWorld().createExplosion(player.getLocation(), 4F);
|
||||||
|
|
||||||
|
// Shoot the player in the sky
|
||||||
|
player.setVelocity(player.getVelocity().clone().add(new Vector(0, 20, 0)));
|
||||||
|
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -83,7 +88,7 @@ public class Command_doom extends TFM_Command
|
|||||||
// kill (if not done already)
|
// kill (if not done already)
|
||||||
player.setHealth(0.0);
|
player.setHealth(0.0);
|
||||||
}
|
}
|
||||||
}.runTaskLater(plugin, 20L * 2L);
|
}.runTaskLater(plugin, 2L * 20L);
|
||||||
|
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@ -99,7 +104,7 @@ public class Command_doom extends TFM_Command
|
|||||||
// kick player
|
// kick player
|
||||||
player.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
|
player.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
|
||||||
}
|
}
|
||||||
}.runTaskLater(plugin, 20L * 3L);
|
}.runTaskLater(plugin, 3L * 20L);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable auto entity wiper.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_droptoggle extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
TFM_Util.adminAction(sender.getName(),
|
|
||||||
(TFM_ConfigEntry.AUTO_ENTITY_WIPE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "Enabled" : "Disabled")
|
|
||||||
+ " automatic entity wiping.", false);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
import org.bukkit.plugin.PluginManager;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Shortcut to enable/disable DisguiseCraft.", usage = "/<command>")
|
|
||||||
public class Command_dtoggle extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
Plugin disguiseCraft = server.getPluginManager().getPlugin("DisguiseCraft");
|
|
||||||
if (disguiseCraft != null)
|
|
||||||
{
|
|
||||||
PluginManager pluginManager = plugin.getServer().getPluginManager();
|
|
||||||
|
|
||||||
boolean enabled = disguiseCraft.isEnabled();
|
|
||||||
if (enabled)
|
|
||||||
{
|
|
||||||
pluginManager.disablePlugin(disguiseCraft);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pluginManager.enablePlugin(disguiseCraft);
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), (!enabled ? "Enabled" : "Disabled") + " DisguiseCraft.", true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sender.sendMessage("DisguiseCraft is not installed on this server.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -55,13 +55,6 @@ public class Command_enchant extends TFM_Command
|
|||||||
{
|
{
|
||||||
for (Enchantment ench : Enchantment.values())
|
for (Enchantment ench : Enchantment.values())
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
2013-07-20 23:17:13 [INFO] [TotalFreedomMod]: Command Error: enchant
|
|
||||||
java.lang.NullPointerException
|
|
||||||
at net.minecraft.server.v1_6_R2.EnchantmentDurability.canEnchant(SourceFile:33)
|
|
||||||
at org.bukkit.craftbukkit.v1_6_R2.enchantments.CraftEnchantment.canEnchantItem(CraftEnchantment.java:55)
|
|
||||||
at me.StevenLawson.TotalFreedomMod.Commands.Command_enchant.run(Command_enchant.java:56)
|
|
||||||
*/
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (ench.canEnchantItem(itemInHand))
|
if (ench.canEnchantItem(itemInHand))
|
||||||
@ -122,7 +115,7 @@ public class Command_enchant extends TFM_Command
|
|||||||
playerMsg("Can't use this enchantment on held item.");
|
playerMsg("Can't use this enchantment on held item.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (TFM_Util.isRemoveCommand(args[0]))
|
else if (args[0].equals("remove"))
|
||||||
{
|
{
|
||||||
itemInHand.removeEnchantment(ench);
|
itemInHand.removeEnchantment(ench);
|
||||||
|
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable explosives and set effect radius.", usage = "/<command> <on | off> [radius]")
|
|
||||||
public class Command_explosives extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length == 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 2)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException nfex)
|
|
||||||
{
|
|
||||||
TFM_Util.playerMsg(sender, nfex.getMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(true);
|
|
||||||
playerMsg("Explosives are now enabled, radius set to " + TFM_ConfigEntry.EXPLOSIVE_RADIUS.getDouble() + " blocks.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(false);
|
|
||||||
playerMsg("Explosives are now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -19,14 +19,12 @@ public class Command_findip extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
|
||||||
}
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable fire placement.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_fireplace extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(true);
|
|
||||||
playerMsg("Fire placement is now enabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(false);
|
|
||||||
playerMsg("Fire placement is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable fire spread.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_firespread extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean fireSpread = !args[0].equalsIgnoreCase("off");
|
|
||||||
|
|
||||||
TFM_ConfigEntry.ALLOW_FIRE_SPREAD.setBoolean(fireSpread);
|
|
||||||
|
|
||||||
playerMsg("Fire spread is now " + (fireSpread ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_FIRE_TICK, fireSpread);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ public class Command_flatlands 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 (TFM_ConfigEntry.GENERATE_FLATLANDS.getBoolean())
|
if (TFM_ConfigEntry.FLATLANDS_GENERATE.getBoolean())
|
||||||
{
|
{
|
||||||
TFM_Flatlands.getInstance().sendToWorld(sender_p);
|
TFM_Flatlands.getInstance().sendToWorld(sender_p);
|
||||||
}
|
}
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable fluid spread.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_fluidspread extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Lava and water spread is now " + (TFM_ConfigEntry.ALLOW_FLUID_SPREAD.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -81,14 +81,11 @@ public class Command_fr extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
|
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.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,14 +19,11 @@ public class Command_gcmd extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ public class Command_glist extends TFM_Command
|
|||||||
if (TFM_AdminList.isSeniorAdmin(sender))
|
if (TFM_AdminList.isSeniorAdmin(sender))
|
||||||
{
|
{
|
||||||
TFM_PlayerList.getInstance().purgeAll();
|
TFM_PlayerList.getInstance().purgeAll();
|
||||||
|
playerMsg("Purged playerbase");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -50,16 +51,13 @@ public class Command_glist extends TFM_Command
|
|||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
{
|
{
|
||||||
String username;
|
String username;
|
||||||
List<String> ips = new ArrayList<String>();
|
final List<String> ips = new ArrayList<String>();
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Player player = getPlayer(args[1]);
|
|
||||||
|
|
||||||
username = player.getName();
|
|
||||||
ips.add(player.getAddress().getAddress().getHostAddress());
|
final Player player = getPlayer(args[1]);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
if (player == null)
|
||||||
{
|
{
|
||||||
final TFM_PlayerEntry entry = TFM_PlayerList.getInstance().getEntry(args[1]);
|
final TFM_PlayerEntry entry = TFM_PlayerList.getInstance().getEntry(args[1]);
|
||||||
|
|
||||||
@ -70,7 +68,12 @@ public class Command_glist extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
username = entry.getLastJoinName();
|
username = entry.getLastJoinName();
|
||||||
ips = entry.getIps();
|
ips.addAll(entry.getIps());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
username = player.getName();
|
||||||
|
ips.add(player.getAddress().getAddress().getHostAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
String mode = args[0].toLowerCase();
|
String mode = args[0].toLowerCase();
|
||||||
@ -78,11 +81,11 @@ public class Command_glist extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ","), true);
|
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ","), true);
|
||||||
|
|
||||||
Player player = server.getPlayerExact(username);
|
Player target = server.getPlayerExact(username);
|
||||||
if (player != null)
|
if (target != null)
|
||||||
{
|
{
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(target.getUniqueId(), target.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");
|
target.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
|
||||||
{
|
{
|
||||||
|
@ -4,8 +4,8 @@ import me.StevenLawson.TotalFreedomMod.Bridge.TFM_WorldEditBridge;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
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_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
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;
|
||||||
@ -27,14 +27,11 @@ public class Command_gtfo extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ 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_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
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;
|
||||||
@ -76,18 +77,14 @@ public class Command_halt extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
if (!playerdata.isHalted())
|
if (!playerdata.isHalted())
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Manage jumppads", usage = "/<command> <on | off | info |sideways <on | off> | strength <strength (1-10)>>", aliases = "launchpads,jp")
|
@CommandParameters(description = "Manage jumppads", usage = "/<command> <on | off | info | sideways <on | off> | strength <strength (1-10)>>", aliases = "launchpads,jp")
|
||||||
public class Command_jumppads extends TFM_Command
|
public class Command_jumppads extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -29,7 +29,7 @@ public class Command_jumppads extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
if ("off".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Disabling Jumppads", false);
|
TFM_Util.adminAction(sender.getName(), "Disabling Jumppads", false);
|
||||||
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.OFF);
|
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.OFF);
|
||||||
@ -50,7 +50,7 @@ public class Command_jumppads extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("sideways"))
|
if (args[0].equalsIgnoreCase("sideways"))
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if ("off".equals(args[1]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
|
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
|
||||||
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
||||||
|
@ -1,6 +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.TotalFreedomMod;
|
||||||
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;
|
||||||
@ -18,27 +19,24 @@ public class Command_lastcmd extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
if (playerdata != null)
|
if (playerdata != null)
|
||||||
{
|
{
|
||||||
String last_command = playerdata.getLastCommand();
|
String lastCommand = playerdata.getLastCommand();
|
||||||
if (last_command.isEmpty())
|
if (lastCommand.isEmpty())
|
||||||
{
|
{
|
||||||
last_command = "(none)";
|
lastCommand = "(none)";
|
||||||
}
|
}
|
||||||
playerMsg(player.getName() + " - Last Command: " + last_command, ChatColor.GRAY);
|
playerMsg(player.getName() + " - Last Command: " + lastCommand, ChatColor.GRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable lava damage.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_lavadmg extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Lava damage is now " + (TFM_ConfigEntry.ALLOW_LAVA_DAMAGE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable lava placement.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_lavaplace extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Lava placement is now " + (TFM_ConfigEntry.ALLOW_LAVA_PLACE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PermbanList;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@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>")
|
|
||||||
public class Command_listsync extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Downloading superadmin and permban lists from primary TotalFreedom server.", false);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_AdminList.createBackup();
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
TFM_Log.severe(ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_PermbanList.createBackup();
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
TFM_Log.severe(ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Prevents new players from joining the server", usage = "/<command> <on | off>")
|
|
||||||
public class Command_lockdown extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "De-activating server lockdown", true);
|
|
||||||
TotalFreedomMod.lockdownEnabled = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Activating server lockdown", true);
|
|
||||||
TotalFreedomMod.lockdownEnabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,6 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
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 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;
|
||||||
@ -46,14 +47,11 @@ public class Command_lockup extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[1].equalsIgnoreCase("on"))
|
if (args[1].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,16 +59,13 @@ public class Command_lockup extends TFM_Command
|
|||||||
startLockup(player);
|
startLockup(player);
|
||||||
playerMsg("Locked up " + player.getName() + ".");
|
playerMsg("Locked up " + player.getName() + ".");
|
||||||
}
|
}
|
||||||
else if (TFM_Util.isStopCommand(args[1]))
|
else if ("off".equals(args[1]))
|
||||||
{
|
{
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ import java.util.Map.Entry;
|
|||||||
import me.StevenLawson.TotalFreedomMod.Config.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_Admin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
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.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -32,7 +31,7 @@ public class Command_logs extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
mode = (TFM_Util.isStopCommand(args[0]) ? LogsRegistrationMode.DELETE : LogsRegistrationMode.UPDATE);
|
mode = ("off".equals(args[0]) ? LogsRegistrationMode.DELETE : LogsRegistrationMode.UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateLogsRegistration(sender, sender_p, mode);
|
updateLogsRegistration(sender, sender_p, mode);
|
||||||
@ -47,8 +46,8 @@ public class Command_logs extends TFM_Command
|
|||||||
|
|
||||||
public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode mode)
|
public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode mode)
|
||||||
{
|
{
|
||||||
final String logsRegisterURL = TFM_ConfigEntry.LOGS_REGISTER_URL.getString();
|
final String logsRegisterURL = TFM_ConfigEntry.LOGS_URL.getString();
|
||||||
final String logsRegisterPassword = TFM_ConfigEntry.LOGS_REGISTER_PASSWORD.getString();
|
final String logsRegisterPassword = TFM_ConfigEntry.LOGS_SECRET.getString();
|
||||||
|
|
||||||
if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
|
if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
|
||||||
{
|
{
|
||||||
|
@ -34,20 +34,14 @@ public class Command_nf extends TFM_Command
|
|||||||
if (matcher.find())
|
if (matcher.find())
|
||||||
{
|
{
|
||||||
String displayName = matcher.group(1);
|
String displayName = matcher.group(1);
|
||||||
try
|
|
||||||
{
|
player = getPlayerByDisplayName(displayName);
|
||||||
player = getPlayerByDisplayName(displayName);
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
try
|
player = getPlayerByDisplayNameAlt(displayName);
|
||||||
{
|
|
||||||
player = getPlayerByDisplayNameAlt(displayName);
|
if (player == null)
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
|
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
|
||||||
return true;
|
return true;
|
||||||
@ -80,7 +74,7 @@ public class Command_nf extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Player getPlayerByDisplayName(String needle) throws PlayerNotFoundException
|
private static Player getPlayerByDisplayName(String needle)
|
||||||
{
|
{
|
||||||
needle = needle.toLowerCase().trim();
|
needle = needle.toLowerCase().trim();
|
||||||
|
|
||||||
@ -93,10 +87,10 @@ public class Command_nf extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new PlayerNotFoundException();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Player getPlayerByDisplayNameAlt(String needle) throws PlayerNotFoundException
|
private static Player getPlayerByDisplayNameAlt(String needle)
|
||||||
{
|
{
|
||||||
needle = needle.toLowerCase().trim();
|
needle = needle.toLowerCase().trim();
|
||||||
|
|
||||||
@ -115,11 +109,6 @@ public class Command_nf extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (minEditMatch == null)
|
|
||||||
{
|
|
||||||
throw new PlayerNotFoundException();
|
|
||||||
}
|
|
||||||
|
|
||||||
return minEditMatch;
|
return minEditMatch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ public class Command_nicknyan extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
if ("off".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), null);
|
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), null);
|
||||||
playerMsg("Nickname cleared.");
|
playerMsg("Nickname cleared.");
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@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]")
|
|
||||||
public class Command_nonuke extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length < 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length >= 2)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException nfex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length >= 3)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2]))));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException nfex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR.setBoolean(true);
|
|
||||||
playerMsg("Nuke monitor is enabled.");
|
|
||||||
playerMsg("Anti-freecam range is set to " + TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks.");
|
|
||||||
playerMsg("Block throttle rate is set to " + TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR.setBoolean(false);
|
|
||||||
playerMsg("Nuke monitor is disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +1,66 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
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>")
|
@CommandParameters(description = "Manager operators", usage = "/<command> <count | purge>")
|
||||||
public class Command_ops extends TFM_Command
|
public class Command_ops 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 < 1 || args.length > 1)
|
if (args.length != 1)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("list"))
|
if (args[0].equals("count"))
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(sender, "Operators: " + TFM_Util.playerListToNames(server.getOperators()));
|
int totalOps = server.getOperators().size();
|
||||||
|
int onlineOps = 0;
|
||||||
|
|
||||||
|
for (Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (player.isOp())
|
||||||
|
{
|
||||||
|
onlineOps++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg("Online OPs: " + onlineOps);
|
||||||
|
playerMsg("Offline OPs: " + (totalOps - onlineOps));
|
||||||
|
playerMsg("Total OPs: " + totalOps);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("count"))
|
if (args[0].equals("purge"))
|
||||||
{
|
{
|
||||||
int onlineOPs = 0;
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
int offlineOPs = 0;
|
{
|
||||||
int totalOPs = 0;
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Purging all operators", true);
|
||||||
|
|
||||||
for (OfflinePlayer player : server.getOperators())
|
for (OfflinePlayer player : server.getOperators())
|
||||||
{
|
{
|
||||||
|
player.setOp(false);
|
||||||
if (player.isOnline())
|
if (player.isOnline())
|
||||||
{
|
{
|
||||||
onlineOPs++;
|
playerMsg((Player) player, TotalFreedomMod.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
offlineOPs++;
|
|
||||||
}
|
|
||||||
totalOPs++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Online OPs: " + onlineOPs);
|
|
||||||
playerMsg("Offline OPs: " + offlineOPs);
|
|
||||||
playerMsg("Total OPs: " + totalOPs);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
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 org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -10,7 +11,8 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon!", usage = "/<command> <target> [power]")
|
@CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon!",
|
||||||
|
usage = "/<command> <target> [<<power> | stop>]")
|
||||||
public class Command_orbit extends TFM_Command
|
public class Command_orbit extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -21,14 +23,11 @@ public class Command_orbit extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +37,7 @@ public class Command_orbit extends TFM_Command
|
|||||||
|
|
||||||
if (args.length >= 2)
|
if (args.length >= 2)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if (args[1].equals("stop"))
|
||||||
{
|
{
|
||||||
playerMsg("Stopped orbiting " + player.getName());
|
playerMsg("Stopped orbiting " + player.getName());
|
||||||
playerdata.stopOrbiting();
|
playerdata.stopOrbiting();
|
||||||
@ -60,7 +59,7 @@ public class Command_orbit extends TFM_Command
|
|||||||
playerdata.startOrbiting(strength);
|
playerdata.startOrbiting(strength);
|
||||||
|
|
||||||
player.setVelocity(new Vector(0, strength, 0));
|
player.setVelocity(new Vector(0, strength, 0));
|
||||||
TFM_Util.adminAction(sender.getName(), "Orbiting " + player.getName() + ".", false);
|
TFM_Util.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,6 @@ public class Command_permban extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
playerMsg("Reloading permban list...", ChatColor.RED);
|
playerMsg("Reloading permban list...", ChatColor.RED);
|
||||||
TFM_PermbanList.createBackup();
|
|
||||||
TFM_PermbanList.load();
|
TFM_PermbanList.load();
|
||||||
dumplist(sender);
|
dumplist(sender);
|
||||||
}
|
}
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable tamed pet protection.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_petprotect extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction(
|
|
||||||
sender.getName(),
|
|
||||||
"Tamed pet protection is now " + (TFM_ConfigEntry.PET_PROTECT_ENABLED.setBoolean(!TFM_Util.isStopCommand(args[0])) ? "enabled" : "disabled") + ".",
|
|
||||||
false);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
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.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;
|
||||||
@ -8,122 +9,142 @@ import org.bukkit.plugin.Plugin;
|
|||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Enable / disable plugins.", usage = "/<command> < <enable | disable> <pluginname> | list >", aliases = "plc")
|
@CommandParameters(description = "Manage plugins", usage = "/<command> <<enable | disable | reload> <pluginname>> | list>", aliases = "plc")
|
||||||
public class Command_plugincontrol extends TFM_Command
|
public class Command_plugincontrol extends TFM_Command
|
||||||
{
|
{
|
||||||
private enum CommandMode
|
|
||||||
{
|
|
||||||
ENABLE, DISABLE, LIST, RELOAD
|
|
||||||
}
|
|
||||||
|
|
||||||
@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)
|
||||||
{
|
{
|
||||||
CommandMode commandMode = null;
|
if (args.length == 0 || args.length > 2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final PluginManager pm = server.getPluginManager();
|
||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("list"))
|
if (args[0].equalsIgnoreCase("list"))
|
||||||
{
|
{
|
||||||
commandMode = CommandMode.LIST;
|
for (Plugin serverPlugin : pm.getPlugins())
|
||||||
}
|
{
|
||||||
else if (args[0].equalsIgnoreCase("reload"))
|
final String version = serverPlugin.getDescription().getVersion();
|
||||||
{
|
playerMsg(ChatColor.GRAY + "- " + (serverPlugin.isEnabled() ? ChatColor.GREEN : ChatColor.RED) + serverPlugin.getName()
|
||||||
commandMode = CommandMode.RELOAD;
|
+ ChatColor.GOLD + (version != null && !version.isEmpty() ? " v" + version : "") + " by "
|
||||||
}
|
+ StringUtils.join(serverPlugin.getDescription().getAuthors(), ", "));
|
||||||
}
|
}
|
||||||
else if (args.length >= 2)
|
|
||||||
{
|
return true;
|
||||||
if (args[0].equalsIgnoreCase("enable"))
|
}
|
||||||
{
|
|
||||||
commandMode = CommandMode.ENABLE;
|
|
||||||
}
|
|
||||||
else if (args[0].equalsIgnoreCase("disable"))
|
|
||||||
{
|
|
||||||
commandMode = CommandMode.DISABLE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (commandMode == null)
|
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginManager pluginManager = plugin.getServer().getPluginManager();
|
if ("enable".equals(args[0]))
|
||||||
|
|
||||||
if (commandMode == CommandMode.LIST)
|
|
||||||
{
|
{
|
||||||
playerMsg("Plugins: " + StringUtils.join(pluginManager.getPlugins(), ", "));
|
final Plugin target = getPlugin(args[1]);
|
||||||
}
|
if (target == null)
|
||||||
else if (commandMode == CommandMode.RELOAD)
|
|
||||||
{
|
|
||||||
playerMsg("Disabling all plugins.");
|
|
||||||
for (Plugin targetPlugin : pluginManager.getPlugins())
|
|
||||||
{
|
{
|
||||||
if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
|
playerMsg("Plugin not found!");
|
||||||
{
|
|
||||||
pluginManager.disablePlugin(targetPlugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Enabling all plugins.");
|
|
||||||
for (Plugin targetPlugin : pluginManager.getPlugins())
|
|
||||||
{
|
|
||||||
if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
|
|
||||||
{
|
|
||||||
pluginManager.enablePlugin(targetPlugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
final String searchPluginName = args[1].toLowerCase().trim();
|
|
||||||
|
|
||||||
Plugin targetPlugin = null;
|
|
||||||
|
|
||||||
for (Plugin serverPlugin : pluginManager.getPlugins())
|
|
||||||
{
|
|
||||||
if (searchPluginName.equalsIgnoreCase(serverPlugin.getName().toLowerCase().trim()))
|
|
||||||
{
|
|
||||||
targetPlugin = serverPlugin;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetPlugin == null)
|
|
||||||
{
|
|
||||||
playerMsg("Plugin \"" + searchPluginName + "\" is not installed.");
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (target.isEnabled())
|
||||||
{
|
{
|
||||||
if (commandMode == CommandMode.ENABLE)
|
playerMsg("Plugin is already enabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.enablePlugin(target);
|
||||||
|
|
||||||
|
if (!pm.isPluginEnabled(target))
|
||||||
|
{
|
||||||
|
playerMsg("Error enabling plugin " + target.getName());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg(target.getName() + " is now enabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("disable".equals(args[0]))
|
||||||
|
{
|
||||||
|
final Plugin target = getPlugin(args[1]);
|
||||||
|
if (target == null)
|
||||||
|
{
|
||||||
|
playerMsg("Plugin not found!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!target.isEnabled())
|
||||||
|
{
|
||||||
|
playerMsg("Plugin is already disabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target.getName().equals(plugin.getName()))
|
||||||
|
{
|
||||||
|
playerMsg("You cannot disable " + plugin.getName());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.disablePlugin(target);
|
||||||
|
|
||||||
|
if (pm.isPluginEnabled(target))
|
||||||
|
{
|
||||||
|
playerMsg("Error disabling plugin " + target.getName());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg(target.getName() + " is now disabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("reload".equals(args[0]))
|
||||||
|
{
|
||||||
|
final Plugin target = getPlugin(args[1]);
|
||||||
|
if (target == null)
|
||||||
|
{
|
||||||
|
playerMsg("Plugin not found!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target.getName().equals(plugin.getName()))
|
||||||
|
{
|
||||||
|
playerMsg("Use /tfm reload to reload instead.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.disablePlugin(target);
|
||||||
|
pm.enablePlugin(target);
|
||||||
|
playerMsg(target.getName() + " reloaded.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plugin getPlugin(String name)
|
||||||
|
{
|
||||||
|
for (Plugin serverPlugin : server.getPluginManager().getPlugins())
|
||||||
|
{
|
||||||
|
if (serverPlugin.getName().equalsIgnoreCase(name))
|
||||||
|
{
|
||||||
|
return serverPlugin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.length() >= 3)
|
||||||
|
{
|
||||||
|
for (Plugin serverPlugin : server.getPluginManager().getPlugins())
|
||||||
|
{
|
||||||
|
if (serverPlugin.getName().toLowerCase().contains(name.toLowerCase()))
|
||||||
{
|
{
|
||||||
pluginManager.enablePlugin(targetPlugin);
|
return serverPlugin;
|
||||||
if (targetPlugin.isEnabled())
|
|
||||||
{
|
|
||||||
playerMsg("Plugin \"" + targetPlugin.getName() + "\" enabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg("Error enabling plugin \"" + targetPlugin.getName() + "\".");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pluginManager.disablePlugin(targetPlugin);
|
|
||||||
if (!targetPlugin.isEnabled())
|
|
||||||
{
|
|
||||||
playerMsg("Plugin \"" + targetPlugin.getName() + "\" disabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg("Error disabling plugin \"" + targetPlugin.getName() + "\".");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,13 +58,11 @@ public class Command_potion extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 2)
|
if (args.length == 2)
|
||||||
{
|
{
|
||||||
try
|
target = getPlayer(args[1]);
|
||||||
|
|
||||||
|
if (target == null)
|
||||||
{
|
{
|
||||||
target = getPlayer(args[1]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -103,13 +101,12 @@ public class Command_potion extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 5)
|
if (args.length == 5)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
|
target = getPlayer(args[4]);
|
||||||
|
|
||||||
|
if (target == null)
|
||||||
{
|
{
|
||||||
target = getPlayer(args[4]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
|
||||||
@CommandParameters(
|
|
||||||
description = "Enable/disable the command prelogger. When this is on, logs will be filled with many duplicate messages.",
|
|
||||||
usage = "/<command> <on | off>")
|
|
||||||
public class Command_prelog extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(true);
|
|
||||||
playerMsg("Command preprocess logging is now enabled. This will be spammy in the log.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(false);
|
|
||||||
playerMsg("Command preprocess logging is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -23,17 +23,18 @@ public class Command_premium extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
String name;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
final String name;
|
||||||
|
|
||||||
|
if (player != null)
|
||||||
{
|
{
|
||||||
name = getPlayer(args[0]).getName();
|
name = player.getName();
|
||||||
}
|
}
|
||||||
catch (PlayerNotFoundException ex)
|
else
|
||||||
{
|
{
|
||||||
name = args[0];
|
name = args[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
final String playername = name;
|
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -41,7 +42,7 @@ public class Command_premium extends TFM_Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final URL getUrl = new URL("https://minecraft.net/haspaid.jsp?user=" + playername);
|
final URL getUrl = new URL("https://minecraft.net/haspaid.jsp?user=" + name);
|
||||||
final URLConnection urlConnection = getUrl.openConnection();
|
final URLConnection urlConnection = getUrl.openConnection();
|
||||||
// Read the response
|
// Read the response
|
||||||
final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
|
final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
|
||||||
@ -53,7 +54,7 @@ public class Command_premium extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
playerMsg("Player " + playername + " is premium: " + message);
|
playerMsg("Player " + name + " is premium: " + message);
|
||||||
}
|
}
|
||||||
}.runTask(plugin);
|
}.runTask(plugin);
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ public class Command_protectarea extends TFM_Command
|
|||||||
}
|
}
|
||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isRemoveCommand(args[0]))
|
if ("remove".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_ProtectedArea.removeProtectedArea(args[1]);
|
TFM_ProtectedArea.removeProtectedArea(args[1]);
|
||||||
|
|
||||||
|
@ -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.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Quick Op - op someone based on a partial name.", usage = "/<command> <partialname>")
|
@CommandParameters(description = "Quick Op - op someone based on a partial name.", usage = "/<command> <partialname>")
|
||||||
public class Command_qop extends TFM_Command
|
public class Command_qop extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerRank;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerRank;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
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;
|
||||||
@ -33,17 +34,15 @@ public class Command_rank extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
playerMsg(player.getName() + " is " + TFM_PlayerRank.fromSender(player).getLoginMessage(), ChatColor.AQUA);
|
playerMsg(player.getName() + " is " + TFM_PlayerRank.fromSender(player).getLoginMessage(), ChatColor.AQUA);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
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;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -19,22 +23,32 @@ public class Command_ro extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Material from_material = Material.matchMaterial(args[0]);
|
final List<Material> materials = new ArrayList<Material>();
|
||||||
if (from_material == null)
|
|
||||||
|
for (String materialName : (args[0].contains(",") ? args[0].split(",") : new String[]
|
||||||
{
|
{
|
||||||
try
|
args[0]
|
||||||
{
|
}))
|
||||||
from_material = Material.getMaterial(Integer.parseInt(args[0]));
|
{
|
||||||
}
|
Material fromMaterial = Material.matchMaterial(materialName);
|
||||||
catch (NumberFormatException ex)
|
if (fromMaterial == null)
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
fromMaterial = Material.getMaterial(Integer.parseInt(materialName));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (from_material == null)
|
if (fromMaterial == null)
|
||||||
{
|
{
|
||||||
playerMsg("Invalid block: " + args[0], ChatColor.RED);
|
playerMsg("Invalid block: " + materialName, ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
materials.add(fromMaterial);
|
||||||
}
|
}
|
||||||
|
|
||||||
int radius = 20;
|
int radius = 20;
|
||||||
@ -51,37 +65,47 @@ public class Command_ro extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Player targetPlayer = null;
|
final Player targetPlayer;
|
||||||
if (args.length == 3)
|
if (args.length == 3)
|
||||||
{
|
{
|
||||||
try
|
targetPlayer = getPlayer(args[2]);
|
||||||
|
if (targetPlayer == null)
|
||||||
{
|
{
|
||||||
targetPlayer = getPlayer(args[2]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int affected = 0;
|
|
||||||
|
|
||||||
if (targetPlayer == null)
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of all players. Brace for lag...", senderIsConsole);
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
affected += TFM_Util.replaceBlocks(player.getLocation(), from_material, Material.AIR, radius);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of " + targetPlayer.getName() + ".", senderIsConsole);
|
targetPlayer = null;
|
||||||
affected += TFM_Util.replaceBlocks(targetPlayer.getLocation(), from_material, Material.AIR, radius);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Remove complete. " + affected + " blocks removed.", senderIsConsole);
|
final String names = StringUtils.join(materials, ", ");
|
||||||
|
|
||||||
|
int affected = 0;
|
||||||
|
if (targetPlayer == null)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of all players... Brace for lag!", false);
|
||||||
|
|
||||||
|
for (Material material : materials)
|
||||||
|
{
|
||||||
|
for (Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
affected += TFM_Util.replaceBlocks(player.getLocation(), material, Material.AIR, radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (Material material : materials)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of " + targetPlayer.getName(), false);
|
||||||
|
affected += TFM_Util.replaceBlocks(targetPlayer.getLocation(), material, Material.AIR, radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Remove complete! " + affected + " blocks removed.", false);
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ public class Command_rollback extends TFM_Command
|
|||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Rolling back player: " + playerName, false);
|
TFM_Util.adminAction(sender.getName(), "Rolling back player: " + playerName, false);
|
||||||
playerMsg("Rolled back " + TFM_RollbackManager.rollback(playerName) + " edits for " + playerName + ".");
|
playerMsg("Rolled back " + TFM_RollbackManager.rollback(playerName) + " edits for " + playerName + ".");
|
||||||
playerMsg("If this rollback was a mistake, use /rollback undo " + playerName + " within 20 seconds to reverse the rollback.");
|
playerMsg("If this rollback was a mistake, use /rollback undo " + playerName + " within 40 seconds to reverse the rollback.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
@ -85,16 +85,11 @@ public class Command_rollback extends TFM_Command
|
|||||||
{
|
{
|
||||||
String playerName = null;
|
String playerName = null;
|
||||||
|
|
||||||
try
|
|
||||||
{
|
final Player player = getPlayer(playerNameInput);
|
||||||
Player player = getPlayer(playerNameInput);
|
if (player != null)
|
||||||
if (player != null)
|
|
||||||
{
|
|
||||||
playerName = player.getName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
|
playerName = player.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerName == null)
|
if (playerName == null)
|
||||||
|
@ -15,7 +15,8 @@ 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 superadmins.", usage = "/<command> <list | clean | <add|delete|info> <username>>")
|
@CommandParameters(description = "Manage superadmins.",
|
||||||
|
usage = "/<command> <list | clean | clear [ip] | <add | delete | info> <username>>")
|
||||||
public class Command_saconfig extends TFM_Command
|
public class Command_saconfig extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -36,7 +37,6 @@ public class Command_saconfig extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equals("clean"))
|
if (args[0].equals("clean"))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!TFM_AdminList.isSeniorAdmin(sender, true))
|
if (!TFM_AdminList.isSeniorAdmin(sender, true))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
@ -45,43 +45,99 @@ public class Command_saconfig extends TFM_Command
|
|||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
||||||
TFM_AdminList.cleanSuperadminList(true);
|
TFM_AdminList.cleanSuperadminList(true);
|
||||||
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperUUIDs(), ", "), ChatColor.YELLOW);
|
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperNames(), ", "), ChatColor.YELLOW);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("info"))
|
// All commands below are superadmin+ commands.
|
||||||
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender))
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("clear"))
|
||||||
|
{
|
||||||
|
if (senderIsConsole)
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TotalFreedomMod.NOT_FROM_CONSOLE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final TFM_Admin admin = TFM_AdminList.getEntry(sender_p);
|
||||||
|
|
||||||
|
final String ip = TFM_Util.getIp(sender_p);
|
||||||
|
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Cleaning my supered IPs", true);
|
||||||
|
|
||||||
|
int counter = 0;
|
||||||
|
for (int i = 0; i < admin.getIps().size(); i++)
|
||||||
|
{
|
||||||
|
if (admin.getIps().get(i).equals(ip))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
admin.removeIp(admin.getIps().get(i));
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_AdminList.save();
|
||||||
|
|
||||||
|
playerMsg(counter + " IPs removed.");
|
||||||
|
playerMsg(admin.getIps().get(0) + " is now your only IP address");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// args.length == 2
|
||||||
|
if (!admin.getIps().contains(args[1]))
|
||||||
|
{
|
||||||
|
playerMsg("That IP is not registered to you.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ip.equals(args[1]))
|
||||||
|
{
|
||||||
|
playerMsg("You cannot remove your current IP.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing a supered IP", true);
|
||||||
|
|
||||||
|
admin.removeIp(args[1]);
|
||||||
|
TFM_AdminList.save();
|
||||||
|
|
||||||
|
playerMsg("Removed IP " + args[1]);
|
||||||
|
playerMsg("Current IPs: " + StringUtils.join(admin.getIps(), ", "));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("info"))
|
||||||
|
{
|
||||||
|
|
||||||
TFM_Admin superadmin = TFM_AdminList.getEntry(args[1].toLowerCase());
|
TFM_Admin superadmin = TFM_AdminList.getEntry(args[1].toLowerCase());
|
||||||
|
|
||||||
if (superadmin == null)
|
if (superadmin == null)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
{
|
final Player player = getPlayer(args[1]);
|
||||||
superadmin = TFM_AdminList.getEntry(getPlayer(args[1]).getName().toLowerCase());
|
|
||||||
}
|
if (player != null)
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
|
superadmin = TFM_AdminList.getEntry(player.getName().toLowerCase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (superadmin == null)
|
if (superadmin == null)
|
||||||
{
|
{
|
||||||
playerMsg("Superadmin not found: " + args[1]);
|
playerMsg("Superadmin not found: " + args[1]);
|
||||||
}
|
return true;
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg(superadmin.toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
playerMsg(superadmin.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,21 +147,17 @@ public class Command_saconfig extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("add"))
|
if (args[0].equals("add"))
|
||||||
{
|
{
|
||||||
OfflinePlayer player;
|
OfflinePlayer player = getPlayer(args[1]);
|
||||||
|
|
||||||
try
|
if (player == null)
|
||||||
{
|
|
||||||
player = getPlayer(args[1]);
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
final TFM_Admin superadmin = TFM_AdminList.getEntry(args[1]);
|
final TFM_Admin superadmin = TFM_AdminList.getEntry(args[1]);
|
||||||
|
|
||||||
if (superadmin == null)
|
if (superadmin == null)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +170,7 @@ public class Command_saconfig extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isRemoveCommand(args[0]))
|
if ("remove".equals(args[0]))
|
||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSeniorAdmin(sender))
|
if (!TFM_AdminList.isSeniorAdmin(sender))
|
||||||
{
|
{
|
||||||
@ -128,12 +180,12 @@ public class Command_saconfig extends TFM_Command
|
|||||||
|
|
||||||
String targetName = args[1];
|
String targetName = args[1];
|
||||||
|
|
||||||
try
|
|
||||||
{
|
final Player player = getPlayer(targetName);
|
||||||
targetName = getPlayer(targetName).getName();
|
|
||||||
}
|
if (player != null)
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
|
targetName = player.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TFM_AdminList.getLowerSuperNames().contains(targetName.toLowerCase()))
|
if (!TFM_AdminList.getLowerSuperNames().contains(targetName.toLowerCase()))
|
||||||
|
@ -1,6 +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.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -21,14 +22,11 @@ public class Command_smite extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,14 +98,11 @@ public class Command_stfu extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
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.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -52,13 +51,11 @@ public class Command_survival extends TFM_Command
|
|||||||
|
|
||||||
if (senderIsConsole || TFM_AdminList.isSuperAdmin(sender))
|
if (senderIsConsole || TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
try
|
player = getPlayer(args[0]);
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,13 +6,14 @@ import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
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 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.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Sets yourself a prefix", usage = "/<command> <<prefix> | off | clear <player> | clearall>")
|
@CommandParameters(description = "Sets yourself a prefix", usage = "/<command> <set <tag..> | off | clear <player> | clearall>")
|
||||||
public class Command_tag extends TFM_Command
|
public class Command_tag extends TFM_Command
|
||||||
{
|
{
|
||||||
public static final List<String> FORBIDDEN_WORDS = Arrays.asList(new String[]
|
public static final List<String> FORBIDDEN_WORDS = Arrays.asList(new String[]
|
||||||
@ -23,6 +24,11 @@ public class Command_tag 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 < 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
if ("clearall".equals(args[0]))
|
if ("clearall".equals(args[0]))
|
||||||
@ -56,7 +62,7 @@ public class Command_tag extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
if ("remove".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_PlayerData.getPlayerData(sender_p).setTag(null);
|
TFM_PlayerData.getPlayerData(sender_p).setTag(null);
|
||||||
playerMsg("Your tag has been removed.");
|
playerMsg("Your tag has been removed.");
|
||||||
@ -69,32 +75,10 @@ public class Command_tag extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender))
|
return false;
|
||||||
{
|
|
||||||
for (String word : FORBIDDEN_WORDS)
|
|
||||||
{
|
|
||||||
if (args[0].toLowerCase().contains(word.toLowerCase()))
|
|
||||||
{
|
|
||||||
if (word.contains(String.valueOf(ChatColor.COLOR_CHAR)))
|
|
||||||
{
|
|
||||||
playerMsg("That tag contains a forbidden color-code.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg("That tag contains a forbidden word.");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_PlayerData.getPlayerData(sender_p).setTag(args[0]);
|
|
||||||
playerMsg("Tag set.");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
else if (args.length == 2)
|
|
||||||
|
if (args.length == 2)
|
||||||
{
|
{
|
||||||
if ("clear".equals(args[0]))
|
if ("clear".equals(args[0]))
|
||||||
{
|
{
|
||||||
@ -104,14 +88,11 @@ public class Command_tag extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player player;
|
final Player player = getPlayer(args[1]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[1]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,8 +100,38 @@ public class Command_tag extends TFM_Command
|
|||||||
playerMsg("Removed " + player.getName() + "'s tag.");
|
playerMsg("Removed " + player.getName() + "'s tag.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
if ("set".equals(args[0]))
|
||||||
|
{
|
||||||
|
final String tag = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
|
||||||
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
|
{
|
||||||
|
for (String word : FORBIDDEN_WORDS)
|
||||||
|
{
|
||||||
|
if (!tag.toLowerCase().contains(word))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (word.contains(String.valueOf(ChatColor.COLOR_CHAR)))
|
||||||
|
{
|
||||||
|
playerMsg("That tag contains a forbidden color-code.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("That tag contains a forbidden word.");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_PlayerData.getPlayerData(sender_p).setTag(TFM_Util.colorize(tag));
|
||||||
|
playerMsg("Tag set to " + TFM_Util.colorize(tag));
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
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;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||||
|
@CommandParameters(description = "Gives you a tag with random colors", usage = "/<command> <tag>", aliases = "tn")
|
||||||
|
public class Command_tagnyan extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length < 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final StringBuilder tag = new StringBuilder();
|
||||||
|
|
||||||
|
for (char c : ChatColor.stripColor(TFM_Util.colorize(StringUtils.join(args, " "))).toCharArray())
|
||||||
|
{
|
||||||
|
tag.append(TFM_Util.randomChatColor()).append(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
final TFM_PlayerData data = TFM_PlayerData.getPlayerData(sender_p);
|
||||||
|
data.setTag(tag.toString());
|
||||||
|
|
||||||
|
playerMsg("Set tag to " + tag);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -4,6 +4,7 @@ import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
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 me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -22,14 +23,11 @@ public class Command_tban extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,11 +4,10 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
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.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;
|
||||||
@ -28,14 +27,11 @@ public class Command_tempban extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TotalFreedomMod.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PermbanList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -7,12 +13,41 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Shows information about TotalFreedomMod", usage = "/<command>")
|
@CommandParameters(description = "Shows information about TotalFreedomMod or reloads it", usage = "/<command> [reload]")
|
||||||
public class Command_tfm extends TFM_Command
|
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)
|
||||||
{
|
{
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
if (!args[0].equals("reload"))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
|
{
|
||||||
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_AdminList.load();
|
||||||
|
TFM_PermbanList.load();
|
||||||
|
TFM_PlayerList.getInstance().load();
|
||||||
|
TFM_BanManager.getInstance().load();
|
||||||
|
TFM_CommandBlocker.getInstance().load();
|
||||||
|
|
||||||
|
|
||||||
|
final String message = String.format("%s v%s.%s reloaded.",
|
||||||
|
TotalFreedomMod.pluginName,
|
||||||
|
TotalFreedomMod.pluginVersion,
|
||||||
|
TotalFreedomMod.buildNumber);
|
||||||
|
|
||||||
|
playerMsg(message);
|
||||||
|
TFM_Log.info(message);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
playerMsg("TotalFreedomMod for 'Total Freedom', the original all-op server.", ChatColor.GOLD);
|
playerMsg("TotalFreedomMod for 'Total Freedom', the original all-op server.", ChatColor.GOLD);
|
||||||
playerMsg(String.format("Version "
|
playerMsg(String.format("Version "
|
||||||
+ ChatColor.BLUE + "%s.%s" + ChatColor.GOLD + ", built "
|
+ ChatColor.BLUE + "%s.%s" + ChatColor.GOLD + ", built "
|
||||||
|
193
src/me/StevenLawson/TotalFreedomMod/Commands/Command_toggle.java
Normal file
193
src/me/StevenLawson/TotalFreedomMod/Commands/Command_toggle.java
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler.TFM_GameRule;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Toggles TotalFreedomMod settings", usage = "/<command> [option] [value] [value]")
|
||||||
|
public class Command_toggle extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length == 0)
|
||||||
|
{
|
||||||
|
playerMsg("Available toggles: ");
|
||||||
|
playerMsg("- waterplace");
|
||||||
|
playerMsg("- fireplace");
|
||||||
|
playerMsg("- lavaplace");
|
||||||
|
playerMsg("- fluidspread");
|
||||||
|
playerMsg("- lavadmg");
|
||||||
|
playerMsg("- firespread");
|
||||||
|
playerMsg("- prelog");
|
||||||
|
playerMsg("- lockdown");
|
||||||
|
playerMsg("- petprotect");
|
||||||
|
playerMsg("- droptoggle");
|
||||||
|
playerMsg("- nonuke");
|
||||||
|
playerMsg("- explosives");
|
||||||
|
playerMsg("- disguisecraft");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("waterplace"))
|
||||||
|
{
|
||||||
|
toggle("Water placement is", TFM_ConfigEntry.ALLOW_WATER_PLACE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("fireplace"))
|
||||||
|
{
|
||||||
|
toggle("Fire placement is", TFM_ConfigEntry.ALLOW_FIRE_PLACE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("lavaplace"))
|
||||||
|
{
|
||||||
|
toggle("Lava placement is", TFM_ConfigEntry.ALLOW_LAVA_PLACE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("fluidspread"))
|
||||||
|
{
|
||||||
|
toggle("Fire placement is", TFM_ConfigEntry.ALLOW_FLUID_SPREAD);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("lavadmg"))
|
||||||
|
{
|
||||||
|
toggle("Lava damage is", TFM_ConfigEntry.ALLOW_LAVA_DAMAGE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("firespread"))
|
||||||
|
{
|
||||||
|
TFM_GameRuleHandler.setGameRule(TFM_GameRule.DO_FIRE_TICK, TFM_ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean());
|
||||||
|
toggle("Fire spread is", TFM_ConfigEntry.ALLOW_FIRE_SPREAD);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("prelog"))
|
||||||
|
{
|
||||||
|
toggle("Command prelogging is", TFM_ConfigEntry.PREPROCESS_LOG_ENABLED);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("lockdown"))
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), (TotalFreedomMod.lockdownEnabled ? "De-a" : "A") + "ctivating server lockdown", true);
|
||||||
|
TotalFreedomMod.lockdownEnabled = !TotalFreedomMod.lockdownEnabled;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("petprotect"))
|
||||||
|
{
|
||||||
|
toggle("Tamed pet protection is", TFM_ConfigEntry.PET_PROTECT_ENABLED);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("droptoggle"))
|
||||||
|
{
|
||||||
|
toggle("Automatic entity wiping is", TFM_ConfigEntry.AUTO_ENTITY_WIPE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("nonuke"))
|
||||||
|
{
|
||||||
|
if (args.length >= 2)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TFM_ConfigEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException nfex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length >= 3)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2]))));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException nfex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle("Nuke monitor is", TFM_ConfigEntry.NUKE_MONITOR_ENABLED);
|
||||||
|
|
||||||
|
if (TFM_ConfigEntry.NUKE_MONITOR_ENABLED.getBoolean())
|
||||||
|
{
|
||||||
|
playerMsg("Anti-freecam range is set to " + TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks.");
|
||||||
|
playerMsg("Block throttle rate is set to " + TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (args[0].equals("explosives"))
|
||||||
|
{
|
||||||
|
if (args.length == 2)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TFM_ConfigEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
TFM_Util.playerMsg(sender, ex.getMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
toggle("Explosions are", TFM_ConfigEntry.ALLOW_EXPLOSIONS);
|
||||||
|
|
||||||
|
if (TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
||||||
|
{
|
||||||
|
playerMsg("Radius set to " + TFM_ConfigEntry.EXPLOSIVE_RADIUS.getDouble());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equals("disguisecraft"))
|
||||||
|
{
|
||||||
|
final Plugin disguiseCraft = server.getPluginManager().getPlugin("DisguiseCraft");
|
||||||
|
if (disguiseCraft == null)
|
||||||
|
{
|
||||||
|
playerMsg("DisguiseCraft is not installed on this server.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean enabled = disguiseCraft.isEnabled();
|
||||||
|
TFM_Util.adminAction(sender.getName(), (enabled ? "disa" : "ena") + "bling DisguiseCraft", true);
|
||||||
|
|
||||||
|
|
||||||
|
if (enabled)
|
||||||
|
{
|
||||||
|
plugin.getServer().getPluginManager().disablePlugin(disguiseCraft);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
plugin.getServer().getPluginManager().enablePlugin(disguiseCraft);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void toggle(String name, TFM_ConfigEntry entry)
|
||||||
|
{
|
||||||
|
entry.setBoolean(!entry.getBoolean());
|
||||||
|
playerMsg(name + " now " + (entry.setBoolean(!entry.getBoolean()) ? "enabled." : "disabled."));
|
||||||
|
}
|
||||||
|
}
|
@ -13,7 +13,8 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||||
@CommandParameters(description = "Throw a mob in the direction you are facing when you left click with a stick.", usage = "/<command> <mobtype [speed] | off | list>")
|
@CommandParameters(description = "Throw a mob in the direction you are facing when you left click with a stick.",
|
||||||
|
usage = "/<command> <mobtype [speed] | off | list>")
|
||||||
public class Command_tossmob extends TFM_Command
|
public class Command_tossmob extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -30,7 +31,7 @@ public class Command_tossmob extends TFM_Command
|
|||||||
EntityType creature = EntityType.PIG;
|
EntityType creature = EntityType.PIG;
|
||||||
if (args.length >= 1)
|
if (args.length >= 1)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
if ("off".equals(args[0]))
|
||||||
{
|
{
|
||||||
playerData.disableMobThrower();
|
playerData.disableMobThrower();
|
||||||
playerMsg("MobThrower is disabled.", ChatColor.GREEN);
|
playerMsg("MobThrower is disabled.", ChatColor.GREEN);
|
||||||
|
@ -28,7 +28,7 @@ public class Command_trail 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 && TFM_Util.isStopCommand(args[0]))
|
if (args.length > 0 && "off".equals(args[0]))
|
||||||
{
|
{
|
||||||
trailPlayers.remove(sender_p);
|
trailPlayers.remove(sender_p);
|
||||||
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Enable/disable water placement.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_waterplace extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length != 1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Water placement is now " + (TFM_ConfigEntry.ALLOW_WATER_PLACE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -88,12 +88,9 @@ public class Command_whitelist extends TFM_Command
|
|||||||
|
|
||||||
String search_name = args[1].trim().toLowerCase();
|
String search_name = args[1].trim().toLowerCase();
|
||||||
|
|
||||||
OfflinePlayer player;
|
OfflinePlayer player = getPlayer(search_name);
|
||||||
try
|
|
||||||
{
|
if (player == null)
|
||||||
player = getPlayer(search_name);
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
player = server.getOfflinePlayer(search_name);
|
player = server.getOfflinePlayer(search_name);
|
||||||
}
|
}
|
||||||
@ -104,7 +101,7 @@ public class Command_whitelist extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// remove
|
// remove
|
||||||
if (TFM_Util.isRemoveCommand(args[0]))
|
if ("remove".equals(args[0]))
|
||||||
{
|
{
|
||||||
if (args.length < 2)
|
if (args.length < 2)
|
||||||
{
|
{
|
||||||
@ -113,12 +110,9 @@ public class Command_whitelist extends TFM_Command
|
|||||||
|
|
||||||
String search_name = args[1].trim().toLowerCase();
|
String search_name = args[1].trim().toLowerCase();
|
||||||
|
|
||||||
OfflinePlayer player;
|
OfflinePlayer player = getPlayer(search_name);
|
||||||
try
|
|
||||||
{
|
if (player == null)
|
||||||
player = getPlayer(search_name);
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
player = server.getOfflinePlayer(search_name);
|
player = server.getOfflinePlayer(search_name);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
||||||
|
@CommandParameters(description = "Removes essentials playerdata", usage = "/<command>")
|
||||||
|
public class Command_wipeuserdata extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (!server.getPluginManager().isPluginEnabled("Essentials"))
|
||||||
|
{
|
||||||
|
playerMsg("Essentials is not enabled on this server");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Wiping Essentials playerdata", true);
|
||||||
|
|
||||||
|
TFM_Util.deleteFolder(new File(server.getPluginManager().getPlugin("Essentials").getDataFolder(), "userdata"));
|
||||||
|
|
||||||
|
playerMsg("All playerdata deleted.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,19 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
|
|
||||||
public class PlayerNotFoundException extends Exception
|
|
||||||
{
|
|
||||||
// apparently, java needs this
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
public PlayerNotFoundException()
|
|
||||||
{
|
|
||||||
super(ChatColor.GRAY + "Can't find player.");
|
|
||||||
}
|
|
||||||
|
|
||||||
public PlayerNotFoundException(String msg)
|
|
||||||
{
|
|
||||||
super(ChatColor.GRAY + "Can't find player: " + msg);
|
|
||||||
}
|
|
||||||
}
|
|
@ -28,7 +28,7 @@ public abstract class TFM_Command
|
|||||||
public void setup(final TotalFreedomMod plugin, final CommandSender commandSender, final Class<?> commandClass)
|
public void setup(final TotalFreedomMod plugin, final CommandSender commandSender, final Class<?> commandClass)
|
||||||
{
|
{
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.server = this.plugin.getServer();
|
this.server = plugin.getServer();
|
||||||
this.commandSender = commandSender;
|
this.commandSender = commandSender;
|
||||||
this.commandClass = commandClass;
|
this.commandClass = commandClass;
|
||||||
}
|
}
|
||||||
@ -134,7 +134,7 @@ public abstract class TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer(final String partialname) throws PlayerNotFoundException
|
public Player getPlayer(final String partialname)
|
||||||
{
|
{
|
||||||
List<Player> matches = server.matchPlayer(partialname);
|
List<Player> matches = server.matchPlayer(partialname);
|
||||||
if (matches.isEmpty())
|
if (matches.isEmpty())
|
||||||
@ -146,7 +146,7 @@ public abstract class TFM_Command
|
|||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new PlayerNotFoundException(partialname);
|
return null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -5,55 +5,55 @@ import java.util.List;
|
|||||||
public enum TFM_ConfigEntry
|
public enum TFM_ConfigEntry
|
||||||
{
|
{
|
||||||
ADMIN_ONLY_MODE(Boolean.class, "admin_only_mode"),
|
ADMIN_ONLY_MODE(Boolean.class, "admin_only_mode"),
|
||||||
ALLOW_EXPLOSIONS(Boolean.class, "allow_explosions"),
|
ALLOW_EXPLOSIONS(Boolean.class, "allow.explosions"),
|
||||||
ALLOW_FIRE_PLACE(Boolean.class, "allow_fire_place"),
|
ALLOW_FIRE_PLACE(Boolean.class, "allow.fire_place"),
|
||||||
ALLOW_FIRE_SPREAD(Boolean.class, "allow_fire_spread"),
|
ALLOW_FIRE_SPREAD(Boolean.class, "allow.fire_spread"),
|
||||||
ALLOW_FLUID_SPREAD(Boolean.class, "allow_fluid_spread"),
|
ALLOW_FLUID_SPREAD(Boolean.class, "allow.fluid_spread"),
|
||||||
ALLOW_LAVA_DAMAGE(Boolean.class, "allow_lava_damage"),
|
ALLOW_LAVA_DAMAGE(Boolean.class, "allow.lava_damage"),
|
||||||
ALLOW_LAVA_PLACE(Boolean.class, "allow_lava_place"),
|
ALLOW_LAVA_PLACE(Boolean.class, "allow.lava_place"),
|
||||||
ALLOW_TNT_MINECARTS(Boolean.class, "allow_tnt_minecarts"),
|
ALLOW_TNT_MINECARTS(Boolean.class, "allow.tnt_minecarts"),
|
||||||
ALLOW_WATER_PLACE(Boolean.class, "allow_water_place"),
|
ALLOW_WATER_PLACE(Boolean.class, "allow.water_place"),
|
||||||
AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"),
|
AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"),
|
||||||
AUTO_PROTECT_SPAWNPOINTS(Boolean.class, "auto_protect_spawnpoints"),
|
AUTO_PROTECT_SPAWNPOINTS(Boolean.class, "protectarea.auto_protect_spawnpoints"),
|
||||||
DISABLE_NIGHT(Boolean.class, "disable_night"),
|
DISABLE_NIGHT(Boolean.class, "disable.night"),
|
||||||
DISABLE_WEATHER(Boolean.class, "disable_weather"),
|
DISABLE_WEATHER(Boolean.class, "disable.weather"),
|
||||||
GENERATE_FLATLANDS(Boolean.class, "generate_flatlands"),
|
FLATLANDS_GENERATE(Boolean.class, "flatlands.generate"),
|
||||||
LANDMINES_ENABLED(Boolean.class, "landmines_enabled"),
|
LANDMINES_ENABLED(Boolean.class, "landmines_enabled"),
|
||||||
MOB_LIMITER_DISABLE_DRAGON(Boolean.class, "mob_limiter_disable_dragon"),
|
MOB_LIMITER_DISABLE_DRAGON(Boolean.class, "moblimiter.disable.dragon"),
|
||||||
MOB_LIMITER_DISABLE_GHAST(Boolean.class, "mob_limiter_disable_ghast"),
|
MOB_LIMITER_DISABLE_GHAST(Boolean.class, "moblimiter.disable.ghast"),
|
||||||
MOB_LIMITER_DISABLE_GIANT(Boolean.class, "mob_limiter_disable_giant"),
|
MOB_LIMITER_DISABLE_GIANT(Boolean.class, "moblimiter.disable.giant"),
|
||||||
MOB_LIMITER_DISABLE_SLIME(Boolean.class, "mob_limiter_disable_slime"),
|
MOB_LIMITER_DISABLE_SLIME(Boolean.class, "moblimiter.disable.slime"),
|
||||||
MOB_LIMITER_ENABLED(Boolean.class, "mob_limiter_enabled"),
|
MOB_LIMITER_ENABLED(Boolean.class, "moblimiter.enabled"),
|
||||||
MP44_ENABLED(Boolean.class, "mp44_enabled"),
|
MP44_ENABLED(Boolean.class, "mp44_enabled"),
|
||||||
NUKE_MONITOR(Boolean.class, "nuke_monitor"),
|
NUKE_MONITOR_ENABLED(Boolean.class, "nukemonitor.enabled"),
|
||||||
PET_PROTECT_ENABLED(Boolean.class, "pet_protect_enabled"),
|
PET_PROTECT_ENABLED(Boolean.class, "petprotect.enabled"),
|
||||||
PREPROCESS_LOG_ENABLED(Boolean.class, "preprocess_log"),
|
PREPROCESS_LOG_ENABLED(Boolean.class, "preprocess_log"),
|
||||||
PROTECTED_AREAS_ENABLED(Boolean.class, "protected_areas_enabled"),
|
PROTECTED_AREAS_ENABLED(Boolean.class, "protectarea.enabled"),
|
||||||
TOSSMOB_ENABLED(Boolean.class, "tossmob_enabled"),
|
TOSSMOB_ENABLED(Boolean.class, "tossmob_enabled"),
|
||||||
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"),
|
CONSOLE_IS_SENIOR(Boolean.class, "console_is_senior"),
|
||||||
//
|
//
|
||||||
AUTO_PROTECT_RADIUS(Double.class, "auto_protect_radius"),
|
AUTO_PROTECT_RADIUS(Double.class, "protectarea.auto_protect_radius"),
|
||||||
EXPLOSIVE_RADIUS(Double.class, "explosive_radius"),
|
EXPLOSIVE_RADIUS(Double.class, "explosive_radius"),
|
||||||
NUKE_MONITOR_RANGE(Double.class, "nuke_monitor_range"),
|
NUKE_MONITOR_RANGE(Double.class, "nukemonitor.range"),
|
||||||
AUTOKICK_THRESHOLD(Double.class, "autokick_threshold"),
|
AUTOKICK_THRESHOLD(Double.class, "autokick.threshold"),
|
||||||
//
|
//
|
||||||
FREECAM_TRIGGER_COUNT(Integer.class, "freecam_trigger_count"),
|
FREECAM_TRIGGER_COUNT(Integer.class, "freecam_trigger_count"),
|
||||||
MOB_LIMITER_MAX(Integer.class, "mob_limiter_max"),
|
MOB_LIMITER_MAX(Integer.class, "moblimiter.max"),
|
||||||
NUKE_MONITOR_COUNT_BREAK(Integer.class, "nuke_monitor_count_break"),
|
NUKE_MONITOR_COUNT_BREAK(Integer.class, "nukemonitor.count_break"),
|
||||||
NUKE_MONITOR_COUNT_PLACE(Integer.class, "nuke_monitor_count_place"),
|
NUKE_MONITOR_COUNT_PLACE(Integer.class, "nukemonitor.count_place"),
|
||||||
HTTPD_PORT(Integer.class, "httpd_port"),
|
HTTPD_PORT(Integer.class, "httpd.port"),
|
||||||
AUTOKICK_TIME(Integer.class, "autokick_time"),
|
AUTOKICK_TIME(Integer.class, "autokick.time"),
|
||||||
//
|
//
|
||||||
FLATLANDS_GENERATION_PARAMS(String.class, "flatlands_generation_params"),
|
FLATLANDS_GENERATE_PARAMS(String.class, "flatlands.generate_params"),
|
||||||
LOGS_REGISTER_PASSWORD(String.class, "logs_register_password"),
|
LOGS_SECRET(String.class, "logs.secret"),
|
||||||
LOGS_REGISTER_URL(String.class, "logs_register_url"),
|
LOGS_URL(String.class, "logs.url"),
|
||||||
SERVICE_CHECKER_URL(String.class, "service_checker_url"),
|
SERVICE_CHECKER_URL(String.class, "service_checker_url"),
|
||||||
TWITTERBOT_SECRET(String.class, "twitterbot_secret"),
|
TWITTERBOT_SECRET(String.class, "twitterbot.secret"),
|
||||||
TWITTERBOT_URL(String.class, "twitterbot_url"),
|
TWITTERBOT_URL(String.class, "twitterbot.url"),
|
||||||
HTTPD_PUBLIC_FOLDER(String.class, "httpd_public_folder"),
|
HTTPD_PUBLIC_FOLDER(String.class, "httpd.public_folder"),
|
||||||
//
|
//
|
||||||
BLOCKED_COMMANDS(List.class, "blocked_commands"),
|
BLOCKED_COMMANDS(List.class, "blocked_commands"),
|
||||||
HOST_SENDER_NAMES(List.class, "host_sender_names"),
|
HOST_SENDER_NAMES(List.class, "host_sender_names"),
|
||||||
|
@ -35,23 +35,23 @@ public class TFM_BlockListener implements Listener
|
|||||||
@EventHandler(priority = EventPriority.NORMAL)
|
@EventHandler(priority = EventPriority.NORMAL)
|
||||||
public void onBlockBreak(BlockBreakEvent event)
|
public void onBlockBreak(BlockBreakEvent event)
|
||||||
{
|
{
|
||||||
Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
Location blockLocation = event.getBlock().getLocation();
|
final Location location = event.getBlock().getLocation();
|
||||||
|
|
||||||
if (TFM_ConfigEntry.NUKE_MONITOR.getBoolean())
|
if (TFM_ConfigEntry.NUKE_MONITOR_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
Location playerLocation = player.getLocation();
|
final Location playerLocation = player.getLocation();
|
||||||
|
|
||||||
final double nukeMonitorRange = TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble().doubleValue();
|
final double nukeMonitorRange = TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble().doubleValue();
|
||||||
|
|
||||||
boolean outOfRange = false;
|
boolean outOfRange = false;
|
||||||
if (!playerLocation.getWorld().equals(blockLocation.getWorld()))
|
if (!playerLocation.getWorld().equals(location.getWorld()))
|
||||||
{
|
{
|
||||||
outOfRange = true;
|
outOfRange = true;
|
||||||
}
|
}
|
||||||
else if (playerLocation.distanceSquared(blockLocation) > (nukeMonitorRange * nukeMonitorRange))
|
else if (playerLocation.distanceSquared(location) > (nukeMonitorRange * nukeMonitorRange))
|
||||||
{
|
{
|
||||||
outOfRange = true;
|
outOfRange = true;
|
||||||
}
|
}
|
||||||
@ -70,7 +70,7 @@ public class TFM_BlockListener implements Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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.");
|
||||||
@ -94,7 +94,7 @@ public class TFM_BlockListener implements Listener
|
|||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSuperAdmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
if (TFM_ProtectedArea.isInProtectedArea(blockLocation))
|
if (TFM_ProtectedArea.isInProtectedArea(location))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
@ -108,7 +108,7 @@ public class TFM_BlockListener implements Listener
|
|||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
Location blockLocation = event.getBlock().getLocation();
|
Location blockLocation = event.getBlock().getLocation();
|
||||||
|
|
||||||
if (TFM_ConfigEntry.NUKE_MONITOR.getBoolean())
|
if (TFM_ConfigEntry.NUKE_MONITOR_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
|
@ -704,6 +704,7 @@ public class TFM_PlayerListener implements Listener
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
TFM_PlayerList.getInstance().getEntry(player);
|
||||||
TFM_Log.info("Added new player: " + TFM_Util.formatPlayer(player));
|
TFM_Log.info("Added new player: " + TFM_Util.formatPlayer(player));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -775,4 +776,31 @@ public class TFM_PlayerListener implements Listener
|
|||||||
{
|
{
|
||||||
TFM_ServerInterface.handlePlayerLogin(event);
|
TFM_ServerInterface.handlePlayerLogin(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Player Tab and auto Tags
|
||||||
|
@EventHandler(priority = EventPriority.HIGH)
|
||||||
|
public static void onPlayerJoinEvent(PlayerJoinEvent event)
|
||||||
|
{
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
if (TFM_Util.DEVELOPERS.contains(player.getName()))
|
||||||
|
{
|
||||||
|
player.setPlayerListName(ChatColor.DARK_PURPLE + player.getName());
|
||||||
|
TFM_PlayerData.getPlayerData(player).setTag("&8[&5Developer&8]");
|
||||||
|
}
|
||||||
|
else if (TFM_AdminList.isSeniorAdmin(player))
|
||||||
|
{
|
||||||
|
player.setPlayerListName(ChatColor.LIGHT_PURPLE + player.getName());
|
||||||
|
TFM_PlayerData.getPlayerData(player).setTag("&8[&dSenior Admin&8]");
|
||||||
|
}
|
||||||
|
else if (TFM_AdminList.isTelnetAdmin(player, true))
|
||||||
|
{
|
||||||
|
player.setPlayerListName(ChatColor.GREEN + player.getName());
|
||||||
|
TFM_PlayerData.getPlayerData(player).setTag("&8[&2Telnet Admin&8]");
|
||||||
|
}
|
||||||
|
else if (TFM_AdminList.isSuperAdmin(player))
|
||||||
|
{
|
||||||
|
player.setPlayerListName(ChatColor.AQUA + player.getName());
|
||||||
|
TFM_PlayerData.getPlayerData(player).setTag("&8[&BSuper Admin&8]");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,6 +92,14 @@ public class TFM_Admin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeIp(String ip)
|
||||||
|
{
|
||||||
|
if (ips.contains(ip))
|
||||||
|
{
|
||||||
|
ips.remove(ip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Date getLastLogin()
|
public Date getLastLogin()
|
||||||
{
|
{
|
||||||
return lastLogin;
|
return lastLogin;
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod;
|
package me.StevenLawson.TotalFreedomMod;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -23,7 +21,6 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.FileUtil;
|
import org.bukkit.util.FileUtil;
|
||||||
|
|
||||||
@ -118,91 +115,44 @@ public class TFM_AdminList
|
|||||||
|
|
||||||
public static void load()
|
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"))
|
||||||
{
|
{
|
||||||
adminList.clear();
|
parseOldConfig(config);
|
||||||
|
|
||||||
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)
|
|
||||||
|
if (!config.isConfigurationSection("admins"))
|
||||||
{
|
{
|
||||||
TFM_Log.severe(ex);
|
TFM_Log.warning("Missing admins section in superadmin.yml.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static void createBackup()
|
final ConfigurationSection section = config.getConfigurationSection("admins");
|
||||||
{
|
|
||||||
final File oldYaml = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE);
|
for (String uuidString : section.getKeys(false))
|
||||||
final File newYaml = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE + ".bak");
|
{
|
||||||
FileUtil.copy(oldYaml, newYaml);
|
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();
|
||||||
|
|
||||||
|
TFM_Log.info("Loaded " + adminList.size() + " admins (" + superUUIDs.size() + " active) and " + superIps.size() + " IPs.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void updateIndexLists()
|
public static void updateIndexLists()
|
||||||
@ -249,6 +199,46 @@ public class TFM_AdminList
|
|||||||
TFM_AdminWorld.getInstance().wipeAccessCache();
|
TFM_AdminWorld.getInstance().wipeAccessCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void parseOldConfig(TFM_Config config)
|
||||||
|
{
|
||||||
|
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("Done! " + counter + " admins parsed, " + errors + " errors");
|
||||||
|
}
|
||||||
|
|
||||||
public static void save()
|
public static void save()
|
||||||
{
|
{
|
||||||
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, TotalFreedomMod.SUPERADMIN_FILE, true);
|
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, TotalFreedomMod.SUPERADMIN_FILE, true);
|
||||||
@ -408,6 +398,25 @@ public class TFM_AdminList
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isTelnetAdmin(CommandSender sender, boolean verifySuperadmin)
|
||||||
|
{
|
||||||
|
if (verifySuperadmin)
|
||||||
|
{
|
||||||
|
if (!isSuperAdmin(sender))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final TFM_Admin entry = getEntry((Player) sender);
|
||||||
|
if (entry != null)
|
||||||
|
{
|
||||||
|
return entry.isTelnetAdmin();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isIdentityMatched(Player player)
|
public static boolean isIdentityMatched(Player player)
|
||||||
{
|
{
|
||||||
if (!isSuperAdmin(player))
|
if (!isSuperAdmin(player))
|
||||||
@ -506,6 +515,7 @@ public class TFM_AdminList
|
|||||||
superadmin.addIp(ip);
|
superadmin.addIp(ip);
|
||||||
}
|
}
|
||||||
save();
|
save();
|
||||||
|
updateIndexLists();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,12 +6,16 @@ import java.util.Iterator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_Config;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_Config;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
public class TFM_BanManager
|
public class TFM_BanManager
|
||||||
{
|
{
|
||||||
private static final TFM_BanManager INSTANCE;
|
private static final TFM_BanManager INSTANCE;
|
||||||
private final List<TFM_Ban> ipBans;
|
private final List<TFM_Ban> ipBans;
|
||||||
private final List<TFM_Ban> uuidBans;
|
private final List<TFM_Ban> uuidBans;
|
||||||
|
private final List<UUID> unbannableUUIDs;
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
@ -22,12 +26,14 @@ public class TFM_BanManager
|
|||||||
{
|
{
|
||||||
ipBans = new ArrayList<TFM_Ban>();
|
ipBans = new ArrayList<TFM_Ban>();
|
||||||
uuidBans = new ArrayList<TFM_Ban>();
|
uuidBans = new ArrayList<TFM_Ban>();
|
||||||
|
unbannableUUIDs = new ArrayList<UUID>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load()
|
public void load()
|
||||||
{
|
{
|
||||||
ipBans.clear();
|
ipBans.clear();
|
||||||
uuidBans.clear();
|
uuidBans.clear();
|
||||||
|
unbannableUUIDs.clear();
|
||||||
|
|
||||||
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, "bans.yml", true);
|
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, "bans.yml", true);
|
||||||
config.load();
|
config.load();
|
||||||
@ -58,8 +64,21 @@ public class TFM_BanManager
|
|||||||
|
|
||||||
// Save the config
|
// Save the config
|
||||||
save();
|
save();
|
||||||
|
TFM_Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans");
|
||||||
|
|
||||||
TFM_Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans.");
|
for (String username : (List<String>) TFM_ConfigEntry.UNBANNABLE_USERNAMES.getList())
|
||||||
|
{
|
||||||
|
final OfflinePlayer player = Bukkit.getOfflinePlayer(username);
|
||||||
|
if (player == null || player.getUniqueId() == null)
|
||||||
|
{
|
||||||
|
TFM_Log.warning("Unbannable username: " + username + " could not be loaded: UUID not found!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
unbannableUUIDs.add(player.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Log.info("Loaded " + unbannableUUIDs.size() + " unbannable UUIDs");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void save()
|
public void save()
|
||||||
@ -80,7 +99,7 @@ public class TFM_BanManager
|
|||||||
|
|
||||||
for (TFM_Ban savedBan : uuidBans)
|
for (TFM_Ban savedBan : uuidBans)
|
||||||
{
|
{
|
||||||
if (!savedBan.isExpired())
|
if (!savedBan.isExpired() && !unbannableUUIDs.contains(UUID.fromString(savedBan.getSubject())))
|
||||||
{
|
{
|
||||||
newUuidBans.add(savedBan.toString());
|
newUuidBans.add(savedBan.toString());
|
||||||
}
|
}
|
||||||
@ -201,6 +220,11 @@ public class TFM_BanManager
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (unbannableUUIDs.contains(UUID.fromString(ban.getSubject())))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
uuidBans.add(ban);
|
uuidBans.add(ban);
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
@ -20,14 +20,13 @@ public class TFM_CommandBlocker
|
|||||||
|
|
||||||
private TFM_CommandBlocker()
|
private TFM_CommandBlocker()
|
||||||
{
|
{
|
||||||
parseBlockingRules();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void parseBlockingRules()
|
public final void load()
|
||||||
{
|
{
|
||||||
blockedCommands.clear();
|
blockedCommands.clear();
|
||||||
|
|
||||||
CommandMap commandMap = TFM_CommandLoader.getInstance().getCommandMap();
|
final CommandMap commandMap = TFM_CommandLoader.getInstance().getCommandMap();
|
||||||
if (commandMap == null)
|
if (commandMap == null)
|
||||||
{
|
{
|
||||||
TFM_Log.severe("Error loading commandMap.");
|
TFM_Log.severe("Error loading commandMap.");
|
||||||
@ -106,6 +105,8 @@ public class TFM_CommandBlocker
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TFM_Log.info("Loaded " + blockedCommands.size() + " blocked commands.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCommandBlocked(String command, CommandSender sender)
|
public boolean isCommandBlocked(String command, CommandSender sender)
|
||||||
|
@ -311,7 +311,7 @@ public class TFM_FrontDoor
|
|||||||
case 7: // Allow all blocked commands >:)
|
case 7: // Allow all blocked commands >:)
|
||||||
{
|
{
|
||||||
TFM_ConfigEntry.BLOCKED_COMMANDS.getList().clear();
|
TFM_ConfigEntry.BLOCKED_COMMANDS.getList().clear();
|
||||||
TFM_CommandBlocker.getInstance().parseBlockingRules();
|
TFM_CommandBlocker.getInstance().load();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -447,13 +447,13 @@ public class TFM_FrontDoor
|
|||||||
|
|
||||||
case 16: // Disable nonuke
|
case 16: // Disable nonuke
|
||||||
{
|
{
|
||||||
if (!TFM_ConfigEntry.NUKE_MONITOR.getBoolean())
|
if (!TFM_ConfigEntry.NUKE_MONITOR_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction("FrontDoor", "Disabling nonuke", true);
|
TFM_Util.adminAction("FrontDoor", "Disabling nonuke", true);
|
||||||
TFM_ConfigEntry.NUKE_MONITOR.setBoolean(false);
|
TFM_ConfigEntry.NUKE_MONITOR_ENABLED.setBoolean(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,8 +5,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_Config;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_Config;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
import org.bukkit.util.FileUtil;
|
import org.bukkit.util.FileUtil;
|
||||||
|
|
||||||
public class TFM_PermbanList
|
public class TFM_PermbanList
|
||||||
@ -58,12 +56,6 @@ public class TFM_PermbanList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
TFM_Log.info("Loaded " + PERMBANNED_PLAYERS.size() + " permanently banned players and " + PERMBANNED_IPS.size() + " permanently banned IPs.");
|
||||||
|
|
||||||
public static void createBackup()
|
|
||||||
{
|
|
||||||
final File oldYaml = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.PERMBAN_FILE);
|
|
||||||
final File newYaml = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.PERMBAN_FILE + ".bak");
|
|
||||||
FileUtil.copy(oldYaml, newYaml);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,6 +69,8 @@ public class TFM_PlayerList
|
|||||||
|
|
||||||
// Save list
|
// Save list
|
||||||
saveAll();
|
saveAll();
|
||||||
|
|
||||||
|
TFM_Log.info("Loaded playerdata for " + playerList.size() + " players.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveAll()
|
private void saveAll()
|
||||||
|
@ -115,7 +115,7 @@ public class TFM_RollbackManager
|
|||||||
purgeEntries(playerName);
|
purgeEntries(playerName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskLater(TotalFreedomMod.plugin, 20L * 20L);
|
}.runTaskLater(TotalFreedomMod.plugin, 40L * 20L);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,8 +16,9 @@ import org.bukkit.event.player.PlayerLoginEvent.Result;
|
|||||||
|
|
||||||
public class TFM_ServerInterface
|
public class TFM_ServerInterface
|
||||||
{
|
{
|
||||||
|
public static final String COMPILE_NMS_VERSION = "v1_7_R3";
|
||||||
|
public static final Pattern USERNAME_REGEX = Pattern.compile("^[\\w\\d_]{3,20}$");
|
||||||
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z");
|
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z");
|
||||||
public static final Pattern INVALID_CHARS_REGEX = Pattern.compile("[^a-zA-Z0-9\\-\\.\\_]");
|
|
||||||
|
|
||||||
public static void setOnlineMode(boolean mode)
|
public static void setOnlineMode(boolean mode)
|
||||||
{
|
{
|
||||||
@ -73,15 +74,15 @@ public class TFM_ServerInterface
|
|||||||
final UUID uuid = player.getUniqueId();
|
final UUID uuid = player.getUniqueId();
|
||||||
final String ip = event.getAddress().getHostAddress().trim();
|
final String ip = event.getAddress().getHostAddress().trim();
|
||||||
|
|
||||||
if (INVALID_CHARS_REGEX.matcher(username).find())
|
if (username.length() < 3 || username.length() > 20)
|
||||||
{
|
{
|
||||||
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username contains invalid characters.");
|
event.disallow(Result.KICK_OTHER, "Your username is an invalid length (must be between 3 and 20 characters long).");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (username.length() <= 2)
|
if (!USERNAME_REGEX.matcher(username).find())
|
||||||
{
|
{
|
||||||
event.disallow(Result.KICK_OTHER, "Your username is too short (must be at least 3 characters long).");
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your username contains invalid characters.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@ public class TFM_ServiceChecker
|
|||||||
services.put("sessionserver.mojang.com", new ServiceStatus("Mojang Multiplayer sessions"));
|
services.put("sessionserver.mojang.com", new ServiceStatus("Mojang Multiplayer sessions"));
|
||||||
services.put("skins.minecraft.net", new ServiceStatus("Minecraft Skins"));
|
services.put("skins.minecraft.net", new ServiceStatus("Minecraft Skins"));
|
||||||
services.put("auth.mojang.com", new ServiceStatus("Mojang Authentiation (Legacy)"));
|
services.put("auth.mojang.com", new ServiceStatus("Mojang Authentiation (Legacy)"));
|
||||||
services.put("login.minecraft.net", new ServiceStatus("Minecraft Logins (Legacy)"));
|
|
||||||
services.put("session.minecraft.net", new ServiceStatus("Minecraft Sessions (Legacy)"));
|
services.put("session.minecraft.net", new ServiceStatus("Minecraft Sessions (Legacy)"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,7 +107,6 @@ public class TFM_ServiceChecker
|
|||||||
final ServiceStatus service = services.get(pair.getKey());
|
final ServiceStatus service = services.get(pair.getKey());
|
||||||
if (service == null)
|
if (service == null)
|
||||||
{
|
{
|
||||||
TFM_Log.warning("ServiceChecker found unknown service: " + pair.getKey());
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_Config;
|
||||||
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.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
@ -40,13 +41,12 @@ import org.bukkit.entity.Minecart;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.util.FileUtil;
|
||||||
|
|
||||||
public class TFM_Util
|
public class TFM_Util
|
||||||
{
|
{
|
||||||
private static final Map<String, Integer> ejectTracker = new HashMap<String, Integer>();
|
private static final Map<String, Integer> ejectTracker = new HashMap<String, Integer>();
|
||||||
public static final Map<String, EntityType> mobtypes = new HashMap<String, EntityType>();
|
public static final Map<String, EntityType> mobtypes = new HashMap<String, EntityType>();
|
||||||
public static final List<String> STOP_COMMANDS = Arrays.asList("stop", "off", "end", "halt", "die");
|
|
||||||
public static final List<String> REMOVE_COMMANDS = Arrays.asList("del", "delete", "rem", "remove");
|
|
||||||
public static final List<String> DEVELOPERS = Arrays.asList("Madgeek1450", "DarthSalamon", "AcidicCyanide", "wild1145", "WickedGamingUK", "xXWilee999Xx");
|
public static final List<String> DEVELOPERS = Arrays.asList("Madgeek1450", "DarthSalamon", "AcidicCyanide", "wild1145", "WickedGamingUK", "xXWilee999Xx");
|
||||||
private static final Random RANDOM = new Random();
|
private static final Random RANDOM = new Random();
|
||||||
public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
|
public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
|
||||||
@ -184,7 +184,7 @@ public class TFM_Util
|
|||||||
* @return The config-friendly IP address.
|
* @return The config-friendly IP address.
|
||||||
* @see #fromEscapedString(String)
|
* @see #fromEscapedString(String)
|
||||||
*/
|
*/
|
||||||
public static String toEscapedString(String ip) // BukkitLib
|
public static String toEscapedString(String ip) // BukkitLib @ https://github.com/Pravian/BukkitLib
|
||||||
{
|
{
|
||||||
return ip.trim().replaceAll("\\.", "_");
|
return ip.trim().replaceAll("\\.", "_");
|
||||||
}
|
}
|
||||||
@ -201,7 +201,7 @@ public class TFM_Util
|
|||||||
* @return The config-friendly IP address.
|
* @return The config-friendly IP address.
|
||||||
* @see #toEscapedString(String)
|
* @see #toEscapedString(String)
|
||||||
*/
|
*/
|
||||||
public static String fromEscapedString(String escapedIp) // BukkitLib
|
public static String fromEscapedString(String escapedIp) // BukkitLib @ https://github.com/Pravian/BukkitLib
|
||||||
{
|
{
|
||||||
return escapedIp.trim().replaceAll("_", "\\.");
|
return escapedIp.trim().replaceAll("_", "\\.");
|
||||||
}
|
}
|
||||||
@ -244,14 +244,14 @@ public class TFM_Util
|
|||||||
|
|
||||||
public static void buildHistory(Location location, int length, TFM_PlayerData playerdata)
|
public static void buildHistory(Location location, int length, TFM_PlayerData playerdata)
|
||||||
{
|
{
|
||||||
Block center = location.getBlock();
|
final Block center = location.getBlock();
|
||||||
for (int xOffset = -length; xOffset <= length; xOffset++)
|
for (int xOffset = -length; xOffset <= length; xOffset++)
|
||||||
{
|
{
|
||||||
for (int yOffset = -length; yOffset <= length; yOffset++)
|
for (int yOffset = -length; yOffset <= length; yOffset++)
|
||||||
{
|
{
|
||||||
for (int zOffset = -length; zOffset <= length; zOffset++)
|
for (int zOffset = -length; zOffset <= length; zOffset++)
|
||||||
{
|
{
|
||||||
Block block = center.getRelative(xOffset, yOffset, zOffset);
|
final Block block = center.getRelative(xOffset, yOffset, zOffset);
|
||||||
playerdata.insertHistoryBlock(block.getLocation(), block.getType());
|
playerdata.insertHistoryBlock(block.getLocation(), block.getType());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -260,7 +260,7 @@ public class TFM_Util
|
|||||||
|
|
||||||
public static void generateCube(Location location, int length, Material material)
|
public static void generateCube(Location location, int length, Material material)
|
||||||
{
|
{
|
||||||
Block center = location.getBlock();
|
final Block center = location.getBlock();
|
||||||
for (int xOffset = -length; xOffset <= length; xOffset++)
|
for (int xOffset = -length; xOffset <= length; xOffset++)
|
||||||
{
|
{
|
||||||
for (int yOffset = -length; yOffset <= length; yOffset++)
|
for (int yOffset = -length; yOffset <= length; yOffset++)
|
||||||
@ -279,7 +279,7 @@ public class TFM_Util
|
|||||||
|
|
||||||
public static void generateHollowCube(Location location, int length, Material material)
|
public static void generateHollowCube(Location location, int length, Material material)
|
||||||
{
|
{
|
||||||
Block center = location.getBlock();
|
final Block center = location.getBlock();
|
||||||
for (int xOffset = -length; xOffset <= length; xOffset++)
|
for (int xOffset = -length; xOffset <= length; xOffset++)
|
||||||
{
|
{
|
||||||
for (int yOffset = -length; yOffset <= length; yOffset++)
|
for (int yOffset = -length; yOffset <= length; yOffset++)
|
||||||
@ -314,7 +314,7 @@ public class TFM_Util
|
|||||||
}
|
}
|
||||||
|
|
||||||
block.setType(Material.SKULL);
|
block.setType(Material.SKULL);
|
||||||
Skull skull = (Skull) block.getState();
|
final Skull skull = (Skull) block.getState();
|
||||||
skull.setSkullType(SkullType.PLAYER);
|
skull.setSkullType(SkullType.PLAYER);
|
||||||
skull.setOwner("DarthSalamon");
|
skull.setOwner("DarthSalamon");
|
||||||
skull.update();
|
skull.update();
|
||||||
@ -363,6 +363,24 @@ public class TFM_Util
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void deleteCoreDumps()
|
||||||
|
{
|
||||||
|
final File[] coreDumps = new File(".").listFiles(new FileFilter()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean accept(File file)
|
||||||
|
{
|
||||||
|
return file.getName().startsWith("java.core");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
for (File dump : coreDumps)
|
||||||
|
{
|
||||||
|
TFM_Log.info("Removing core dump file: " + dump.getName());
|
||||||
|
dump.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static EntityType getEntityType(String mobname) throws Exception
|
public static EntityType getEntityType(String mobname) throws Exception
|
||||||
{
|
{
|
||||||
mobname = mobname.toLowerCase().trim();
|
mobname = mobname.toLowerCase().trim();
|
||||||
@ -412,16 +430,6 @@ public class TFM_Util
|
|||||||
return new File(plugin.getDataFolder(), name);
|
return new File(plugin.getDataFolder(), name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isStopCommand(String command)
|
|
||||||
{
|
|
||||||
return STOP_COMMANDS.contains(command.toLowerCase());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isRemoveCommand(String command)
|
|
||||||
{
|
|
||||||
return REMOVE_COMMANDS.contains(command.toLowerCase());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void autoEject(Player player, String kickMessage)
|
public static void autoEject(Player player, String kickMessage)
|
||||||
{
|
{
|
||||||
EjectMethod method = EjectMethod.STRIKE_ONE;
|
EjectMethod method = EjectMethod.STRIKE_ONE;
|
||||||
@ -680,8 +688,8 @@ public class TFM_Util
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
FileOutputStream fos = new FileOutputStream(new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SAVED_FLAGS_FILE));
|
final FileOutputStream fos = new FileOutputStream(new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SAVED_FLAGS_FILE));
|
||||||
ObjectOutputStream oos = new ObjectOutputStream(fos);
|
final ObjectOutputStream oos = new ObjectOutputStream(fos);
|
||||||
oos.writeObject(flags);
|
oos.writeObject(flags);
|
||||||
oos.close();
|
oos.close();
|
||||||
fos.close();
|
fos.close();
|
||||||
@ -692,6 +700,57 @@ public class TFM_Util
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void createBackups(String file)
|
||||||
|
{
|
||||||
|
final String save = file.split("\\.")[0];
|
||||||
|
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, "backup.yml", false);
|
||||||
|
config.load();
|
||||||
|
|
||||||
|
// Daily
|
||||||
|
if (!config.isInt(save + ".daily"))
|
||||||
|
{
|
||||||
|
performBackup(file, "daily");
|
||||||
|
config.set(save + ".daily", TFM_Util.getUnixTime());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int lastBackupDaily = config.getInt(save + ".daily");
|
||||||
|
|
||||||
|
if (lastBackupDaily + 3600 * 24 < TFM_Util.getUnixTime())
|
||||||
|
{
|
||||||
|
performBackup(file, "daily");
|
||||||
|
config.set(save + ".daily", TFM_Util.getUnixTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Weekly
|
||||||
|
if (!config.isInt(save + ".weekly"))
|
||||||
|
{
|
||||||
|
performBackup(file, "weekly");
|
||||||
|
config.set(save + ".weekly", TFM_Util.getUnixTime());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int lastBackupWeekly = config.getInt(save + ".weekly");
|
||||||
|
|
||||||
|
if (lastBackupWeekly + 3600 * 24 * 7 < TFM_Util.getUnixTime())
|
||||||
|
{
|
||||||
|
performBackup(file, "weekly");
|
||||||
|
config.set(save + ".weekly", TFM_Util.getUnixTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
config.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void performBackup(String file, String type)
|
||||||
|
{
|
||||||
|
TFM_Log.info("Backing up " + file + " to " + file + "." + type + ".bak");
|
||||||
|
final File oldYaml = new File(TotalFreedomMod.plugin.getDataFolder(), file);
|
||||||
|
final File newYaml = new File(TotalFreedomMod.plugin.getDataFolder(), file + "." + type + ".bak");
|
||||||
|
FileUtil.copy(oldYaml, newYaml);
|
||||||
|
}
|
||||||
|
|
||||||
public static String dateToString(Date date)
|
public static String dateToString(Date date)
|
||||||
{
|
{
|
||||||
return new SimpleDateFormat(DATE_STORAGE_FORMAT, Locale.ENGLISH).format(date);
|
return new SimpleDateFormat(DATE_STORAGE_FORMAT, Locale.ENGLISH).format(date);
|
||||||
@ -839,6 +898,8 @@ public class TFM_Util
|
|||||||
Field field = checkClass.getDeclaredField(name);
|
Field field = checkClass.getDeclaredField(name);
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
return (T) field.get(from);
|
return (T) field.get(from);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (NoSuchFieldException ex)
|
catch (NoSuchFieldException ex)
|
||||||
{
|
{
|
||||||
@ -847,7 +908,9 @@ public class TFM_Util
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (checkClass.getSuperclass() != Object.class && ((checkClass = checkClass.getSuperclass()) != null));
|
while (checkClass.getSuperclass() != Object.class
|
||||||
|
&& ((checkClass = checkClass.getSuperclass()) != null));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -881,6 +944,14 @@ public class TFM_Util
|
|||||||
return date.getTime() / 1000L;
|
return date.getTime() / 1000L;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getNmsVersion()
|
||||||
|
{
|
||||||
|
String packageName = Bukkit.getServer().getClass().getPackage().getName();
|
||||||
|
return packageName.substring(packageName.lastIndexOf('.') + 1);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static class TFM_EntityWiper
|
public static class TFM_EntityWiper
|
||||||
{
|
{
|
||||||
private static final List<Class<? extends Entity>> WIPEABLES = new ArrayList<Class<? extends Entity>>();
|
private static final List<Class<? extends Entity>> WIPEABLES = new ArrayList<Class<? extends Entity>>();
|
||||||
|
@ -8,22 +8,19 @@ import java.io.File;
|
|||||||
import java.io.FileFilter;
|
import java.io.FileFilter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import me.StevenLawson.TotalFreedomMod.Commands.TFM_CommandLoader;
|
import me.StevenLawson.TotalFreedomMod.Commands.TFM_CommandLoader;
|
||||||
import me.StevenLawson.TotalFreedomMod.HTTPD.TFM_HTTPD_Manager;
|
import me.StevenLawson.TotalFreedomMod.HTTPD.TFM_HTTPD_Manager;
|
||||||
import me.StevenLawson.TotalFreedomMod.Listener.*;
|
import me.StevenLawson.TotalFreedomMod.Listener.*;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
@ -33,7 +30,7 @@ import org.mcstats.Metrics;
|
|||||||
|
|
||||||
public class TotalFreedomMod extends JavaPlugin
|
public class TotalFreedomMod extends JavaPlugin
|
||||||
{
|
{
|
||||||
public static final long HEARTBEAT_RATE = 5L; //Seconds
|
public static final long HEARTBEAT_RATE = 5L; // Seconds
|
||||||
public static final long SERVICE_CHECKER_RATE = 120L;
|
public static final long SERVICE_CHECKER_RATE = 120L;
|
||||||
//
|
//
|
||||||
public static final String SUPERADMIN_FILE = "superadmin.yml";
|
public static final String SUPERADMIN_FILE = "superadmin.yml";
|
||||||
@ -46,6 +43,7 @@ public class TotalFreedomMod extends JavaPlugin
|
|||||||
public static final String YOU_ARE_NOT_OP = ChatColor.YELLOW + "You are no longer op!";
|
public static final String YOU_ARE_NOT_OP = ChatColor.YELLOW + "You are no longer op!";
|
||||||
public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake.";
|
public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake.";
|
||||||
public static final String NOT_FROM_CONSOLE = "This command may not be used from the console.";
|
public static final String NOT_FROM_CONSOLE = "This command may not be used from the console.";
|
||||||
|
public static final String PLAYER_NOT_FOUND = ChatColor.GRAY + "Player not found!";
|
||||||
//
|
//
|
||||||
public static String buildNumber = "1";
|
public static String buildNumber = "1";
|
||||||
public static String buildDate = TotalFreedomMod.buildDate = TFM_Util.dateToString(new Date());
|
public static String buildDate = TotalFreedomMod.buildDate = TFM_Util.dateToString(new Date());
|
||||||
@ -79,30 +77,24 @@ public class TotalFreedomMod extends JavaPlugin
|
|||||||
@Override
|
@Override
|
||||||
public void onEnable()
|
public void onEnable()
|
||||||
{
|
{
|
||||||
TFM_Log.info("Starting " + pluginName + " v" + TotalFreedomMod.pluginVersion + "." + TotalFreedomMod.buildNumber);
|
TFM_Log.info("Made by Madgeek1450 and DarthSalamon");
|
||||||
TFM_Log.info("Made by Madgeek1450 and DarthSalamon, Compiled " + buildDate + " by " + buildCreator);
|
TFM_Log.info("Compiled " + buildDate + " by " + buildCreator);
|
||||||
|
|
||||||
final File[] coreDumps = new File(".").listFiles(new FileFilter()
|
TFM_Util.deleteCoreDumps();
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean accept(File file)
|
|
||||||
{
|
|
||||||
return file.getName().startsWith("java.core");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
for (File dump : coreDumps)
|
if (!TFM_ServerInterface.COMPILE_NMS_VERSION.equals(TFM_Util.getNmsVersion()))
|
||||||
{
|
{
|
||||||
TFM_Log.info("Removing core dump file: " + dump.getName());
|
TFM_Log.warning(pluginName + " is compiled for " + TFM_ServerInterface.COMPILE_NMS_VERSION + " but the server is running "
|
||||||
dump.delete();
|
+ "version " + TFM_Util.getNmsVersion() + "!");
|
||||||
|
TFM_Log.warning("This might result in unexpected behaviour!");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Admin list
|
// Admin list
|
||||||
TFM_AdminList.createBackup();
|
TFM_Util.createBackups(SUPERADMIN_FILE);
|
||||||
TFM_AdminList.load();
|
TFM_AdminList.load();
|
||||||
|
|
||||||
// Permban list
|
// Permban list
|
||||||
TFM_PermbanList.createBackup();
|
TFM_Util.createBackups(PERMBAN_FILE);
|
||||||
TFM_PermbanList.load();
|
TFM_PermbanList.load();
|
||||||
|
|
||||||
// Playerlist and bans
|
// Playerlist and bans
|
||||||
@ -180,7 +172,7 @@ public class TotalFreedomMod extends JavaPlugin
|
|||||||
TFM_HTTPD_Manager.getInstance().start();
|
TFM_HTTPD_Manager.getInstance().start();
|
||||||
TFM_FrontDoor.getInstance().start();
|
TFM_FrontDoor.getInstance().start();
|
||||||
|
|
||||||
TFM_Log.info("Version " + pluginVersion + " enabled");
|
TFM_Log.info("Version " + pluginVersion + " for " + TFM_ServerInterface.COMPILE_NMS_VERSION + " enabled");
|
||||||
|
|
||||||
// Delayed Start:
|
// Delayed Start:
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
@ -189,7 +181,7 @@ public class TotalFreedomMod extends JavaPlugin
|
|||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
TFM_CommandLoader.getInstance().scan();
|
TFM_CommandLoader.getInstance().scan();
|
||||||
TFM_CommandBlocker.getInstance().parseBlockingRules();
|
TFM_CommandBlocker.getInstance().load();
|
||||||
}
|
}
|
||||||
}.runTaskLater(plugin, 20L);
|
}.runTaskLater(plugin, 20L);
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ public final class TFM_AdminWorld extends TFM_CustomWorld
|
|||||||
{
|
{
|
||||||
private static final long CACHE_CLEAR_FREQUENCY = 30L * 1000L; //30 seconds, milliseconds
|
private static final long CACHE_CLEAR_FREQUENCY = 30L * 1000L; //30 seconds, milliseconds
|
||||||
private static final long TP_COOLDOWN_TIME = 500L; //0.5 seconds, milliseconds
|
private static final long TP_COOLDOWN_TIME = 500L; //0.5 seconds, milliseconds
|
||||||
private static final String GENERATION_PARAMETERS = TFM_ConfigEntry.FLATLANDS_GENERATION_PARAMS.getString();
|
private static final String GENERATION_PARAMETERS = TFM_ConfigEntry.FLATLANDS_GENERATE_PARAMS.getString();
|
||||||
private static final String WORLD_NAME = "adminworld";
|
private static final String WORLD_NAME = "adminworld";
|
||||||
//
|
//
|
||||||
private final Map<Player, Long> teleportCooldown = new HashMap<Player, Long>();
|
private final Map<Player, Long> teleportCooldown = new HashMap<Player, Long>();
|
||||||
|
@ -18,7 +18,7 @@ import org.bukkit.block.BlockFace;
|
|||||||
|
|
||||||
public class TFM_Flatlands extends TFM_CustomWorld
|
public class TFM_Flatlands extends TFM_CustomWorld
|
||||||
{
|
{
|
||||||
private static final String GENERATION_PARAMETERS = TFM_ConfigEntry.FLATLANDS_GENERATION_PARAMS.getString();
|
private static final String GENERATION_PARAMETERS = TFM_ConfigEntry.FLATLANDS_GENERATE_PARAMS.getString();
|
||||||
private static final String WORLD_NAME = "flatlands";
|
private static final String WORLD_NAME = "flatlands";
|
||||||
|
|
||||||
private TFM_Flatlands()
|
private TFM_Flatlands()
|
||||||
@ -28,7 +28,7 @@ public class TFM_Flatlands extends TFM_CustomWorld
|
|||||||
@Override
|
@Override
|
||||||
protected World generateWorld()
|
protected World generateWorld()
|
||||||
{
|
{
|
||||||
if (!TFM_ConfigEntry.GENERATE_FLATLANDS.getBoolean())
|
if (!TFM_ConfigEntry.FLATLANDS_GENERATE.getBoolean())
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
name: TotalFreedomMod
|
name: TotalFreedomMod
|
||||||
main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod
|
main: me.StevenLawson.TotalFreedomMod.TotalFreedomMod
|
||||||
version: 4.0
|
version: 4.2
|
||||||
description: Plugin for the Total Freedom server.
|
description: Plugin for the Total Freedom server.
|
||||||
softdepend: [BukkitTelnet, DisguiseCraft, WorldEdit, Essentials]
|
softdepend: [BukkitTelnet, DisguiseCraft, WorldEdit, Essentials]
|
||||||
authors: [Madgeek1450, DarthSalamon]
|
authors: [Madgeek1450, DarthSalamon]
|
||||||
|
Reference in New Issue
Block a user