Compare commits

..

8 Commits

Author SHA1 Message Date
13e04475f0 FS-326 & quick formatting fix
The formatting of DiscordToMinecraft was adjusted in addition to make it look nicer
2021-07-29 17:06:31 -06:00
adc7b4a754 FS-333
According to Intellij, `bukkitTelnet instanceof BukkitTelnet` can replace the nullcheck. If this is not the case, then I apologize profoundly for my IDE's mistakes (again)
2021-07-29 05:58:14 -06:00
40498c03f4 FS-334
If Codacy complains about Line 365 being potentially combinable with Line 363, please kindly tell it to fuck off
2021-07-29 05:54:00 -06:00
cc9c07d498 FS-335 2021-07-29 05:49:37 -06:00
5fa3f9f26a FS-337
I hate Codacy
2021-07-29 05:48:11 -06:00
a79b2cbe0f FS-338 2021-07-29 05:45:21 -06:00
6c8d1934e7 FS-313 2021-07-29 05:38:30 -06:00
a1de7ac9ff FS-314 2021-07-29 05:35:28 -06:00
41 changed files with 258 additions and 621 deletions

View File

@ -1,19 +0,0 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# Maintain Maven Updates
- package-ecosystem: "maven" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

View File

@ -8,20 +8,10 @@ jobs:
runs-on: ubuntu-latest
steps:
# Java 11 Builds
- uses: actions/checkout@v1
- name: Set up JDK 11
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 11
- name: Build with Maven
run: mvn -B package --file pom.xml
# Java 16 Builds
- uses: actions/checkout@v1
- name: Set up JDK 16
uses: actions/setup-java@v1
with:
java-version: 16
- name: Build with Maven
run: mvn -B package --file pom.xml

13
.travis.yml Normal file
View File

@ -0,0 +1,13 @@
language: java
jdk:
- oraclejdk11
- openjdk11
notifications:
email: false
addons:
apt:
packages:
- sshpass
script: mvn clean install
after_success:
- ./travis-upload.sh

17
pom.xml
View File

@ -105,6 +105,11 @@
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
<repository>
<id>rayzr-repo</id>
<url>https://cdn.rawgit.com/Rayzr522/maven-repo/master/</url>
</repository>
<repository>
<id>ess-repo</id>
<url>https://ci.ender.zone/plugin/repository/everything/</url>
@ -163,9 +168,9 @@
</dependency>
<dependency>
<groupId>com.github.AtlasMediaGroup</groupId>
<groupId>com.github.TotalFreedomMC</groupId>
<artifactId>TF-LibsDisguises</artifactId>
<version>5a340341b0</version>
<version>48f01cf2fe</version>
<scope>provided</scope>
</dependency>
@ -211,6 +216,13 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>me.rayzr522</groupId>
<artifactId>jsonmessage</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.vexsoftware</groupId>
<artifactId>votifier</artifactId>
@ -442,6 +454,7 @@
<include>commons-codec:commons-codec</include>
<include>org.reflections:reflections</include>
<include>org.javassist:javassist</include>
<include>me.rayzr522:jsonmessage</include>
<include>io.papermc:paperlib</include>
<include>com.github.speedxx:Mojangson</include>
<include>org.bstats:bstats-bukkit</include>

View File

@ -85,10 +85,6 @@ public class AutoEject extends FreedomService
player.kickPlayer(kickMessage);
break;
}
default:
{
FLog.warning("Unrecognized EjectMethod " + method.name() + " found, defaulting to STRIKE_THREE");
}
case STRIKE_THREE:
{
plugin.bm.addBan(Ban.forPlayerFuzzy(player, Bukkit.getConsoleSender(), null, kickMessage));

View File

@ -25,6 +25,11 @@ public class CommandSpy extends FreedomService
{
if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy())
{
if (plugin.al.isAdmin(event.getPlayer()) && !plugin.al.isSeniorAdmin(player))
{
continue;
}
if (player != event.getPlayer())
{
FUtil.playerMsg(player, event.getPlayer().getName() + ": " + event.getMessage());

View File

@ -2,8 +2,6 @@ package me.totalfreedom.totalfreedommod;
import java.util.Arrays;
import java.util.List;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.Groups;
import org.bukkit.Bukkit;
import org.bukkit.World;
@ -35,10 +33,7 @@ public class EntityWiper extends FreedomService
@Override
public void run()
{
if (ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
{
wipeEntities(false);
}
wipeEntities(false);
}
}.runTaskTimer(plugin, 600L, 600L); // 30 second delay after startup + run every 30 seconds
}

View File

@ -4,6 +4,7 @@ import io.papermc.lib.PaperLib;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import me.rayzr522.jsonmessage.JSONMessage;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.player.PlayerData;

View File

@ -46,7 +46,7 @@ public class SavedFlags extends FreedomService
return flags;
}
public boolean getSavedFlag(String flag) throws Exception
public boolean getSavedFlag(String flag) throws IllegalStateException
{
Boolean flagValue = null;
@ -66,7 +66,7 @@ public class SavedFlags extends FreedomService
}
else
{
throw new Exception();
throw new IllegalStateException("Attempt to get non-existent flag " + flag);
}
}

View File

@ -43,7 +43,6 @@ public class IndefiniteBan implements IConfig
@Override
public void saveTo(ConfigurationSection cs)
{
// The indefinite ban list is only intended to be modified manually. It is not intended to save.
}
@Override

View File

@ -171,11 +171,6 @@ public class BlockBlocker extends FreedomService
}
break;
}
default:
{
// Do nothing
break;
}
}
if (Groups.BANNERS.contains(event.getBlockPlaced().getType()))

View File

@ -146,12 +146,9 @@ public class EventBlocker extends FreedomService
if (ConfigEntry.ENABLE_PET_PROTECT.getBoolean())
{
Entity entity = event.getEntity();
if (entity instanceof Tameable)
if (entity instanceof Tameable && ((Tameable) entity).isTamed())
{
if (((Tameable)entity).isTamed())
{
event.setCancelled(true);
}
event.setCancelled(true);
}
}
}

View File

@ -36,9 +36,10 @@ public class InteractBlocker extends FreedomService
break;
}
default:
case LEFT_CLICK_AIR:
case LEFT_CLICK_BLOCK:
{
// Do nothing
//
break;
}
}
@ -157,11 +158,6 @@ public class InteractBlocker extends FreedomService
event.setCancelled(true);
break;
}
default:
{
// Do nothing
break;
}
}
}
}

View File

@ -101,12 +101,9 @@ public class BukkitTelnetBridge extends FreedomService
try
{
final Plugin bukkitTelnet = server.getPluginManager().getPlugin("BukkitTelnet");
if (bukkitTelnet != null)
if (bukkitTelnet instanceof BukkitTelnet)
{
if (bukkitTelnet instanceof BukkitTelnet)
{
bukkitTelnetPlugin = (BukkitTelnet)bukkitTelnet;
}
bukkitTelnetPlugin = (BukkitTelnet) bukkitTelnet;
}
}
catch (Exception ex)

View File

@ -362,93 +362,90 @@ public class CoreProtectBridge extends FreedomService
}
else if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
{
if (block != null)
if (block != null && data.hasInspection())
{
if (data.hasInspection())
{
BlockState blockState = block.getRelative(event.getBlockFace()).getState();
Block placedBlock = blockState.getBlock();
event.setCancelled(true);
List<String[]> lookup = coreProtect.blockLookup(placedBlock, -1);
BlockState blockState = block.getRelative(event.getBlockFace()).getState();
Block placedBlock = blockState.getBlock();
event.setCancelled(true);
List<String[]> lookup = coreProtect.blockLookup(placedBlock, -1);
if (lookup.isEmpty())
{
lookup = coreProtect.blockLookup(block, -1);
}
int cooldownTime = 3;
if (cooldown.containsKey(player.getName()))
{
long secondsLeft = getSecondsLeft(cooldown.get(player.getName()), cooldownTime);
if (secondsLeft > 0L)
{
event.setCancelled(true);
player.sendMessage(ChatColor.RED + String.valueOf(secondsLeft) + " seconds left before next query.");
return;
}
}
if (!plugin.al.isAdmin(player))
{
cooldown.put(player.getName(), System.currentTimeMillis());
}
if (lookup != null)
{
if (lookup.isEmpty())
{
lookup = coreProtect.blockLookup(block, -1);
player.sendMessage(net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector " + ChatColor.WHITE + "- " + "No block data found for this location");
return;
}
int cooldownTime = 3;
HISTORY_MAP.remove(event.getPlayer());
HISTORY_MAP.put(event.getPlayer(), new FUtil.PaginationList<>(10));
FUtil.PaginationList<String> paged = HISTORY_MAP.get(event.getPlayer());
if (cooldown.containsKey(player.getName()))
player.sendMessage("---- " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector" + ChatColor.WHITE + " ---- " +
ChatColor.GRAY + "(x" + block.getX() + "/" + "y" + block.getY() + "/" + "z" + block.getZ() + ")");
for (String[] value : lookup)
{
long secondsLeft = getSecondsLeft(cooldown.get(player.getName()), cooldownTime);
if (secondsLeft > 0L)
CoreProtectAPI.ParseResult result = coreProtect.parseResult(value);
BlockData bl = result.getBlockData();
String s;
String st = "";
if (result.getActionString().equals("Placement"))
{
event.setCancelled(true);
player.sendMessage(ChatColor.RED + String.valueOf(secondsLeft) + " seconds left before next query.");
return;
s = " placed ";
}
else if (result.getActionString().equals("Removal"))
{
s = " broke ";
}
else
{
s = " interacted with ";
}
if (result.isRolledBack())
{
st += "§m";
}
int time = (int)(System.currentTimeMillis() / 1000L);
paged.add(ChatColor.GRAY + getTimeAgo(result.getTime(), time) + ChatColor.WHITE + " - " + net.md_5.bungee.api.ChatColor.of("#30ade4") +
st + result.getPlayer() + ChatColor.WHITE + st + s + net.md_5.bungee.api.ChatColor.of("#30ade4") + st + bl.getMaterial().toString().toLowerCase());
}
if (!plugin.al.isAdmin(player))
List<String> page = paged.getPage(1);
for (String entries : page)
{
cooldown.put(player.getName(), System.currentTimeMillis());
player.sendMessage(entries);
}
if (lookup != null)
{
if (lookup.isEmpty())
{
player.sendMessage(net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector " + ChatColor.WHITE + "- " + "No block data found for this location");
return;
}
HISTORY_MAP.remove(event.getPlayer());
HISTORY_MAP.put(event.getPlayer(), new FUtil.PaginationList<>(10));
FUtil.PaginationList<String> paged = HISTORY_MAP.get(event.getPlayer());
player.sendMessage("---- " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector" + ChatColor.WHITE + " ---- " +
ChatColor.GRAY + "(x" + block.getX() + "/" + "y" + block.getY() + "/" + "z" + block.getZ() + ")");
for (String[] value : lookup)
{
CoreProtectAPI.ParseResult result = coreProtect.parseResult(value);
BlockData bl = result.getBlockData();
String s;
String st = "";
if (result.getActionString().equals("Placement"))
{
s = " placed ";
}
else if (result.getActionString().equals("Removal"))
{
s = " broke ";
}
else
{
s = " interacted with ";
}
if (result.isRolledBack())
{
st += "§m";
}
int time = (int)(System.currentTimeMillis() / 1000L);
paged.add(ChatColor.GRAY + getTimeAgo(result.getTime(), time) + ChatColor.WHITE + " - " + net.md_5.bungee.api.ChatColor.of("#30ade4") +
st + result.getPlayer() + ChatColor.WHITE + st + s + net.md_5.bungee.api.ChatColor.of("#30ade4") + st + bl.getMaterial().toString().toLowerCase());
}
List<String> page = paged.getPage(1);
for (String entries : page)
{
player.sendMessage(entries);
}
player.sendMessage("Page 1/" + paged.getPageCount() + " | To index through the pages, type " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "/ins history <page>");
}
player.sendMessage("Page 1/" + paged.getPageCount() + " | To index through the pages, type " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "/ins history <page>");
}
}
}

View File

@ -30,13 +30,10 @@ public class TFGuildsBridge extends FreedomService
try
{
final Plugin tfGuilds = server.getPluginManager().getPlugin("TFGuilds");
if (tfGuilds != null && tfGuilds.isEnabled())
if (tfGuilds != null && tfGuilds.isEnabled() && tfGuilds instanceof TFGuilds)
{
if (tfGuilds instanceof TFGuilds)
{
enabled = true;
return true;
}
enabled = true;
return true;
}
}
catch (NoClassDefFoundError ex)

View File

@ -1,8 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.ChatColor;
@ -77,11 +75,9 @@ public class Command_blockcmd extends FreedomCommand
FPlayer playerdata = plugin.pl.getPlayer(player);
if (!playerdata.allCommandsBlocked())
{
FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
playerdata.setCommandsBlocked(true);
FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
msg("Blocked commands for " + player.getName() + ".");
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.BLOCKCMD, null));
}
else
{

View File

@ -1,8 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.ArrayUtils;
@ -130,8 +128,6 @@ public class Command_blockedit extends FreedomCommand
msg(player2, "Your block modification abilities have been blocked.", ChatColor.RED);
msg("Blocked all block modification abilities for " + player2.getName());
plugin.pul.logPunishment(new Punishment(player2.getName(), FUtil.getIp(player2), sender.getName(), PunishmentType.BLOCKEDIT, null));
}
return true;
}

View File

@ -1,8 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang3.ArrayUtils;
@ -127,7 +125,6 @@ public class Command_blockpvp extends FreedomCommand
{
Command_smite.smite(sender, p, reason);
}
plugin.pul.logPunishment(new Punishment(p.getName(), FUtil.getIp(p), sender.getName(), PunishmentType.BLOCKPVP, null));
msg(p, "Your PVP has been disabled.", ChatColor.RED);
msg("Disabled PVP for " + p.getName());

View File

@ -5,8 +5,6 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.ChatColor;
@ -67,11 +65,6 @@ public class Command_cage extends FreedomCommand
outerMaterial = Material.PLAYER_HEAD;
if (args.length >= 3)
{
if (!args[2].matches("([A-z]*)") || args[2].length() < 3 || args[2].length() > 16)
{
msg("Invalid name!", ChatColor.RED);
return true;
}
skullName = args[2];
}
else
@ -82,43 +75,17 @@ public class Command_cage extends FreedomCommand
}
case "block":
{
if (args.length >= 3)
if (Material.matchMaterial(args[2]) != null)
{
// Checks the validity of the Material and checks if it's a block.
// This is incredibly inefficient, as Spigot's isBlock() method in Material is an actual
// nightmare of switch-cases.
if (Material.matchMaterial(args[2]) != null && Material.matchMaterial(args[2]).isBlock())
{
outerMaterial = Material.matchMaterial(args[2]);
break;
}
else
{
msg("Invalid block!", ChatColor.RED);
return true;
}
outerMaterial = Material.matchMaterial(args[2]);
break;
}
else
{
return false;
}
}
default:
{
return false;
msg("Invalid block!", ChatColor.RED);
break;
}
}
}
if (outerMaterial == Material.PLAYER_HEAD)
{
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
}
else
{
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
}
Location location = player.getLocation().clone().add(0.0, 1.0, 0.0);
if (skullName != null)
@ -129,9 +96,17 @@ public class Command_cage extends FreedomCommand
{
fPlayer.getCageData().cage(location, outerMaterial, innerMaterial);
}
player.setGameMode(GameMode.SURVIVAL);
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.CAGE, null));
if (outerMaterial == Material.PLAYER_HEAD)
{
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
}
else
{
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
}
return true;
}

View File

@ -8,7 +8,7 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Clears the chat.", usage = "/<command>", aliases = "cc")
public class Command_cleanchat extends FreedomCommand
public class Command_clearchat extends FreedomCommand
{
@Override
@ -27,4 +27,4 @@ public class Command_cleanchat extends FreedomCommand
FUtil.adminAction(sender.getName(), "Cleared chat", true);
return true;
}
}
}

View File

@ -32,16 +32,14 @@ public class Command_deop extends FreedomCommand
final List<String> matchedPlayerNames = new ArrayList<>();
for (Player player : server.getOnlinePlayers())
{
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
if ((player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
|| player.getName().contains(targetName) || player.getDisplayName().contains(targetName))
&& player.isOp() && !plugin.al.isVanished(player.getName()))
{
if (player.isOp() && !plugin.al.isVanished(player.getName()))
{
matchedPlayerNames.add(player.getName());
player.setOp(false);
msg(player, YOU_ARE_NOT_OP);
plugin.rm.updateDisplay(player);
}
matchedPlayerNames.add(player.getName());
player.setOp(false);
msg(player, YOU_ARE_NOT_OP);
plugin.rm.updateDisplay(player);
}
}

View File

@ -251,21 +251,18 @@ public class Command_enchant extends FreedomCommand
return getEnchantments(item);
}
}
else if (args.length == 3)
else if (args.length == 3 && args[0].equalsIgnoreCase("add"))
{
if (args[0].equals("add"))
Enchantment enchantment = Enchantment.getByName(args[1].toUpperCase());
if (enchantment != null)
{
Enchantment enchantment = Enchantment.getByName(args[1].toUpperCase());
if (enchantment != null)
if (!unsafe)
{
if (!unsafe)
{
return stringNumberRange(1, enchantment.getMaxLevel());
}
else
{
return Collections.singletonList("[level]");
}
return stringNumberRange(1, enchantment.getMaxLevel());
}
else
{
return Collections.singletonList("[level]");
}
}
}

View File

@ -64,12 +64,6 @@ public class Command_entitywipe extends FreedomCommand
return true;
}
if (type == EntityType.PLAYER)
{
msg("Player entities cannot be purged.", ChatColor.RED);
return true;
}
if (!getAllEntities().contains(type))
{
msg(FUtil.formatName(type.name()) + " is an entity, however: it is a mob.", ChatColor.RED);

View File

@ -23,12 +23,12 @@ public class Command_freeze extends FreedomCommand
if (!gFreeze)
{
FUtil.adminAction(sender.getName(), "Unfreezing all players", false);
FUtil.adminAction(sender.getName(), "Disabling global player freeze", false);
msg("Players are now free to move.");
return true;
}
FUtil.adminAction(sender.getName(), "Freezing all players", false);
FUtil.adminAction(sender.getName(), "Enabling global player freeze", false);
for (Player player : server.getOnlinePlayers())
{
if (!isAdmin(player))

View File

@ -35,8 +35,8 @@ public class Command_manageshop extends FreedomCommand
}
switch (args[1])
{
case "add":
{
try
{
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
@ -75,9 +75,7 @@ public class Command_manageshop extends FreedomCommand
msg("Invalid number: " + args[2], ChatColor.RED);
return true;
}
}
case "remove":
{
try
{
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
@ -124,9 +122,7 @@ public class Command_manageshop extends FreedomCommand
msg("Invalid number: " + args[2], ChatColor.RED);
return true;
}
}
case "set":
{
try
{
int amount = Math.max(0, Math.min(1000000, Integer.parseInt(args[2])));
@ -151,11 +147,6 @@ public class Command_manageshop extends FreedomCommand
msg("Invalid number: " + args[2], ChatColor.RED);
return true;
}
}
default:
{
return false;
}
}
}
else if (args[0].equals("items"))

View File

@ -116,12 +116,8 @@ public class Command_notes extends FreedomCommand
msg("Cleared " + count + " notes.", ChatColor.GREEN);
return true;
}
default:
{
return false;
}
}
return false;
}
@Override

View File

@ -1,8 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.ChatColor;
@ -58,13 +56,11 @@ public class Command_orbit extends FreedomCommand
}
}
FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
player.setGameMode(GameMode.SURVIVAL);
playerdata.startOrbiting(strength);
player.setVelocity(new Vector(0, strength, 0));
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.ORBIT, null));
player.setVelocity(new Vector(0, strength, 0));
FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
return true;
}
}

View File

@ -29,7 +29,6 @@ public class Command_potion extends FreedomCommand
switch (args.length)
{
case 1:
{
if (args[0].equalsIgnoreCase("list"))
{
List<String> potionEffectTypeNames = new ArrayList<>();
@ -59,10 +58,8 @@ public class Command_potion extends FreedomCommand
}
}
}
}
case 2:
{
if (args[0].equalsIgnoreCase("clear"))
{
Player target = playerSender;
@ -98,11 +95,9 @@ public class Command_potion extends FreedomCommand
msg("Cleared all active potion effects " + (!target.equals(playerSender) ? "from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
}
break;
}
case 4:
case 5:
{
if (args[0].equalsIgnoreCase("add"))
{
Player target = playerSender;
@ -172,11 +167,8 @@ public class Command_potion extends FreedomCommand
+ (!target.equals(playerSender) ? " to player " + target.getName() + "." : " to yourself."), ChatColor.AQUA);
}
break;
}
default:
{
return false;
}
}
return true;
}
@ -187,17 +179,14 @@ public class Command_potion extends FreedomCommand
switch (args.length)
{
case 1:
{
List<String> arguments = new ArrayList<>(Arrays.asList("list", "clear", "add"));
if (plugin.al.isAdmin(sender))
{
arguments.add("clearall");
}
return arguments;
}
case 2:
{
if (args[0].equals("clear"))
{
if (plugin.al.isAdmin(sender))
@ -210,28 +199,22 @@ public class Command_potion extends FreedomCommand
return getAllPotionTypes();
}
break;
}
case 3:
{
if (args[0].equals("add"))
{
return Collections.singletonList("<duration>");
}
break;
}
case 4:
{
if (args[0].equals("add"))
{
return Collections.singletonList("<amplifier>");
}
break;
}
case 5:
{
if (plugin.al.isAdmin(sender))
{
if (args[0].equals("add"))
@ -240,12 +223,6 @@ public class Command_potion extends FreedomCommand
}
}
break;
}
default:
{
break;
}
}
return Collections.emptyList();

View File

@ -1,97 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.chat.TranslatableComponent;
import net.md_5.bungee.api.chat.hover.content.Text;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandPermissions(level = Rank.NON_OP, source = SourceType.BOTH)
@CommandParameters(description = "Get the seed of the world you are currently in.", usage = "/seed [world]")
public class Command_seed extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
World world;
if (args.length > 0)
{
world = server.getWorld(args[0]);
if (world == null)
{
msg("That world could not be found", ChatColor.RED);
return true;
}
}
else
{
// If the sender is a Player, use that world. Otherwise, use the overworld as a fallback.
if (!senderIsConsole)
{
world = playerSender.getWorld();
}
else
{
world = server.getWorlds().get(0);
}
}
// If the sender is not a Player, use the usual msg method to
if (senderIsConsole)
{
msg("Seed: [" + ChatColor.GREEN + world.getSeed() + ChatColor.WHITE + "]", ChatColor.WHITE);
}
else
{
// Gets the seed for later uses
String seed = String.valueOf(world.getSeed());
// This is a really stupid hack to get things to play nicely, but it works so I don't give a damn
BaseComponent[] components = {new TranslatableComponent("chat.copy.click")};
TextComponent seedAsComponent = new TextComponent(seed);
// Style the message like in vanilla Minecraft.
seedAsComponent.setColor(ChatColor.GREEN.asBungee());
seedAsComponent.setClickEvent(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, seed));
seedAsComponent.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(components)));
// Enclose the seed with brackets
TextComponent seedString = new TextComponent("[");
seedString.addExtra(seedAsComponent);
seedString.addExtra("]");
// Send the message to the player.
TranslatableComponent response = new TranslatableComponent("commands.seed.success", seedString);
playerSender.spigot().sendMessage(response);
}
return true;
}
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (args.length == 1)
{
// Returns a list of worlds on the server and returns it
List<String> worlds = new ArrayList<>();
for (World world : server.getWorlds())
{
worlds.add(world.getName());
}
return worlds;
}
return null;
}
}

View File

@ -105,11 +105,6 @@ public class Command_tag extends FreedomCommand
}
return true;
}
default:
{
return false;
}
}
}
else if (args.length >= 2)
@ -284,11 +279,6 @@ public class Command_tag extends FreedomCommand
msg("Tag set to '" + outputTag + ChatColor.GRAY + "'." + (save ? " (Saved)" : "") + from + to);
return true;
}
default:
{
return false;
}
}
}
return false;

View File

@ -16,12 +16,6 @@ import org.bukkit.entity.Player;
@CommandParameters(description = "Toggles TotalFreedomMod settings", usage = "/<command> [option] [value] [value]")
public class Command_toggle extends FreedomCommand
{
private final List<String> toggles = Arrays.asList(
"waterplace", "fireplace", "lavaplace", "fluidspread", "lavadmg", "firespread", "frostwalk",
"firework", "prelog", "lockdown", "petprotect", "entitywipe", "nonuke [range] [count]",
"explosives [radius]", "unsafeenchs", "bells", "armorstands", "structureblocks", "jigsaws", "grindstones",
"jukeboxes", "spawners", "4chan", "beehives", "respawnanchors", "autotp", "autoclear", "minecarts", "mp44",
"landmines", "tossmob", "gravity");
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
@ -29,10 +23,38 @@ public class Command_toggle extends FreedomCommand
if (args.length == 0)
{
msg("Available toggles: ");
for (String toggle : toggles)
{
msg("- " + toggle);
}
msg("- waterplace");
msg("- fireplace");
msg("- lavaplace");
msg("- fluidspread");
msg("- lavadmg");
msg("- firespread");
msg("- frostwalk");
msg("- firework");
msg("- prelog");
msg("- lockdown");
msg("- petprotect");
msg("- entitywipe");
msg("- nonuke [range] [count]");
msg("- explosives [radius]");
msg("- unsafeenchs");
msg("- bells");
msg("- armorstands");
msg("- structureblocks");
msg("- jigsaws");
msg("- grindstones");
msg("- jukeboxes");
msg("- spawners");
msg("- 4chan");
msg("- beehives");
msg("- respawnanchors");
msg("- autotp");
msg("- autoclear");
msg("- minecarts");
msg("- landmines");
msg("- mp44");
msg("- tossmob");
msg("- gravity");
return false;
}
@ -282,16 +304,6 @@ public class Command_toggle extends FreedomCommand
toggle("Block gravity is", ConfigEntry.ALLOW_GRAVITY);
break;
}
default:
{
msg("Available toggles: ");
for (String toggle : toggles)
{
msg("- " + toggle);
}
return false;
}
}
return true;
}

View File

@ -1,9 +1,6 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
@ -56,28 +53,25 @@ public class Command_warn extends FreedomCommand
String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
player.sendTitle(ChatColor.RED + "You've been warned.", ChatColor.YELLOW + "Reason: " + warnReason, 20, 100, 60);
msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason);
plugin.pl.getPlayer(player).incrementWarnings(quiet);
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.WARN, warnReason));
msg(ChatColor.GREEN + "You have successfully warned " + player.getName());
if (quiet)
{
msg("You have successfully warned " + player.getName() + " quietly.");
msg("Warned " + player.getName() + " quietly");
return true;
}
else
{
String adminNotice = ChatColor.RED +
sender.getName() +
" - " +
"Warning: " +
player.getName() +
" - Reason: " +
ChatColor.YELLOW +
warnReason;
plugin.al.messageAllAdmins(adminNotice);
msg("You have successfully warned " + player.getName() + ".");
}
msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason);
String adminNotice = ChatColor.RED +
sender.getName() +
" - " +
"Warning: " +
player.getName() +
" - Reason: " +
ChatColor.YELLOW +
warnReason;
plugin.al.messageAllAdmins(adminNotice);
plugin.pl.getPlayer(player).incrementWarnings();
return true;
}
}

View File

@ -22,46 +22,47 @@ public class DiscordToMinecraftListener extends ListenerAdapter
public void onMessageReceived(MessageReceivedEvent event)
{
String chat_channel_id = ConfigEntry.DISCORD_CHAT_CHANNEL_ID.getString();
if (event.getMember() != null && !chat_channel_id.isEmpty() && event.getChannel().getId().equals(chat_channel_id))
if (event.getMember() != null && !chat_channel_id.isEmpty()
&& event.getChannel().getId().equals(chat_channel_id)
&& !event.getAuthor().getId().equals(Discord.bot.getSelfUser().getId()))
{
if (!event.getAuthor().getId().equals(Discord.bot.getSelfUser().getId()))
Member member = event.getMember();
String tag = getDisplay(member);
StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord"
+ ChatColor.DARK_GRAY + "]");
Message msg = event.getMessage();
if (tag != null)
{
Member member = event.getMember();
String tag = getDisplay(member);
StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord" + ChatColor.DARK_GRAY + "]");
Message msg = event.getMessage();
if (tag != null)
{
message.append(" ").append(tag);
}
message.append(" ").append(ChatColor.RED).append(ChatColor.stripColor(member.getEffectiveName())).append(ChatColor.DARK_GRAY).append(":").append(ChatColor.RESET);
ComponentBuilder builder = new ComponentBuilder(message.toString());
if (!msg.getContentDisplay().isEmpty())
{
builder.append(" ").append(ChatColor.stripColor(msg.getContentDisplay()));
message.append(" ").append(ChatColor.stripColor(msg.getContentDisplay())); // for logging
}
if (!msg.getAttachments().isEmpty())
{
for (Message.Attachment attachment : msg.getAttachments())
{
attachment.getUrl();
builder.append(" ");
TextComponent text = new TextComponent(ChatColor.YELLOW + "[Media]");
text.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl()));
builder.append(text);
message.append(" [Media]"); // for logging
}
}
for (Player player : Bukkit.getOnlinePlayers())
{
if (TotalFreedomMod.getPlugin().pl.getData(player).doesDisplayDiscord())
{
player.spigot().sendMessage(builder.create());
}
}
FLog.info(message.toString());
message.append(" ").append(tag);
}
message.append(" ").append(ChatColor.RED).append(ChatColor.stripColor(member.getEffectiveName()))
.append(ChatColor.DARK_GRAY).append(":").append(ChatColor.RESET);
ComponentBuilder builder = new ComponentBuilder(message.toString());
if (!msg.getContentDisplay().isEmpty())
{
builder.append(" ").append(ChatColor.stripColor(msg.getContentDisplay()));
message.append(" ").append(ChatColor.stripColor(msg.getContentDisplay())); // for logging
}
if (!msg.getAttachments().isEmpty())
{
for (Message.Attachment attachment : msg.getAttachments())
{
attachment.getUrl();
builder.append(" ");
TextComponent text = new TextComponent(ChatColor.YELLOW + "[Media]");
text.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl()));
builder.append(text);
message.append(" [Media]"); // for logging
}
}
for (Player player : Bukkit.getOnlinePlayers())
{
if (TotalFreedomMod.getPlugin().pl.getData(player).doesDisplayDiscord())
{
player.spigot().sendMessage(builder.create());
}
}
FLog.info(message.toString());
}
}

View File

@ -128,7 +128,7 @@ public class ItemFun extends FreedomService
LivingEntity livingEntity = (LivingEntity)event.getRightClicked();
EntityType entityType = livingEntity.getType();
if (entityType != fPlayer.mobThrowerCreature())
if (!(entityType == fPlayer.mobThrowerCreature()))
{
return;
}
@ -304,11 +304,6 @@ public class ItemFun extends FreedomService
}
break;
}
default:
{
// Do nothing
break;
}
}
}

View File

@ -73,7 +73,7 @@ public class Landminer extends FreedomService
continue;
}
if (player.getLocation().distanceSquared(location) > (landmine.radius * landmine.radius))
if (!(player.getLocation().distanceSquared(location) <= (landmine.radius * landmine.radius)))
{
break;
}

View File

@ -79,20 +79,11 @@ public class Module_list extends HTTPDModule
switch (admin.getRank())
{
case ADMIN:
{
admins.add(player.getName());
break;
}
case SENIOR_ADMIN:
{
senioradmins.add(player.getName());
break;
}
default:
{
// Do nothing
break;
}
}
}
}

View File

@ -51,20 +51,11 @@ public class Module_players extends HTTPDModule
switch (admin.getRank())
{
case ADMIN:
{
admins.add(username);
break;
}
case SENIOR_ADMIN:
{
senioradmins.add(username);
break;
}
default:
{
// Do nothing
break;
}
}
}

View File

@ -1,5 +1,7 @@
package me.totalfreedom.totalfreedommod.player;
import java.util.ArrayList;
import java.util.List;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.caging.CageData;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
@ -14,12 +16,8 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import java.util.ArrayList;
import java.util.List;
public class FPlayer
{
public static final long AUTO_PURGE_TICKS = 5L * 60L * 20L;
@ -249,7 +247,7 @@ public class FPlayer
public void startArrowShooter(TotalFreedomMod plugin)
{
this.stopArrowShooter();
this.mp44ScheduleTask = new ArrowShooter(getPlayer()).runTaskTimer(plugin, 1L, 1L);
this.mp44ScheduleTask = new ArrowShooter(this.player).runTaskTimer(plugin, 1L, 1L);
this.mp44Firing = true;
}
@ -431,19 +429,14 @@ public class FPlayer
this.warningCount = warningCount;
}
public void incrementWarnings(boolean quiet)
public void incrementWarnings()
{
this.warningCount++;
if (this.warningCount % 2 == 0)
{
Player p = getPlayer();
if (!quiet)
{
p.getWorld().strikeLightning(p.getLocation());
}
p.getWorld().strikeLightning(p.getLocation());
FUtil.playerMsg(p, ChatColor.RED + "You have been warned at least twice now, make sure to read the rules at " + ConfigEntry.SERVER_BAN_URL.getString());
}
}
@ -711,11 +704,8 @@ public class FPlayer
@Override
public void run()
{
if (player != null)
{
Arrow shot = player.launchProjectile(Arrow.class);
shot.setVelocity(shot.getVelocity().multiply(2.0));
}
Arrow shot = player.launchProjectile(Arrow.class);
shot.setVelocity(shot.getVelocity().multiply(2.0));
}
}
}

View File

@ -7,11 +7,5 @@ public enum PunishmentType
KICK,
TEMPBAN,
BAN,
DOOM,
WARN,
CAGE,
BLOCKEDIT,
BLOCKPVP,
BLOCKCMD,
ORBIT
DOOM
}

View File

@ -1,50 +1,16 @@
#
# TotalFreedomMod 5.5 Permissions
# TotalFreedomMod Permissions
# by ZeroEpoch1969
#
# Note that every group inherits the previous groups' permissions
# Meaning Telnet Admins have the permissions of Operators and Super Admins, and etc
# Meaning Senior Admins have the permissions of Operators and Admins, and etc
# This is used to remove all permission begging with the root node
# This is useful when a plugin gives all permissions to a player because they are opped
remove:
- "voxelsniper"
- "bending.admin"
- "bending.ability.Cleanse"
- "worldedit.brush.apply"
- "essentials.near.exclude"
- "plots.admin"
- "plots.debugroadregen"
- "plots.debugclaimtest"
- "plots.debugpaste"
- "plots.debugallowunsafe"
- "plots.debugloadtest"
- "plots.debugsavetest"
- "plots.cluster"
#Crackshot
- "crackshot.bypass.all"
#NetworkManager
- "networkmanager.*"
- "networkmanager.notify.joinbanned"
- "networkmanager.notify.*"
- "networkmanager.announce.global"
- "networkmanager.announce"
- "networkmanager.chatlock"
- "networkmanager.clearchat.bypass"
- "networkmanager.clearchat.*"
- "networkmanager.notify.ticket.new"
- "networkmanager.lookup"
- "networkmanager.maintenance.*"
- "networkmanager.permissions"
- "networkmanager.reports"
- "networkmanager.tickets"
- "networkmanager.chatlock.bypass"
- "networkmanager.anticaps.bypass"
- "networkmanager.antispam.bypass"
- "networkmanager.commandblocker.bypass"
- "networkmanager.tags.*"
- "bending"
# Operator permission nodes
operators:
@ -70,79 +36,16 @@ operators:
- "worldedit.removebelow"
- "worldedit.removenear"
- "worldedit.replacenear"
- "worldedit.brush.*"
- "worldedit.global-mask"
- "worldedit.fill"
- "worldedit.fill.recursive"
# LibsDisguises
- "libsdisguises.noactionbar"
# WorldGuard
- "worldguard.region.list.own"
- "worldguard.region.addmember.own.*"
- "worldguard.region.removemember.own.*"
- "worldguard.region.info.*"
# Bending
- "bending.command.add"
- "bending.command.bind"
- "bending.command.check"
- "bending.command.choose"
- "bending.command.rechoose"
- "bending.command.clear"
- "bending.command.copy"
- "bending.command.display"
- "bending.command.help"
- "bending.command.invincible"
- "bending.command.preset"
- "bending.command.preset.list"
- "bending.command.preset.create"
- "bending.command.preset.delete"
- "bending.command.preset.bind"
- "bending.command.preset.bind.assign"
- "bending.command.preset.bind.external"
- "bending.command.toggle"
- "bending.command.version"
- "bending.command.who"
- "bending.earth"
- "bending.air"
- "bending.fire"
- "bending.water"
- "bending.water.bloodbending.anytime"
- "bending.ability.AvatarState"
- "bending.command.add.chi"
- "bending.command.choose.chi"
- "bending.ability.Paralyze"
- "bending.ability.RapidPunch"
- "bending.ability.Smokescreen"
- "bending.ability.WarriorStance"
- "bending.ability.AcrobatStance"
- "bending.ability.QuickStrike"
- "bending.ability.SwiftKick"
- "bending.ability.ChiCombo"
- "bending.chi.passive"
- "bending.ability.MetalClips.throw"
- "bending.ability.AirCombo"
- "bending.ability.Flight"
- "bending.ability.WaterCombo"
- "bending.ability.EarthCombo"
- "bending.ability.FireCombo"
- "bending.ability.ChiCombo"
- "bending.air.passive"
- "bending.chi.passive"
- "bending.earth.passive"
- "bending.fire.passive"
- "bending.water.passive"
# NetworkManager
- "networkmanager.chatlog"
- "networkmanager.find"
- "networkmanager.gtps"
- "networkmanager.lookup"
- "networkmanager.slashserver.*"
- "networkmanager.notification.join"
- "networkmanager.party.nolimit"
- "networkmanager.tabcompletechat"
# Master Builder permission nodes
master_builders:
- "worldedit.tool.*"
@ -156,25 +59,13 @@ master_builders:
- "voxelsniper.sniper"
- "voxelsniper.goto"
- "voxelsniper.brush.*"
# Admin permission nodes
admins:
- "coreprotect.*"
- "worldedit.*"
- "worldguard.*"
- "bending.admin.remove"
- "bending.command.toggle.all"
- "bending.admin.toggle"
- "bending.command.reload"
- "plots.cluster"
- "networkmanager.adminchat"
- "networkmanager.announce.server"
- "networkmanager.socialspy"
- "networkmanager.fullproxy.bypass"
- "networkmanager.lookup.ip"
#Crackshot
- "crackshot.bypass.all"
- "bending.*"
# Senior Admin permission nodes
senior_admins:
- "bending.admin.permaremove"
- "bending.ability.Cleanse"
senior_admins: []