mirror of
https://github.com/Xiao-MoMi/Custom-Crops.git
synced 2025-12-25 09:59:20 +00:00
2.2.0
This commit is contained in:
@@ -19,6 +19,8 @@ package net.momirealms.customcrops;
|
||||
|
||||
import com.comphenix.protocol.ProtocolLibrary;
|
||||
import com.comphenix.protocol.ProtocolManager;
|
||||
import de.tr7zw.changeme.nbtapi.utils.MinecraftVersion;
|
||||
import de.tr7zw.changeme.nbtapi.utils.VersionChecker;
|
||||
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
|
||||
import net.momirealms.customcrops.commands.PluginCommand;
|
||||
import net.momirealms.customcrops.config.ConfigUtil;
|
||||
@@ -31,6 +33,7 @@ import net.momirealms.customcrops.utils.AdventureUtil;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.kingdoms.main.ConfigManager;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -38,6 +41,7 @@ public final class CustomCrops extends JavaPlugin {
|
||||
|
||||
public static BukkitAudiences adventure;
|
||||
public static CustomCrops plugin;
|
||||
public static String version;
|
||||
public static ProtocolManager protocolManager;
|
||||
|
||||
private PlaceholderManager placeholderManager;
|
||||
@@ -78,8 +82,15 @@ public final class CustomCrops extends JavaPlugin {
|
||||
|
||||
adventure = BukkitAudiences.create(plugin);
|
||||
protocolManager = ProtocolLibrary.getProtocolManager();
|
||||
version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
|
||||
AdventureUtil.consoleMessage("[CustomCrops] Running on <white>" + Bukkit.getVersion());
|
||||
|
||||
MinecraftVersion.disableBStats();
|
||||
MinecraftVersion.disablePackageWarning();
|
||||
MinecraftVersion.disableUpdateCheck();
|
||||
MinecraftVersion.getVersion();
|
||||
VersionChecker.hideOk = true;
|
||||
|
||||
if (Bukkit.getPluginManager().getPlugin("ItemsAdder") != null) {
|
||||
MainConfig.customPlugin = "itemsadder";
|
||||
AdventureUtil.consoleMessage("[CustomCrops] Custom Item Plugin Platform: <#BA55D3><u>ItemsAdder");
|
||||
@@ -107,7 +118,10 @@ public final class CustomCrops extends JavaPlugin {
|
||||
}
|
||||
|
||||
AdventureUtil.consoleMessage("[CustomCrops] Plugin Enabled!");
|
||||
new Metrics(this, 16593);
|
||||
|
||||
if (MainConfig.metrics) {
|
||||
new Metrics(this, 16593);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -126,12 +126,14 @@ public class MainConfig {
|
||||
public static int saveInterval;
|
||||
public static boolean dryMakesCropDead;
|
||||
public static double dryDeadChance;
|
||||
public static boolean metrics;
|
||||
|
||||
public static void load() {
|
||||
ConfigUtil.update("config.yml");
|
||||
YamlConfiguration config = ConfigUtil.getConfig("config.yml");
|
||||
|
||||
lang = config.getString("lang","english");
|
||||
metrics = config.getBoolean("metrics", true);
|
||||
|
||||
whiteOrBlack = config.getString("worlds.mode","whitelist").equals("whitelist");
|
||||
worldNameList = config.getStringList("worlds.list");
|
||||
|
||||
@@ -50,53 +50,28 @@ public class CrowTask extends BukkitRunnable {
|
||||
Location relative = crop.clone().subtract(from);
|
||||
this.vectorDown = new Vector(relative.getX() / 100, -0.1, relative.getZ() / 100);
|
||||
this.vectorUp = new Vector(relative.getX() / 100, 0.1, relative.getZ() / 100);
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getSpawnPacket(entityID, from));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getMetaPacket(entityID));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getEquipPacket(entityID, armorStandUtil.getCropManager().getCustomInterface().getItemStack(BasicItemConfig.crowFly)));
|
||||
}
|
||||
catch (InvocationTargetException ignore) {
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getSpawnPacket(entityID, from));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getMetaPacket(entityID));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getEquipPacket(entityID, armorStandUtil.getCropManager().getCustomInterface().getItemStack(BasicItemConfig.crowFly)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
timer++;
|
||||
if (timer < 100) {
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getTeleportPacket(entityID, from.add(vectorDown), yaw));
|
||||
}
|
||||
catch (InvocationTargetException e) {
|
||||
//release
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getTeleportPacket(entityID, from.add(vectorDown), yaw));
|
||||
}
|
||||
else if (timer == 100){
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getEquipPacket(entityID, armorStandUtil.getCropManager().getCustomInterface().getItemStack(BasicItemConfig.crowLand)));
|
||||
}
|
||||
catch (InvocationTargetException ignore) {
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getEquipPacket(entityID, armorStandUtil.getCropManager().getCustomInterface().getItemStack(BasicItemConfig.crowLand)));
|
||||
}
|
||||
else if (timer == 150) {
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getEquipPacket(entityID, armorStandUtil.getCropManager().getCustomInterface().getItemStack(BasicItemConfig.crowFly)));
|
||||
}
|
||||
catch (InvocationTargetException ignore) {
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getEquipPacket(entityID, armorStandUtil.getCropManager().getCustomInterface().getItemStack(BasicItemConfig.crowFly)));
|
||||
}
|
||||
else if (timer > 150) {
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getTeleportPacket(entityID, from.add(vectorUp), yaw));
|
||||
}
|
||||
catch (InvocationTargetException ignore) {
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getTeleportPacket(entityID, from.add(vectorUp), yaw));
|
||||
}
|
||||
if (timer > 300) {
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getDestroyPacket(entityID));
|
||||
}
|
||||
catch (InvocationTargetException ignore) {
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, armorStandUtil.getDestroyPacket(entityID));
|
||||
cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,9 @@ import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.events.PacketContainer;
|
||||
import com.comphenix.protocol.wrappers.EnumWrappers;
|
||||
import com.comphenix.protocol.wrappers.Pair;
|
||||
import com.comphenix.protocol.wrappers.WrappedDataValue;
|
||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.momirealms.customcrops.CustomCrops;
|
||||
import net.momirealms.customcrops.config.BasicItemConfig;
|
||||
import net.momirealms.customcrops.config.MainConfig;
|
||||
@@ -33,10 +35,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
|
||||
public class ArmorStandUtil {
|
||||
|
||||
@@ -52,20 +51,12 @@ public class ArmorStandUtil {
|
||||
|
||||
public void playWaterAnimation(Player player, Location location) {
|
||||
int id = new Random().nextInt(1000000000);
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getSpawnPacket(id, location));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getMetaPacket(id));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getEquipPacket(id, cropManager.getCustomInterface().getItemStack(BasicItemConfig.waterEffect)));
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getSpawnPacket(id, location));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getMetaPacket(id));
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getEquipPacket(id, cropManager.getCustomInterface().getItemStack(BasicItemConfig.waterEffect)));
|
||||
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(CustomCrops.plugin, () -> {
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getDestroyPacket(id));
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
CustomCrops.protocolManager.sendServerPacket(player, getDestroyPacket(id));
|
||||
}, MainConfig.timeToWork/2);
|
||||
}
|
||||
|
||||
@@ -99,7 +90,17 @@ public class ArmorStandUtil {
|
||||
public PacketContainer getMetaPacket(int id) {
|
||||
PacketContainer metaPacket = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA);
|
||||
metaPacket.getIntegers().write(0, id);
|
||||
metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher().getWatchableObjects());
|
||||
if (CustomCrops.version.equals("v1_19_R2")) {
|
||||
WrappedDataWatcher wrappedDataWatcher = createDataWatcher();
|
||||
List<WrappedDataValue> wrappedDataValueList = Lists.newArrayList();
|
||||
wrappedDataWatcher.getWatchableObjects().stream().filter(Objects::nonNull).forEach(entry -> {
|
||||
final WrappedDataWatcher.WrappedDataWatcherObject dataWatcherObject = entry.getWatcherObject();
|
||||
wrappedDataValueList.add(new WrappedDataValue(dataWatcherObject.getIndex(), dataWatcherObject.getSerializer(), entry.getRawValue()));
|
||||
});
|
||||
metaPacket.getDataValueCollectionModifier().write(0, wrappedDataValueList);
|
||||
} else {
|
||||
metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher().getWatchableObjects());
|
||||
}
|
||||
return metaPacket;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@ package net.momirealms.customcrops.utils;
|
||||
import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.events.PacketContainer;
|
||||
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||
import com.comphenix.protocol.wrappers.WrappedDataValue;
|
||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
@@ -65,7 +67,18 @@ public class HologramUtil {
|
||||
wrappedDataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(0, serializer2), mask1);
|
||||
wrappedDataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(15, serializer2), mask2);
|
||||
metaPacket.getModifier().write(0,id);
|
||||
metaPacket.getWatchableCollectionModifier().write(0, wrappedDataWatcher.getWatchableObjects());
|
||||
|
||||
if (CustomCrops.version.equals("v1_19_R2")) {
|
||||
List<WrappedDataValue> wrappedDataValueList = Lists.newArrayList();
|
||||
wrappedDataWatcher.getWatchableObjects().stream().filter(Objects::nonNull).forEach(entry -> {
|
||||
final WrappedDataWatcher.WrappedDataWatcherObject dataWatcherObject = entry.getWatcherObject();
|
||||
wrappedDataValueList.add(new WrappedDataValue(dataWatcherObject.getIndex(), dataWatcherObject.getSerializer(), entry.getRawValue()));
|
||||
});
|
||||
metaPacket.getDataValueCollectionModifier().write(0, wrappedDataValueList);
|
||||
} else {
|
||||
metaPacket.getWatchableCollectionModifier().write(0, wrappedDataWatcher.getWatchableObjects());
|
||||
}
|
||||
|
||||
try {
|
||||
CustomCrops.protocolManager.sendServerPacket(player, spawnPacket);
|
||||
CustomCrops.protocolManager.sendServerPacket(player, metaPacket);
|
||||
|
||||
Reference in New Issue
Block a user