mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2024-11-27 01:05:38 +00:00
Release 2021.06 (#97)
* Update Command_ride.java * ok, done (FS-156) * Fixes FS-137 * grammar fix * Remove a number of wipe commands we don't want anyway We shouldn't be wiping any of this data within the server now anyway so let's not tempt fate again. * Why overcomplicating things is a horrifically bad idea (#55) The longer I look into this plugin's code, the angrier I will become. This fixes 2 bugs in the /potion command: - Fixes non-admins being able to clear other players - Fixes NPE caused when trying to add potion effects to players who are not on the server as a non-admin. Both of these issues are caused by overcomplicating seemingly simple solutions, hence the name of this commit. Co-authored-by: Ryan <Wild1145@users.noreply.github.com> Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com> * Bug fixes, improvements, and removals (FS-192) (#46) * Three fixes * Fixes /tempban throwing a NullPointerException when trying to get a player who isn't on the server but was in the past * Fixes /tempban banning players for 24 hours regardless of the duration defined * Fixes /list -t throwing a NullPointerException when performed from a non-player source (such as Telnet) * Removes hubworld entriely * Configurable blacklists for tag, muted commands, and wildcard Changes: * Moves globally blocked commands to the `global` subsection of the original `blocked_commands` section. You *will* need to update your configurations * /wildcard's command blacklist is now configurable under the `wildcard` section in `blocked_commands`. * The commands muted players can't use are now configurable under the `muted` section in `blocked_commands`. * Removes some commented-out globally blocked command entries. Co-authored-by: Ryan <Wild1145@users.noreply.github.com> * Switched from -c to -ci (#63) Resolves FS-219 * Added new dependency to allow TFM to compile (#65) * Name change for Fleek (#64) * Add //g to blocked commands (#62) Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com> * Small modification to new TFGuilds (FS-255) (#67) * Calculate the player count without offline players (FS-247) (#68) Co-authored-by: Ryan <Wild1145@users.noreply.github.com> * Use long instead of int and use offset to check time (FS-181) (#69) * Use long instead of int and use offset to check time (FS-181) * Remove star import * Addresses FS-224 (#70) * Continuation on that notes thing (#74) I forgot to remove the dependency after I removed the code that used JSONMessage. This fixes that by removing both the repository and the dependency from the pom file. * Updated permissions to re-baseline with the dev server (#75) Updating this to be based off of the dev server as it seems this has not been updated in some time. Primary purpose is to add the crackshot bypass removal for everyone (Though allow admins to bypass) and to add a start of network manager perms in the hopes it makes it more usable going forward. * Two fixes, one commit To kill two birds with one stone, I've done two fixes in this commit. - Fixes issue that caused quiet warns to behave improperly (e.g. the warnings wouldn't increment if quiet) - Added WARN to the PunishmentType list. * Update EntityWiper.java * FS-27 * FS-26 * FS-25 * Code quality and consistency improvements Here's all the changes I've made in this commit: - Resolves FS-44 (AutoEject.java) - Resolves FS-45 (BlockBlocker.java) - Resolves FS-47 and FS-48 (InteractBlocker.java) - Resolves FS-49 (Command_cage.java) - Resolves FS-50 (Command_manageshop.java) - Resolves FS-51 (Command_notes.java) - Resolves FS-52 (Command_potion.java) - Resolves FS-53 (Command_tag.java) - Resolves FS-55 (ItemFun.java) - Resolves FS-56 (Module_list.java) - Resolves FS-57 (Module_players.java) - Removes redundant code from InteractBlocker.java - Misc. code consistency corrections (global) * FS-54 * Shut up Codacy * FS-201 * Simple fix * Even more punishment log types Here's what I've changed in this commit: - Adds /blockcmd to the punishment log (FS-239) - Adds /blockedit and /blockpvp to the punishment log (FS-240) - Adds /cage to the punishment log (FS-241) - Adds /orbit to the punishment log (FS-242) - Changes the order of operations in some commands to be a bit more consistent * Order of operations fix * ez (#77) * Start building Java 16 (#84) * Start building Java 16 * Re-apply Fleek's change * Removed the shitty Github auto formatted white space. * Update to the maven build in Github workflows Given TravisCI has started to charge, I guess this might be what we move back to using as our main way to verify if something can actually build. * Update maven.yml * Delete .travis.yml * Adds /seed command (FS-225) (#85) * Create Command_seed.java * Addresses requested changes * My IDE decided to try to "fix" things with *s in imports Co-authored-by: Ryan <Wild1145@users.noreply.github.com> * Use 'getPlayer()' to prevent NPE (FS-159) (#87) Co-authored-by: Ryan <Wild1145@users.noreply.github.com> * 2 bugfixes - Fixes FS-309 by checking if a material provided is actually a block before caging someone. - Fixes a bug that causes the command to throw an ArrayOutOfBoundsException if one were to use a command like `/cage player1 block`. * Temporarily re-naming /clearchat to /cleanchat (#91) * Temporarily re-naming /clearchat to /cleanchat Due to another plugin which currently doesn't quite have all the permissions working, this command is not currently able to be executed as it stands. * Shhh I know I'm an idiot * Let's actually do dependency uplifts (#89) * Bump release to 2021.06-RC01 * Bump to release version We're good to go! Co-authored-by: Video <videogamesm12@gmail.com> Co-authored-by: Elmon11 <elmon11bussiness@gmail.com> Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com> Co-authored-by: Paldiu <pawereus@gmail.com>
This commit is contained in:
parent
a37364d07e
commit
dcaf1ec11a
19
.github/dependabot.yml
vendored
Normal file
19
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
|
||||
# Maintain Maven Updates
|
||||
- package-ecosystem: "maven" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
12
.github/workflows/maven.yml
vendored
12
.github/workflows/maven.yml
vendored
@ -8,10 +8,20 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Java 11 Builds
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up JDK 1.8
|
||||
- name: Set up JDK 11
|
||||
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
13
.travis.yml
@ -1,13 +0,0 @@
|
||||
language: java
|
||||
jdk:
|
||||
- oraclejdk11
|
||||
- openjdk11
|
||||
notifications:
|
||||
email: false
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- sshpass
|
||||
script: mvn clean install
|
||||
after_success:
|
||||
- ./travis-upload.sh
|
19
pom.xml
19
pom.xml
@ -5,7 +5,7 @@
|
||||
|
||||
<groupId>me.totalfreedom</groupId>
|
||||
<artifactId>TotalFreedomMod</artifactId>
|
||||
<version>2021.05</version>
|
||||
<version>2021.06</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<properties>
|
||||
@ -105,11 +105,6 @@
|
||||
<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>
|
||||
@ -168,9 +163,9 @@
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.TotalFreedomMC</groupId>
|
||||
<groupId>com.github.AtlasMediaGroup</groupId>
|
||||
<artifactId>TF-LibsDisguises</artifactId>
|
||||
<version>48f01cf2fe</version>
|
||||
<version>5a340341b0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@ -216,13 +211,6 @@
|
||||
<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>
|
||||
@ -454,7 +442,6 @@
|
||||
<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>
|
||||
|
@ -85,6 +85,10 @@ 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));
|
||||
|
@ -25,11 +25,6 @@ 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());
|
||||
|
@ -2,6 +2,8 @@ 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;
|
||||
@ -32,9 +34,12 @@ public class EntityWiper extends FreedomService
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
|
||||
{
|
||||
wipeEntities(false);
|
||||
}
|
||||
}
|
||||
}.runTaskTimer(plugin, 600L, 600L); // 30 second delay after startup + run every 30 seconds
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,6 @@ import io.papermc.lib.PaperLib;
|
||||
import java.util.ArrayList;
|
||||
import java.util.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;
|
||||
|
@ -43,6 +43,7 @@ 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
|
||||
|
@ -171,6 +171,11 @@ public class BlockBlocker extends FreedomService
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
// Do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (Groups.BANNERS.contains(event.getBlockPlaced().getType()))
|
||||
|
@ -36,10 +36,9 @@ public class InteractBlocker extends FreedomService
|
||||
break;
|
||||
}
|
||||
|
||||
case LEFT_CLICK_AIR:
|
||||
case LEFT_CLICK_BLOCK:
|
||||
default:
|
||||
{
|
||||
//
|
||||
// Do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -158,6 +157,11 @@ public class InteractBlocker extends FreedomService
|
||||
event.setCancelled(true);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
// Do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
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;
|
||||
@ -75,9 +77,11 @@ public class Command_blockcmd extends FreedomCommand
|
||||
FPlayer playerdata = plugin.pl.getPlayer(player);
|
||||
if (!playerdata.allCommandsBlocked())
|
||||
{
|
||||
playerdata.setCommandsBlocked(true);
|
||||
FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
|
||||
playerdata.setCommandsBlocked(true);
|
||||
msg("Blocked commands for " + player.getName() + ".");
|
||||
|
||||
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.BLOCKCMD, null));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,6 +1,8 @@
|
||||
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;
|
||||
@ -128,6 +130,8 @@ 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;
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
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;
|
||||
@ -125,6 +127,7 @@ 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());
|
||||
|
@ -5,6 +5,8 @@ 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;
|
||||
@ -75,15 +77,41 @@ public class Command_cage extends FreedomCommand
|
||||
}
|
||||
case "block":
|
||||
{
|
||||
if (Material.matchMaterial(args[2]) != null)
|
||||
if (args.length >= 3)
|
||||
{
|
||||
// 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);
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (outerMaterial == Material.PLAYER_HEAD)
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||
}
|
||||
|
||||
Location location = player.getLocation().clone().add(0.0, 1.0, 0.0);
|
||||
@ -96,17 +124,9 @@ public class Command_cage extends FreedomCommand
|
||||
{
|
||||
fPlayer.getCageData().cage(location, outerMaterial, innerMaterial);
|
||||
}
|
||||
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
if (outerMaterial == Material.PLAYER_HEAD)
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||
}
|
||||
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.CAGE, null));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -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_clearchat extends FreedomCommand
|
||||
public class Command_cleanchat extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
@ -64,6 +64,12 @@ 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);
|
||||
|
@ -23,12 +23,12 @@ public class Command_freeze extends FreedomCommand
|
||||
|
||||
if (!gFreeze)
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Disabling global player freeze", false);
|
||||
FUtil.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||
msg("Players are now free to move.");
|
||||
return true;
|
||||
}
|
||||
|
||||
FUtil.adminAction(sender.getName(), "Enabling global player freeze", false);
|
||||
FUtil.adminAction(sender.getName(), "Freezing all players", false);
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (!isAdmin(player))
|
||||
|
@ -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,7 +75,9 @@ 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])));
|
||||
@ -122,7 +124,9 @@ 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])));
|
||||
@ -148,6 +152,11 @@ public class Command_manageshop extends FreedomCommand
|
||||
return true;
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (args[0].equals("items"))
|
||||
{
|
||||
|
@ -116,9 +116,13 @@ public class Command_notes extends FreedomCommand
|
||||
msg("Cleared " + count + " notes.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
|
||||
|
@ -1,6 +1,8 @@
|
||||
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;
|
||||
@ -56,11 +58,13 @@ 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));
|
||||
FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
|
||||
|
||||
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.ORBIT, null));
|
||||
return true;
|
||||
}
|
||||
}
|
@ -29,6 +29,7 @@ public class Command_potion extends FreedomCommand
|
||||
switch (args.length)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("list"))
|
||||
{
|
||||
List<String> potionEffectTypeNames = new ArrayList<>();
|
||||
@ -58,8 +59,10 @@ public class Command_potion extends FreedomCommand
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
case 2:
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("clear"))
|
||||
{
|
||||
Player target = playerSender;
|
||||
@ -95,9 +98,11 @@ public class Command_potion extends FreedomCommand
|
||||
msg("Cleared all active potion effects " + (!target.equals(playerSender) ? "from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 4:
|
||||
case 5:
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("add"))
|
||||
{
|
||||
Player target = playerSender;
|
||||
@ -167,9 +172,12 @@ public class Command_potion extends FreedomCommand
|
||||
+ (!target.equals(playerSender) ? " to player " + target.getName() + "." : " to yourself."), ChatColor.AQUA);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -179,14 +187,17 @@ 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))
|
||||
@ -199,22 +210,28 @@ 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"))
|
||||
@ -225,6 +242,12 @@ public class Command_potion extends FreedomCommand
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,97 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.md_5.bungee.api.chat.TranslatableComponent;
|
||||
import net.md_5.bungee.api.chat.hover.content.Text;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = Rank.NON_OP, source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Get the seed of the world you are currently in.", usage = "/seed [world]")
|
||||
public class Command_seed extends FreedomCommand
|
||||
{
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
World world;
|
||||
|
||||
if (args.length > 0)
|
||||
{
|
||||
world = server.getWorld(args[0]);
|
||||
if (world == null)
|
||||
{
|
||||
msg("That world could not be found", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// If the sender is a Player, use that world. Otherwise, use the overworld as a fallback.
|
||||
if (!senderIsConsole)
|
||||
{
|
||||
world = playerSender.getWorld();
|
||||
}
|
||||
else
|
||||
{
|
||||
world = server.getWorlds().get(0);
|
||||
}
|
||||
}
|
||||
|
||||
// If the sender is not a Player, use the usual msg method to
|
||||
if (senderIsConsole)
|
||||
{
|
||||
msg("Seed: [" + ChatColor.GREEN + world.getSeed() + ChatColor.WHITE + "]", ChatColor.WHITE);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Gets the seed for later uses
|
||||
String seed = String.valueOf(world.getSeed());
|
||||
|
||||
// This is a really stupid hack to get things to play nicely, but it works so I don't give a damn
|
||||
BaseComponent[] components = {new TranslatableComponent("chat.copy.click")};
|
||||
TextComponent seedAsComponent = new TextComponent(seed);
|
||||
|
||||
// Style the message like in vanilla Minecraft.
|
||||
seedAsComponent.setColor(ChatColor.GREEN.asBungee());
|
||||
seedAsComponent.setClickEvent(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, seed));
|
||||
seedAsComponent.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(components)));
|
||||
|
||||
// Enclose the seed with brackets
|
||||
TextComponent seedString = new TextComponent("[");
|
||||
seedString.addExtra(seedAsComponent);
|
||||
seedString.addExtra("]");
|
||||
|
||||
// Send the message to the player.
|
||||
TranslatableComponent response = new TranslatableComponent("commands.seed.success", seedString);
|
||||
playerSender.spigot().sendMessage(response);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
|
||||
{
|
||||
if (args.length == 1)
|
||||
{
|
||||
// Returns a list of worlds on the server and returns it
|
||||
List<String> worlds = new ArrayList<>();
|
||||
for (World world : server.getWorlds())
|
||||
{
|
||||
worlds.add(world.getName());
|
||||
}
|
||||
return worlds;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@ -105,6 +105,11 @@ public class Command_tag extends FreedomCommand
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (args.length >= 2)
|
||||
@ -279,6 +284,11 @@ public class Command_tag extends FreedomCommand
|
||||
msg("Tag set to '" + outputTag + ChatColor.GRAY + "'." + (save ? " (Saved)" : "") + from + to);
|
||||
return true;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -16,6 +16,12 @@ 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)
|
||||
@ -23,38 +29,10 @@ public class Command_toggle extends FreedomCommand
|
||||
if (args.length == 0)
|
||||
{
|
||||
msg("Available toggles: ");
|
||||
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");
|
||||
for (String toggle : toggles)
|
||||
{
|
||||
msg("- " + toggle);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -304,6 +282,16 @@ 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;
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
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;
|
||||
@ -53,15 +56,16 @@ 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(ChatColor.GREEN + "You have successfully warned " + player.getName());
|
||||
msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason);
|
||||
plugin.pl.getPlayer(player).incrementWarnings(quiet);
|
||||
plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.WARN, warnReason));
|
||||
|
||||
if (quiet)
|
||||
{
|
||||
msg("Warned " + player.getName() + " quietly");
|
||||
return true;
|
||||
msg("You have successfully warned " + player.getName() + " quietly.");
|
||||
}
|
||||
|
||||
msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason);
|
||||
else
|
||||
{
|
||||
String adminNotice = ChatColor.RED +
|
||||
sender.getName() +
|
||||
" - " +
|
||||
@ -71,7 +75,9 @@ public class Command_warn extends FreedomCommand
|
||||
ChatColor.YELLOW +
|
||||
warnReason;
|
||||
plugin.al.messageAllAdmins(adminNotice);
|
||||
plugin.pl.getPlayer(player).incrementWarnings();
|
||||
|
||||
msg("You have successfully warned " + player.getName() + ".");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
@ -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,6 +304,11 @@ public class ItemFun extends FreedomService
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
// Do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -79,12 +79,21 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,12 +51,21 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
masterbuilders.addAll(plugin.pl.getMasterBuilderNames());
|
||||
|
@ -1,7 +1,5 @@
|
||||
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;
|
||||
@ -16,8 +14,12 @@ 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;
|
||||
|
||||
|
||||
@ -247,7 +249,7 @@ public class FPlayer
|
||||
public void startArrowShooter(TotalFreedomMod plugin)
|
||||
{
|
||||
this.stopArrowShooter();
|
||||
this.mp44ScheduleTask = new ArrowShooter(this.player).runTaskTimer(plugin, 1L, 1L);
|
||||
this.mp44ScheduleTask = new ArrowShooter(getPlayer()).runTaskTimer(plugin, 1L, 1L);
|
||||
this.mp44Firing = true;
|
||||
}
|
||||
|
||||
@ -429,14 +431,19 @@ public class FPlayer
|
||||
this.warningCount = warningCount;
|
||||
}
|
||||
|
||||
public void incrementWarnings()
|
||||
public void incrementWarnings(boolean quiet)
|
||||
{
|
||||
this.warningCount++;
|
||||
|
||||
if (this.warningCount % 2 == 0)
|
||||
{
|
||||
Player p = getPlayer();
|
||||
|
||||
if (!quiet)
|
||||
{
|
||||
p.getWorld().strikeLightning(p.getLocation());
|
||||
}
|
||||
|
||||
FUtil.playerMsg(p, ChatColor.RED + "You have been warned at least twice now, make sure to read the rules at " + ConfigEntry.SERVER_BAN_URL.getString());
|
||||
}
|
||||
}
|
||||
@ -703,9 +710,12 @@ public class FPlayer
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
Arrow shot = player.launchProjectile(Arrow.class);
|
||||
shot.setVelocity(shot.getVelocity().multiply(2.0));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -7,5 +7,11 @@ public enum PunishmentType
|
||||
KICK,
|
||||
TEMPBAN,
|
||||
BAN,
|
||||
DOOM
|
||||
DOOM,
|
||||
WARN,
|
||||
CAGE,
|
||||
BLOCKEDIT,
|
||||
BLOCKPVP,
|
||||
BLOCKCMD,
|
||||
ORBIT
|
||||
}
|
||||
|
@ -1,16 +1,50 @@
|
||||
#
|
||||
# TotalFreedomMod Permissions
|
||||
# TotalFreedomMod 5.5 Permissions
|
||||
# by ZeroEpoch1969
|
||||
#
|
||||
|
||||
# Note that every group inherits the previous groups' permissions
|
||||
# Meaning Senior Admins have the permissions of Operators and Admins, and etc
|
||||
# Meaning Telnet Admins have the permissions of Operators and Super Admins, and etc
|
||||
|
||||
# This is used to remove all permission begging with the root node
|
||||
# This is useful when a plugin gives all permissions to a player because they are opped
|
||||
remove:
|
||||
- "voxelsniper"
|
||||
- "bending"
|
||||
- "bending.admin"
|
||||
- "bending.ability.Cleanse"
|
||||
- "worldedit.brush.apply"
|
||||
- "essentials.near.exclude"
|
||||
- "plots.admin"
|
||||
- "plots.debugroadregen"
|
||||
- "plots.debugclaimtest"
|
||||
- "plots.debugpaste"
|
||||
- "plots.debugallowunsafe"
|
||||
- "plots.debugloadtest"
|
||||
- "plots.debugsavetest"
|
||||
- "plots.cluster"
|
||||
#Crackshot
|
||||
- "crackshot.bypass.all"
|
||||
#NetworkManager
|
||||
- "networkmanager.*"
|
||||
- "networkmanager.notify.joinbanned"
|
||||
- "networkmanager.notify.*"
|
||||
- "networkmanager.announce.global"
|
||||
- "networkmanager.announce"
|
||||
- "networkmanager.chatlock"
|
||||
- "networkmanager.clearchat.bypass"
|
||||
- "networkmanager.clearchat.*"
|
||||
- "networkmanager.notify.ticket.new"
|
||||
- "networkmanager.lookup"
|
||||
- "networkmanager.maintenance.*"
|
||||
- "networkmanager.permissions"
|
||||
- "networkmanager.reports"
|
||||
- "networkmanager.tickets"
|
||||
- "networkmanager.chatlock.bypass"
|
||||
- "networkmanager.anticaps.bypass"
|
||||
- "networkmanager.antispam.bypass"
|
||||
- "networkmanager.commandblocker.bypass"
|
||||
- "networkmanager.tags.*"
|
||||
|
||||
|
||||
# Operator permission nodes
|
||||
operators:
|
||||
@ -36,7 +70,10 @@ operators:
|
||||
- "worldedit.removebelow"
|
||||
- "worldedit.removenear"
|
||||
- "worldedit.replacenear"
|
||||
|
||||
- "worldedit.brush.*"
|
||||
- "worldedit.global-mask"
|
||||
- "worldedit.fill"
|
||||
- "worldedit.fill.recursive"
|
||||
# LibsDisguises
|
||||
- "libsdisguises.noactionbar"
|
||||
|
||||
@ -46,6 +83,66 @@ operators:
|
||||
- "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.*"
|
||||
@ -62,10 +159,22 @@ master_builders:
|
||||
|
||||
# Admin permission nodes
|
||||
admins:
|
||||
- "coreprotect.*"
|
||||
- "worldedit.*"
|
||||
- "worldguard.*"
|
||||
- "bending.*"
|
||||
- "bending.admin.remove"
|
||||
- "bending.command.toggle.all"
|
||||
- "bending.admin.toggle"
|
||||
- "bending.command.reload"
|
||||
- "plots.cluster"
|
||||
- "networkmanager.adminchat"
|
||||
- "networkmanager.announce.server"
|
||||
- "networkmanager.socialspy"
|
||||
- "networkmanager.fullproxy.bypass"
|
||||
- "networkmanager.lookup.ip"
|
||||
#Crackshot
|
||||
- "crackshot.bypass.all"
|
||||
|
||||
# Senior Admin permission nodes
|
||||
senior_admins: []
|
||||
senior_admins:
|
||||
- "bending.admin.permaremove"
|
||||
- "bending.ability.Cleanse"
|
||||
|
Loading…
Reference in New Issue
Block a user