mirror of
https://github.com/TotalFreedomMC/VulnerabilityPatcher.git
synced 2024-05-26 14:41:19 +00:00
75 lines
2.6 KiB
Java
75 lines
2.6 KiB
Java
package me.cooljwb.vulnerabilitypatcher.patches;
|
|
|
|
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
|
|
import org.bukkit.block.Container;
|
|
import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.block.BlockDispenseEvent;
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
|
|
/*
|
|
* Copyright 2019 CoolJWB
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
* @author CoolJWB
|
|
*/
|
|
|
|
public class Crash_Egg extends Patches implements Listener {
|
|
|
|
private Logger log = Logger.getLogger("Minecraft");
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onBlockDispenseEvent(BlockDispenseEvent event) {
|
|
ItemStack item = event.getItem();
|
|
|
|
if(item != null) {
|
|
if (isCrashEgg(item)) {
|
|
event.setCancelled(true);
|
|
Container container = (Container) event.getBlock().getState();
|
|
|
|
for(int c = 0; c < container.getInventory().getSize(); c++) {
|
|
if(container.getInventory().getItem(c) != null) {
|
|
if (container.getInventory().getItem(c).isSimilar(event.getItem()))
|
|
container.getInventory().getItem(c).setItemMeta(null);
|
|
}
|
|
}
|
|
|
|
notifyViolation(event.getBlock().getType().name(), "drop", "crash egg", event.getBlock().getLocation());
|
|
}
|
|
}
|
|
|
|
if(devmode)
|
|
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
|
}
|
|
|
|
public boolean isCrashEgg(ItemStack item) {
|
|
if(item != null) {
|
|
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
|
|
|
|
if(nmsItemStack != null && nmsItemStack.getTag() != null) {
|
|
if(nmsItemStack.getTag().getCompound("EntityTag").getString("id").equalsIgnoreCase("minecraft:lightning_bolt"))
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|