Minor improvements

This commit is contained in:
mathias 2019-08-02 19:40:20 +03:00
parent d648cc8037
commit 06b3d1d613
6 changed files with 136 additions and 12 deletions

View file

@ -15,6 +15,11 @@
<artifactId>paper-api</artifactId>
<version>1.13.2-R0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib</artifactId>
<version>4.4.0</version>
</dependency>
</dependencies>
<repositories>
@ -22,6 +27,10 @@
<id>papermc</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
<repository>
<id>dmulloy2-repo</id>
<url>http://repo.dmulloy2.net/nexus/repository/public/</url>
</repository>
</repositories>
<build>

View file

@ -9,6 +9,8 @@ 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 {
@ -611,6 +613,7 @@ 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

@ -19,6 +19,8 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.MagmaCube;
import org.bukkit.entity.Slime;
import org.bukkit.event.block.BlockDispenseEvent;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
import org.bukkit.event.entity.EntitySpawnEvent;
@ -34,6 +36,15 @@ import com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent;
import com.destroystokyo.paper.event.entity.PreSpawnerSpawnEvent;
class EntitySpawn implements Listener {
@EventHandler
void onBlockDispense(BlockDispenseEvent event) {
try {
event.getItem().getItemMeta();
} catch (Exception exception) {
event.setCancelled(true);
}
}
@EventHandler
void onCreatureSpawn(CreatureSpawnEvent event) {
if (event.getSpawnReason() == SpawnReason.CUSTOM ||
@ -50,7 +61,8 @@ class EntitySpawn implements Listener {
}
}
if (event.getEntityType() == EntityType.DROWNED ||
/*if (event.getEntityType() == EntityType.ARMOR_STAND ||
event.getEntityType() == EntityType.DROWNED ||
event.getEntityType() == EntityType.GIANT ||
event.getEntityType() == EntityType.HUSK ||
event.getEntityType() == EntityType.PIG_ZOMBIE ||
@ -60,33 +72,28 @@ class EntitySpawn implements Listener {
event.getEntityType() == EntityType.WITHER_SKELETON ||
event.getEntityType() == EntityType.ZOMBIE ||
event.getEntityType() == EntityType.ZOMBIE_VILLAGER) {
final LivingEntity mob = event.getEntity();
final LivingEntity mob = (LivingEntity) event.getEntity();
try {
mob.getEquipment().getArmorContents();
} catch (Exception exception) {
mob.getEquipment().setArmorContents(
new ItemStack[] {
new ItemStack(Material.AIR),
new ItemStack(Material.AIR),
new ItemStack(Material.AIR),
new ItemStack(Material.AIR),
}
new ItemStack[] {null, null, null, null}
);
}
try {
mob.getEquipment().getItemInMainHand();
} catch (Exception exception) {
mob.getEquipment().setItemInMainHand(new ItemStack(Material.AIR));
mob.getEquipment().setItemInMainHand(null);
}
try {
mob.getEquipment().getItemInOffHand();
} catch (Exception exception) {
mob.getEquipment().setItemInOffHand(new ItemStack(Material.AIR));
mob.getEquipment().setItemInOffHand(null);
}
} else if (event.getEntityType() == EntityType.ENDER_DRAGON) {
} else */if (event.getEntityType() == EntityType.ENDER_DRAGON) {
final int dragonCount = event.getLocation().getWorld().getEntitiesByClass(EnderDragon.class).size();
if (dragonCount > 25) {
@ -120,6 +127,40 @@ class EntitySpawn implements Listener {
entity.remove();
}
}
/*if (event.getEntityType() == EntityType.ARMOR_STAND ||
event.getEntityType() == EntityType.DROWNED ||
event.getEntityType() == EntityType.GIANT ||
event.getEntityType() == EntityType.HUSK ||
event.getEntityType() == EntityType.PIG_ZOMBIE ||
event.getEntityType() == EntityType.PLAYER ||
event.getEntityType() == EntityType.SKELETON ||
event.getEntityType() == EntityType.STRAY ||
event.getEntityType() == EntityType.WITHER_SKELETON ||
event.getEntityType() == EntityType.ZOMBIE ||
event.getEntityType() == EntityType.ZOMBIE_VILLAGER) {
final LivingEntity mob = (LivingEntity) event.getEntity();
try {
mob.getEquipment().getArmorContents();
} catch (Exception exception) {
mob.getEquipment().setArmorContents(
new ItemStack[] {null, null, null, null}
);
}
try {
mob.getEquipment().getItemInMainHand();
} catch (Exception exception) {
mob.getEquipment().setItemInMainHand(null);
}
try {
mob.getEquipment().getItemInOffHand();
} catch (Exception exception) {
mob.getEquipment().setItemInOffHand(null);
}
}*/
}
}

View file

@ -8,7 +8,9 @@ import javax.net.ssl.HttpsURLConnection;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@ -21,6 +23,8 @@ 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 com.destroystokyo.paper.profile.PlayerProfile;
import com.destroystokyo.paper.profile.ProfileProperty;
@ -122,6 +126,7 @@ class PlayerConnection implements Listener {
@EventHandler
void onPlayerQuit(PlayerQuitEvent event) {
final Player player = event.getPlayer();
final World world = player.getLocation().getWorld();
main.commandMillisList.remove(player.getUniqueId());
main.interactMillisList.remove(player.getUniqueId());

View file

@ -0,0 +1,65 @@
/*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

@ -1,8 +1,9 @@
name: Extras
main: pw.kaboom.extras.Main
description: Plugin that adds extra functionality to the Kaboom.pw server.
description: Plugin that adds extra functionality to the server.
api-version: 1.13
version: master
#depends: [ProtocolLib]
commands:
clearchat: