mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-06-29 03:36:42 +00:00
Merge branch 'development' into RELEASE-2023.03
This commit is contained in:
@ -172,6 +172,11 @@ public class InteractBlocker extends FreedomService
|
||||
}
|
||||
case WRITTEN_BOOK:
|
||||
{
|
||||
if (ConfigEntry.ALLOW_BOOKS.getBoolean())
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
player.getInventory().clear(player.getInventory().getHeldItemSlot());
|
||||
player.sendMessage(ChatColor.GRAY + "Books are currently disabled.");
|
||||
event.setCancelled(true);
|
||||
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import me.totalfreedom.totalfreedommod.util.Groups;
|
||||
import net.coreprotect.CoreProtectAPI;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
@ -22,7 +23,7 @@ import org.bukkit.entity.Player;
|
||||
public class Command_ro extends FreedomCommand
|
||||
{
|
||||
|
||||
public static int replaceBlocks(Location center, Material fromMaterial, Material toMaterial, int radius)
|
||||
private int removeBlocks(Location center, Material material, int radius, String user)
|
||||
{
|
||||
int affected = 0;
|
||||
|
||||
@ -35,11 +36,17 @@ public class Command_ro extends FreedomCommand
|
||||
{
|
||||
Block block = centerBlock.getRelative(xOffset, yOffset, zOffset);
|
||||
BlockData data = block.getBlockData();
|
||||
CoreProtectAPI cpAPI = plugin.cpb.getCoreProtectAPI();
|
||||
|
||||
if (block.getLocation().distanceSquared(center) < (radius * radius))
|
||||
{
|
||||
if (fromMaterial.equals(Material.WATER) && data instanceof Waterlogged)
|
||||
if (material.equals(Material.WATER) && data instanceof Waterlogged waterloggedData)
|
||||
{
|
||||
Waterlogged waterloggedData = (Waterlogged)data;
|
||||
if (cpAPI != null)
|
||||
{
|
||||
cpAPI.logRemoval(user, block.getLocation(), material, data);
|
||||
}
|
||||
|
||||
if (waterloggedData.isWaterlogged())
|
||||
{
|
||||
waterloggedData.setWaterlogged(false);
|
||||
@ -47,12 +54,18 @@ public class Command_ro extends FreedomCommand
|
||||
affected++;
|
||||
continue;
|
||||
}
|
||||
block.setType(toMaterial);
|
||||
|
||||
block.setType(Material.AIR);
|
||||
affected++;
|
||||
}
|
||||
else if (block.getType().equals(fromMaterial))
|
||||
else if (block.getType().equals(material))
|
||||
{
|
||||
block.setType(toMaterial);
|
||||
if (cpAPI != null)
|
||||
{
|
||||
cpAPI.logRemoval(user, block.getLocation(), material, data);
|
||||
}
|
||||
|
||||
block.setType(Material.AIR);
|
||||
affected++;
|
||||
}
|
||||
}
|
||||
@ -155,7 +168,7 @@ public class Command_ro extends FreedomCommand
|
||||
|
||||
for (final Material material : materials)
|
||||
{
|
||||
affected += replaceBlocks(player.getLocation(), material, Material.AIR, radius);
|
||||
affected += removeBlocks(player.getLocation(), material, radius, sender.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -166,7 +179,7 @@ public class Command_ro extends FreedomCommand
|
||||
FUtil.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of " + targetPlayer.getName(), false);
|
||||
for (Material material : materials)
|
||||
{
|
||||
affected += replaceBlocks(targetPlayer.getLocation(), material, Material.AIR, radius);
|
||||
affected += removeBlocks(targetPlayer.getLocation(), material, radius, sender.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ 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", "masterblocks", "grindstones",
|
||||
"explosives [radius]", "unsafeenchs", "bells", "armorstands", "masterblocks", "books", "grindstones",
|
||||
"jukeboxes", "spawners", "4chan", "beehives", "respawnanchors", "autotp", "autoclear", "minecarts", "mp44",
|
||||
"landmines", "tossmob", "gravity");
|
||||
|
||||
@ -199,6 +199,12 @@ public class Command_toggle extends FreedomCommand
|
||||
break;
|
||||
}
|
||||
|
||||
case "books":
|
||||
{
|
||||
toggle("Books are", ConfigEntry.ALLOW_BOOKS);
|
||||
break;
|
||||
}
|
||||
|
||||
case "grindstones":
|
||||
{
|
||||
toggle("Grindstones are", ConfigEntry.ALLOW_GRINDSTONES);
|
||||
|
@ -34,6 +34,7 @@ public enum ConfigEntry
|
||||
AUTO_CLEAR(Boolean.class, "allow.auto_clear"),
|
||||
ALLOW_GRAVITY(Boolean.class, "allow.gravity"),
|
||||
ALLOW_MASTERBLOCKS(Boolean.class, "allow.masterblocks"),
|
||||
ALLOW_BOOKS(Boolean.class, "allow.books"),
|
||||
//
|
||||
BLOCKED_CHATCODES(String.class, "blocked_chatcodes"),
|
||||
//
|
||||
|
@ -220,6 +220,7 @@ allow:
|
||||
auto_clear: false
|
||||
gravity: false
|
||||
masterblocks: false
|
||||
books: true
|
||||
|
||||
blocked_commands:
|
||||
#
|
||||
|
Reference in New Issue
Block a user