mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2024-11-27 01:05:38 +00:00
Bug fixes (#92)
* Bug fixes - Now checks if nothing was ejected - Fix NPE in saconfig - Module_permbans now checks if you are an admin * Discord is better
This commit is contained in:
parent
c0b43f26ea
commit
113ab62f0b
@ -27,6 +27,12 @@ public class Command_eject extends FreedomCommand
|
|||||||
names.add(entity.getName());
|
names.add(entity.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (names.isEmpty())
|
||||||
|
{
|
||||||
|
msg("Nothing was ejected.", ChatColor.GREEN);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
msg("Ejecting " + StringUtils.join(names, ", ") + ".", ChatColor.GREEN);
|
msg("Ejecting " + StringUtils.join(names, ", ") + ".", ChatColor.GREEN);
|
||||||
playerSender.eject();
|
playerSender.eject();
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
case "list":
|
case "list":
|
||||||
{
|
{
|
||||||
msg("Admins: " + StringUtils.join(plugin.al.getAdminNames(), ", "), ChatColor.GOLD);
|
msg("Admins: " + StringUtils.join(plugin.al.getAdminNames(), ", "), ChatColor.GOLD);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,6 +153,13 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
|
|
||||||
// Player already an admin?
|
// Player already an admin?
|
||||||
final Player player = getPlayer(args[1]);
|
final Player player = getPlayer(args[1]);
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
msg(FreedomCommand.PLAYER_NOT_FOUND);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (player != null && plugin.al.isAdmin(player))
|
if (player != null && plugin.al.isAdmin(player))
|
||||||
{
|
{
|
||||||
msg("That player is already admin.");
|
msg("That player is already admin.");
|
||||||
@ -176,7 +182,7 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
{
|
{
|
||||||
if (plugin.mbl.isMasterBuilderImpostor(player))
|
if (plugin.mbl.isMasterBuilderImpostor(player))
|
||||||
{
|
{
|
||||||
msg("This player was labeled as a Master Builder imposter and is not an admin, therefore they can not be added to the admin list.", ChatColor.RED);
|
msg("This player was labeled as a Master Builder impostor and is not an admin, therefore they can not be added to the admin list.", ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (player == null)
|
if (player == null)
|
||||||
@ -296,5 +302,4 @@ public class Command_saconfig extends FreedomCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.totalfreedom.totalfreedommod.command;
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -17,6 +18,12 @@ public class Command_wipeflatlands extends FreedomCommand
|
|||||||
{
|
{
|
||||||
plugin.sf.setSavedFlag("do_wipe_flatlands", true);
|
plugin.sf.setSavedFlag("do_wipe_flatlands", true);
|
||||||
|
|
||||||
|
if (!ConfigEntry.FLATLANDS_GENERATE.getBoolean())
|
||||||
|
{
|
||||||
|
msg("Flatlands generation is disabled, therefore it cannot be wiped.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
FUtil.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY);
|
FUtil.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY);
|
||||||
|
|
||||||
if (plugin.wgb.isPluginEnabled())
|
if (plugin.wgb.isPluginEnabled())
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
package me.totalfreedom.totalfreedommod.httpd.module;
|
package me.totalfreedom.totalfreedommod.httpd.module;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||||
|
import me.totalfreedom.totalfreedommod.admin.Admin;
|
||||||
import me.totalfreedom.totalfreedommod.banning.PermbanList;
|
import me.totalfreedom.totalfreedommod.banning.PermbanList;
|
||||||
import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon;
|
import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon;
|
||||||
import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD;
|
import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
public class Module_permbans extends HTTPDModule
|
public class Module_permbans extends HTTPDModule
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -18,6 +20,12 @@ public class Module_permbans extends HTTPDModule
|
|||||||
public NanoHTTPD.Response getResponse()
|
public NanoHTTPD.Response getResponse()
|
||||||
{
|
{
|
||||||
File permbanFile = new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME);
|
File permbanFile = new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME);
|
||||||
|
final String remoteAddress = socket.getInetAddress().getHostAddress();
|
||||||
|
if (!isAuthorized(remoteAddress))
|
||||||
|
{
|
||||||
|
return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT,
|
||||||
|
"You may not view the permban list. Your IP, " + remoteAddress + ", is not registered to an admin on the server.");
|
||||||
|
}
|
||||||
if (permbanFile.exists())
|
if (permbanFile.exists())
|
||||||
{
|
{
|
||||||
return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME));
|
return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME));
|
||||||
@ -28,4 +36,10 @@ public class Module_permbans extends HTTPDModule
|
|||||||
"Error 404: Not Found - The requested resource was not found on this server.");
|
"Error 404: Not Found - The requested resource was not found on this server.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isAuthorized(String remoteAddress)
|
||||||
|
{
|
||||||
|
Admin entry = plugin.al.getEntryByIp(remoteAddress);
|
||||||
|
return entry != null && entry.isActive();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,24 +17,23 @@
|
|||||||
*/
|
*/
|
||||||
package me.totalfreedom.totalfreedommod.world;
|
package me.totalfreedom.totalfreedommod.world;
|
||||||
|
|
||||||
import static java.lang.System.arraycopy;
|
import me.totalfreedom.totalfreedommod.util.FLog;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.generator.BlockPopulator;
|
import org.bukkit.generator.BlockPopulator;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import static java.lang.System.arraycopy;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class CleanroomChunkGenerator extends ChunkGenerator
|
public class CleanroomChunkGenerator extends ChunkGenerator
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final Logger log = Bukkit.getLogger();
|
|
||||||
private short[] layer;
|
private short[] layer;
|
||||||
private byte[] layerDataValues;
|
private byte[] layerDataValues;
|
||||||
|
|
||||||
@ -77,7 +76,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator
|
|||||||
int height = Integer.parseInt(tokens[i]);
|
int height = Integer.parseInt(tokens[i]);
|
||||||
if (height <= 0)
|
if (height <= 0)
|
||||||
{
|
{
|
||||||
log.warning("[CleanroomGenerator] Invalid height '" + tokens[i] + "'. Using 64 instead.");
|
FLog.warning("[CleanroomGenerator] Invalid height '" + tokens[i] + "'. Using 64 instead.");
|
||||||
height = 64;
|
height = 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,7 +91,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
log.warning("[CleanroomGenerator] Invalid Data Value '" + materialTokens[1] + "'. Defaulting to 0.");
|
FLog.warning("[CleanroomGenerator] Invalid Data Value '" + materialTokens[1] + "'. Defaulting to 0.");
|
||||||
dataValue = 0;
|
dataValue = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -111,14 +110,14 @@ public class CleanroomChunkGenerator extends ChunkGenerator
|
|||||||
|
|
||||||
if (mat == null)
|
if (mat == null)
|
||||||
{
|
{
|
||||||
log.warning("[CleanroomGenerator] Invalid Block ID '" + materialTokens[0] + "'. Defaulting to stone.");
|
FLog.warning("[CleanroomGenerator] Invalid Block ID '" + materialTokens[0] + "'. Defaulting to stone.");
|
||||||
mat = Material.STONE;
|
mat = Material.STONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mat.isBlock())
|
if (!mat.isBlock())
|
||||||
{
|
{
|
||||||
log.warning("[CleanroomGenerator] Error, '" + materialTokens[0] + "' is not a block. Defaulting to stone.");
|
FLog.warning("[CleanroomGenerator] Error, '" + materialTokens[0] + "' is not a block. Defaulting to stone.");
|
||||||
mat = Material.STONE;
|
mat = Material.STONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,7 +163,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
log.severe("[CleanroomGenerator] Error parsing CleanroomGenerator ID '" + id + "'. using defaults '64,1': " + e.toString());
|
FLog.severe("[CleanroomGenerator] Error parsing CleanroomGenerator ID '" + id + "'. using defaults '64,1': " + e.toString());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
layerDataValues = null;
|
layerDataValues = null;
|
||||||
layer = new short[65];
|
layer = new short[65];
|
||||||
@ -186,7 +185,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator
|
|||||||
int maxHeight = world.getMaxHeight();
|
int maxHeight = world.getMaxHeight();
|
||||||
if (layer.length > maxHeight)
|
if (layer.length > maxHeight)
|
||||||
{
|
{
|
||||||
log.warning("[CleanroomGenerator] Error, chunk height " + layer.length + " is greater than the world max height (" + maxHeight + "). Trimming to world max height.");
|
FLog.warning("[CleanroomGenerator] Error, chunk height " + layer.length + " is greater than the world max height (" + maxHeight + "). Trimming to world max height.");
|
||||||
short[] newLayer = new short[maxHeight];
|
short[] newLayer = new short[maxHeight];
|
||||||
arraycopy(layer, 0, newLayer, 0, maxHeight);
|
arraycopy(layer, 0, newLayer, 0, maxHeight);
|
||||||
layer = newLayer;
|
layer = newLayer;
|
||||||
|
@ -266,14 +266,15 @@ announcer:
|
|||||||
- 'Somebody breaking the rules? Report it! /report <user> <reason>'
|
- 'Somebody breaking the rules? Report it! /report <user> <reason>'
|
||||||
- 'Griefing is not allowed!'
|
- 'Griefing is not allowed!'
|
||||||
- 'Hacked clients are allowed!'
|
- 'Hacked clients are allowed!'
|
||||||
- 'Interested in becoming admin? Do "/ai" for more information!'
|
- 'Interested in becoming admin? Type "/ai" for more information!'
|
||||||
- 'You may view all online administrators via "/list -a"'
|
- 'You may view all online administrators via "/list -a"'
|
||||||
- 'Save your buildings via WorldEdit! http://totalfreedom.me for more information!'
|
- 'Save your buildings via WorldEdit! http://totalfreedom.me for more information!'
|
||||||
- 'Famous players, such as Notch, are always fake! We are an offline/cracked server!'
|
- 'Famous players, such as Notch, are always fake! We are an offline/cracked server!'
|
||||||
- 'You may contact TotalFreedom support on Twitter! https://tiny.re/tfsupport'
|
- 'You may contact TotalFreedom support on Twitter! https://tiny.re/tfsupport'
|
||||||
- 'You may download TotalFreedomMod here: https://tiny.re/tfm+'
|
- 'You may download TotalFreedomMod here: https://tiny.re/tfm+'
|
||||||
- 'MarkByron is the owner of TotalFreedom.'
|
- 'TheMinecraft is the owner of TotalFreedom.'
|
||||||
- 'Server lagging? Check the lag via "/tps"'
|
- 'MarkByron is the founder of TotalFreedom.'
|
||||||
|
- 'Server lagging? Check the lag via "/tps"'
|
||||||
- 'You are allowed to record and stream videos on TotalFreedom.'
|
- 'You are allowed to record and stream videos on TotalFreedom.'
|
||||||
- 'Player vs player while in creative or god mode is forbidden!'
|
- 'Player vs player while in creative or god mode is forbidden!'
|
||||||
- 'Spawn killing is forbidden!'
|
- 'Spawn killing is forbidden!'
|
||||||
@ -281,7 +282,7 @@ announcer:
|
|||||||
- 'Serial griefing and trolling will result in a permanent ban!'
|
- 'Serial griefing and trolling will result in a permanent ban!'
|
||||||
- 'TotalFreedom does not accept any form of donations!'
|
- 'TotalFreedom does not accept any form of donations!'
|
||||||
- 'Racism, nazism, and sexism are strictly forbidden!'
|
- 'Racism, nazism, and sexism are strictly forbidden!'
|
||||||
- 'Join our Mumble server! IP: 64.34.202.140:2862'
|
- 'Join our Discord server! Link: https://discordapp.com/invite/XXjmAmV/'
|
||||||
|
|
||||||
# Famous players - cannot be banned by username
|
# Famous players - cannot be banned by username
|
||||||
famous_players:
|
famous_players:
|
||||||
|
Loading…
Reference in New Issue
Block a user