Command changes

This commit is contained in:
mathias 2019-08-03 00:19:56 +03:00
parent dd9d5bdc50
commit 4dc64ae1d9
8 changed files with 99 additions and 121 deletions

View file

@ -9,8 +9,6 @@ import org.bukkit.Material;
import org.bukkit.block.BlockFace;
import org.bukkit.plugin.java.JavaPlugin;
/*import com.comphenix.protocol.ProtocolLibrary;*/
import com.destroystokyo.paper.profile.PlayerProfile;
public class Main extends JavaPlugin {
@ -613,7 +611,6 @@ public class Main extends JavaPlugin {
this.getServer().getPluginManager().registerEvents(new PlayerConnection(this), this);
this.getServer().getPluginManager().registerEvents(new PlayerDamage(), this);
this.getServer().getPluginManager().registerEvents(new PlayerInteract(this), this);
/*ProtocolLibrary.getProtocolManager().addPacketListener(new PlayerInventory(this));*/
/* Server-related modules */
new AutosaveCheck().runTaskTimerAsynchronously(this, 0, 20);

View file

@ -2,11 +2,17 @@ package pw.kaboom.extras;
import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.scheduler.BukkitRunnable;
class PlayerCommand implements Listener {
private Main main;
public PlayerCommand(Main main) {
@ -22,7 +28,7 @@ class PlayerCommand implements Listener {
main.commandMillisList.put(playerUuid, System.currentTimeMillis());
if (millisDifference < 400) {
if (millisDifference < 200) {
event.setCancelled(true);
return;
}
@ -50,6 +56,32 @@ class PlayerCommand implements Listener {
event.setMessage(stringBuilder.toString());
}
} else if (("/bukkit:reload".equals(arr[0].toLowerCase()) ||
"/bukkit:rl".equals(arr[0].toLowerCase()) ||
"/reload".equals(arr[0].toLowerCase()) ||
"/rl".equals(arr[0].toLowerCase())) &&
event.getPlayer().hasPermission("bukkit.command.reload")) {
if (arr.length >= 2 &&
"confirm".equals(arr[1].toLowerCase())) {
event.setCancelled(true);
Command.broadcastCommandMessage(event.getPlayer(), ChatColor.RED + "Please note that this command is not supported and may cause issues when using some plugins.");
Command.broadcastCommandMessage(event.getPlayer(), ChatColor.RED + "If you encounter any issues please use the /stop command to restart your server.");
Command.broadcastCommandMessage(event.getPlayer(), ChatColor.GREEN + "Reload complete.");
}
} else if (("/restart".equals(arr[0].toLowerCase()) ||
"/spigot:restart".equals(arr[0].toLowerCase())) &&
event.getPlayer().hasPermission("bukkit.command.restart")) {
event.setCancelled(true);
} else if (("/minecraft:save-off".equals(arr[0].toLowerCase()) ||
"/save-off".equals(arr[0].toLowerCase())) &&
event.getPlayer().hasPermission("minecraft.command.save.disable")) {
event.setCancelled(true);
Command.broadcastCommandMessage(event.getPlayer(), "Automatic saving is now disabled");
} else if (("/minecraft:stop".equals(arr[0].toLowerCase()) ||
"/stop".equals(arr[0].toLowerCase())) &&
event.getPlayer().hasPermission("minecraft.command.stop")) {
event.setCancelled(true);
Command.broadcastCommandMessage(event.getPlayer(), "Stopping the server");
}
}
}

View file

@ -6,9 +6,10 @@ import java.util.UUID;
import javax.net.ssl.HttpsURLConnection;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
@ -20,18 +21,19 @@ import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
import com.destroystokyo.paper.event.player.PlayerConnectionCloseEvent;
import com.destroystokyo.paper.profile.PlayerProfile;
import com.destroystokyo.paper.profile.ProfileProperty;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.bukkit.event.world.WorldSaveEvent;
class PlayerConnection implements Listener {
private Main main;
public PlayerConnection(Main main) {
@ -40,6 +42,9 @@ class PlayerConnection implements Listener {
@EventHandler
void onAsyncPlayerPreLogin(AsyncPlayerPreLoginEvent event) {
main.commandMillisList.put(event.getUniqueId(), System.currentTimeMillis());
main.interactMillisList.put(event.getUniqueId(), System.currentTimeMillis());
try {
final URL nameUrl = new URL("https://api.mojang.com/users/profiles/minecraft/" + event.getName());
final HttpsURLConnection nameConnection = (HttpsURLConnection) nameUrl.openConnection();
@ -74,6 +79,30 @@ class PlayerConnection implements Listener {
}
}
@EventHandler
void onPlayerConnectionClose(final PlayerConnectionCloseEvent event) {
main.commandMillisList.remove(event.getPlayerUniqueId());
main.interactMillisList.remove(event.getPlayerUniqueId());
new BukkitRunnable() {
public void run() {
for (final World world : Bukkit.getWorlds()) {
for (final Chunk chunk : world.getLoadedChunks()) {
try {
chunk.getTileEntities();
} catch (Exception e) {
new BukkitRunnable() {
public void run() {
world.regenerateChunk(chunk.getX(), chunk.getZ());
}
}.runTask(main);
}
}
}
}
}.runTaskAsynchronously(main);
}
@EventHandler
void onPlayerJoin(PlayerJoinEvent event) {
final Player player = event.getPlayer();
@ -115,8 +144,6 @@ class PlayerConnection implements Listener {
event.allow();
player.setOp(true);
main.commandMillisList.put(player.getUniqueId(), System.currentTimeMillis());
main.interactMillisList.put(player.getUniqueId(), System.currentTimeMillis());
try {
player.setPlayerProfile(main.playerProfile.get(player.getName()));
} catch (Exception exception) {
@ -125,47 +152,7 @@ class PlayerConnection implements Listener {
}
@EventHandler
void onPlayerQuit(PlayerQuitEvent event) {
final Player player = event.getPlayer();
main.commandMillisList.remove(player.getUniqueId());
main.interactMillisList.remove(player.getUniqueId());
final Location location = player.getLocation();
new BukkitRunnable() {
public void run() {
for (final Chunk chunk : location.getWorld().getLoadedChunks()) {
try {
chunk.getTileEntities();
} catch (Exception e) {
new BukkitRunnable() {
public void run() {
location.getWorld().regenerateChunk(chunk.getX(), chunk.getZ());
}
}.runTask(main);
}
}
}
}.runTaskAsynchronously(main);
/*final int chunkX = player.getLocation().getChunk().getX();
final int chunkZ = player.getLocation().getChunk().getZ();
final int radius = 4;
for (int x = chunkX - radius; x < chunkX + radius; x++) {
for (int z = chunkZ - radius; z < chunkZ + radius; z++) {
try {
Chunk chunk = player.getLocation().getWorld().getChunkAtAsync(x, z).get();
try {
chunk.getTileEntities();
} catch (Exception e) {
player.getLocation().getWorld().regenerateChunk(chunk.getX(), chunk.getZ());
}
} catch (Exception e) {
}
}
}*/
void onWorldSave(WorldSaveEvent event) {
System.out.println("1");
}
}

View file

@ -23,7 +23,7 @@ class PlayerInteract implements Listener {
main.interactMillisList.put(playerUuid, System.currentTimeMillis());
if (millisDifference < 200) {
if (millisDifference < 150) {
event.setCancelled(true);
}
}

View file

@ -1,65 +0,0 @@
/*package pw.kaboom.extras;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.entity.LivingEntity;
import org.bukkit.inventory.ItemStack;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.events.ListenerPriority;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.events.PacketEvent;
class PlayerInventory extends PacketAdapter {
private Main main;
public PlayerInventory(Main main) {
/*super(main, ListenerPriority.HIGH, PacketType.Play.Server.SET_SLOT, PacketType.Play.Server.WINDOW_ITEMS);
super(main, ListenerPriority.HIGH, PacketType.Play.Server.ENTITY_METADATA);
}
@Override
public void onPacketSending(PacketEvent event) {
try {
LivingEntity entity = (LivingEntity) event.getPacket().getEntityModifier(event).read(0);
entity.getEquipment().getArmorContents();
} catch (Exception exception) {
LivingEntity entity = (LivingEntity) event.getPacket().getEntityModifier(event).read(0);
entity.getEquipment().setArmorContents(
new ItemStack[] {null, null, null, null}
);
System.out.println("slot");
}
}
/*@Override
public void onPacketSending(PacketEvent event) {
if (event.getPacketType().equals(PacketType.Play.Server.SET_SLOT)) {
try {
event.getPacket().getItemModifier().read(0);
} catch (Exception exception) {
PacketContainer packet = event.getPacket();
packet.getItemModifier().write(0, new ItemStack(Material.AIR));
event.setPacket(packet);
System.out.println("slot");
}
} else {
try {
for (int i = 0; i < 50; i++) {
event.getPacket().getItemListModifier().read(i);
}
} catch (Exception exception) {
System.out.println("window1");
PacketContainer packet = event.getPacket();
for (int i = 0; i < 50; i++) {
packet.getItemListModifier().write(i, null);
}
event.setPacket(packet);
System.out.println("window");
}
}
}
}*/

View file

@ -7,10 +7,10 @@ import org.bukkit.scheduler.BukkitRunnable;
class AutosaveCheck extends BukkitRunnable {
public void run() {
for (final World world : Bukkit.getWorlds()) {
/*for (final World world : Bukkit.getWorlds()) {
if (world.isAutoSave() == false) {
world.setAutoSave(true);
}
}
}*/
}
}

View file

@ -1,5 +1,10 @@
package pw.kaboom.extras;
import org.bukkit.ChatColor;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.Command;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@ -41,6 +46,29 @@ class ServerCommand implements Listener {
event.setCommand(stringBuilder.toString());
}
} else if ("bukkit:reload".equals(arr[0].toLowerCase()) ||
"bukkit:rl".equals(arr[0].toLowerCase()) ||
"reload".equals(arr[0].toLowerCase()) ||
"rl".equals(arr[0].toLowerCase())) {
if (arr.length >= 2 &&
"confirm".equals(arr[1].toLowerCase())) {
event.setCancelled(true);
Command.broadcastCommandMessage(event.getSender(), ChatColor.RED + "Please note that this command is not supported and may cause issues when using some plugins.");
Command.broadcastCommandMessage(event.getSender(), ChatColor.RED + "If you encounter any issues please use the /stop command to restart your server.");
Command.broadcastCommandMessage(event.getSender(), ChatColor.GREEN + "Reload complete.");
}
} else if ("restart".equals(arr[0].toLowerCase()) ||
"spigot:restart".equals(arr[0].toLowerCase())) {
event.setCancelled(true);
} else if ("minecraft:save-off".equals(arr[0].toLowerCase()) ||
"save-off".equals(arr[0].toLowerCase())) {
event.setCancelled(true);
Command.broadcastCommandMessage(event.getSender(), "Automatic saving is now disabled");
} else if (("minecraft:stop".equals(arr[0].toLowerCase()) ||
"stop".equals(arr[0].toLowerCase())) &&
!(event.getSender() instanceof BlockCommandSender)) {
event.setCancelled(true);
Command.broadcastCommandMessage(event.getSender(), "Stopping the server");
}
}
}

View file

@ -3,7 +3,6 @@ main: pw.kaboom.extras.Main
description: Plugin that adds extra functionality to the server.
api-version: 1.13
version: master
#depends: [ProtocolLib]
commands:
clearchat: