- Баллы
- 21
Нашел в американском источнике https://www.spigotmc.org/threads/smooth-sped-up-furnace-cook-time.322917/ готовый код на изменение плавки каждого предмета.
Попытался создать плагин.
Вот код:
private static List<BlockVector> boosted = new ArrayList<>();
@EventHandler
public void onFurnace(FurnaceBurnEvent event)
{
if (!(boosted.contains(event.getBlock().getLocation().toVector().toBlockVector())))
{
boosted.add(event.getBlock().getLocation().toVector().toBlockVector());
new BukkitRunnable()
{
private short speedUp = 20;
@Override
public void run()
{
Furnace furnace = (Furnace) event.getBlock().getState();
if (furnace.getInventory().getSmelting() != null && furnace.getInventory().getSmelting().getType() != Material.AIR
&& (furnace.getCookTime() > 0 || furnace.getBurnTime() > 0)) {
furnace.setCookTime((short) (furnace.getCookTime() + speedUp));
short burnTime = (short) (furnace.getBurnTime() - speedUp + speedUp / 10); // *PLAY WITH THIS*
furnace.setBurnTime(burnTime);
furnace.update();
if (furnace.getInventory().getViewers().size() > 0) {
int windowID = ((CraftPlayer) furnace.getInventory().getViewers().get(0)).getHandle().activeContainer.windowId;
PacketContainer max = new PacketContainer(PacketType.Play.Server.WINDOW_DATA);
max.getIntegers().writeDefaults();
max.getIntegers().write(0, windowID);
max.getIntegers().write(1, 1);
max.getIntegers().write(2, getBurnTime(event.getFuel().getType()));
PacketContainer current = new PacketContainer(PacketType.Play.Server.WINDOW_DATA);
current.getIntegers().writeDefaults();
current.getIntegers().write(0, windowID);
current.getIntegers().write(1, 0);
int fraction = (burnTime * 100 / getBurnTime(event.getFuel().getType()));
Bukkit.getPlayer("GreatThane").sendMessage(String.valueOf(fraction));
current.getIntegers().write(2, fraction);
for (HumanEntity human : furnace.getInventory().getViewers()) {
try {
protocolManager.sendServerPacket((Player) human, max);
protocolManager.sendServerPacket((Player) human, current);
} catch (InvocationTargetException e) {
throw new RuntimeException("Cannot receive packet.", e);
}
}
}
} else {
boosted.remove(event.getBlock().getLocation().toVector().toBlockVector());
cancel();
}
}
}.runTaskTimer(this, 0, 1);
}
}
private static int getBurnTime(Material fuel) {
switch (fuel) {
case LAVA_BUCKET:
return 20000;
case COAL_BLOCK:
return 16000;
case COAL:
return 1600;
case BLAZE_ROD:
return 2400;
case BOAT:
case BOAT_BIRCH:
case BOAT_ACACIA:
case BOAT_JUNGLE:
case BOAT_SPRUCE:
case BOAT_DARK_OAK:
return 400;
case LOG:
case LOG_2:
case WOOD:
case WOOD_PLATE:
case FENCE:
case FENCE_GATE:
case BIRCH_FENCE:
case ACACIA_FENCE:
case SPRUCE_FENCE:
case JUNGLE_FENCE:
case DARK_OAK_FENCE:
case BIRCH_FENCE_GATE:
case JUNGLE_FENCE_GATE:
case ACACIA_FENCE_GATE:
case SPRUCE_FENCE_GATE:
case DARK_OAK_FENCE_GATE:
case WOOD_STAIRS:
case BIRCH_WOOD_STAIRS:
case DARK_OAK_STAIRS:
case ACACIA_STAIRS:
case SPRUCE_WOOD_STAIRS:
case JUNGLE_WOOD_STAIRS:
case TRAP_DOOR:
case WORKBENCH:
case BOOKSHELF:
case CHEST:
case TRAPPED_CHEST:
case DAYLIGHT_DETECTOR:
case DAYLIGHT_DETECTOR_INVERTED:
case JUKEBOX:
case NOTE_BLOCK:
case HUGE_MUSHROOM_1:
case HUGE_MUSHROOM_2:
case BANNER:
case WALL_BANNER:
case STANDING_BANNER:
case WOOD_DOUBLE_STEP:
case BOW:
case FISHING_ROD:
case LADDER:
return 300;
case WOOD_SPADE:
case WOOD_HOE:
case WOOD_AXE:
case WOOD_SWORD:
case SIGN:
case SIGN_POST:
case WOOD_DOOR:
case BIRCH_DOOR:
case ACACIA_DOOR:
case JUNGLE_DOOR:
case SPRUCE_DOOR:
case WOODEN_DOOR:
case DARK_OAK_DOOR:
case BIRCH_DOOR_ITEM:
case ACACIA_DOOR_ITEM:
case JUNGLE_DOOR_ITEM:
case SPRUCE_DOOR_ITEM:
case DARK_OAK_DOOR_ITEM:
case WOOD_PICKAXE:
return 200;
case WOOD_STEP:
return 150;
case BOWL:
case STICK:
case WOOD_BUTTON:
case SAPLING:
case WOOL:
return 100;
case CARPET:
return 67;
default:
return 1600;
}
Возникает ошибка:
[16:42:24 WARN]: Legacy plugin LUMIK_PLUGIN v1.0 does not specify an api-version.
[16:42:24 ERROR]: Fatal error trying to convert LUMIK_PLUGIN v1.0:me/LUMIK69/LUMIK_PLUGIN/LUMIK_PLUGIN.class
java.lang.IllegalArgumentException: Unsupported class file major version 10794
at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.<init>(ClassReader.java:196) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.<init>(ClassReader.java:177) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.<init>(ClassReader.java:163) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.util.Commodore.convert(Commodore.java:171) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.util.CraftMagicNumbers.processClass(CraftMagicNumbers.java:364) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:155) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:216) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:122) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:111) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_281]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_281]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:79) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:137) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:397) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:305) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:389) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:251) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1055) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
[16:42:24 ERROR]: Could not load 'plugins\LUMIK_PLUGIN.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ClassFormatError: Incompatible magic value 791292458 in class file me/LUMIK69/LUMIK_PLUGIN/LUMIK_PLUGIN
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:141) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:397) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:305) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:389) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:251) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1055) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
Caused by: java.lang.ClassFormatError: Incompatible magic value 791292458 in class file me/LUMIK69/LUMIK_PLUGIN/LUMIK_PLUGIN
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_281]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_281]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_281]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:178) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:216) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:122) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:111) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_281]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_281]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:79) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:137) ~[patched_1.16.5.jar:git-Paper-570]
... 7 more
Прошу очень помочь или скинуть исправленный вид, т.к. очень мечтаю добавить этот плагин.
Горе плагин скинул ниже
Попытался создать плагин.
Вот код:
private static List<BlockVector> boosted = new ArrayList<>();
@EventHandler
public void onFurnace(FurnaceBurnEvent event)
{
if (!(boosted.contains(event.getBlock().getLocation().toVector().toBlockVector())))
{
boosted.add(event.getBlock().getLocation().toVector().toBlockVector());
new BukkitRunnable()
{
private short speedUp = 20;
@Override
public void run()
{
Furnace furnace = (Furnace) event.getBlock().getState();
if (furnace.getInventory().getSmelting() != null && furnace.getInventory().getSmelting().getType() != Material.AIR
&& (furnace.getCookTime() > 0 || furnace.getBurnTime() > 0)) {
furnace.setCookTime((short) (furnace.getCookTime() + speedUp));
short burnTime = (short) (furnace.getBurnTime() - speedUp + speedUp / 10); // *PLAY WITH THIS*
furnace.setBurnTime(burnTime);
furnace.update();
if (furnace.getInventory().getViewers().size() > 0) {
int windowID = ((CraftPlayer) furnace.getInventory().getViewers().get(0)).getHandle().activeContainer.windowId;
PacketContainer max = new PacketContainer(PacketType.Play.Server.WINDOW_DATA);
max.getIntegers().writeDefaults();
max.getIntegers().write(0, windowID);
max.getIntegers().write(1, 1);
max.getIntegers().write(2, getBurnTime(event.getFuel().getType()));
PacketContainer current = new PacketContainer(PacketType.Play.Server.WINDOW_DATA);
current.getIntegers().writeDefaults();
current.getIntegers().write(0, windowID);
current.getIntegers().write(1, 0);
int fraction = (burnTime * 100 / getBurnTime(event.getFuel().getType()));
Bukkit.getPlayer("GreatThane").sendMessage(String.valueOf(fraction));
current.getIntegers().write(2, fraction);
for (HumanEntity human : furnace.getInventory().getViewers()) {
try {
protocolManager.sendServerPacket((Player) human, max);
protocolManager.sendServerPacket((Player) human, current);
} catch (InvocationTargetException e) {
throw new RuntimeException("Cannot receive packet.", e);
}
}
}
} else {
boosted.remove(event.getBlock().getLocation().toVector().toBlockVector());
cancel();
}
}
}.runTaskTimer(this, 0, 1);
}
}
private static int getBurnTime(Material fuel) {
switch (fuel) {
case LAVA_BUCKET:
return 20000;
case COAL_BLOCK:
return 16000;
case COAL:
return 1600;
case BLAZE_ROD:
return 2400;
case BOAT:
case BOAT_BIRCH:
case BOAT_ACACIA:
case BOAT_JUNGLE:
case BOAT_SPRUCE:
case BOAT_DARK_OAK:
return 400;
case LOG:
case LOG_2:
case WOOD:
case WOOD_PLATE:
case FENCE:
case FENCE_GATE:
case BIRCH_FENCE:
case ACACIA_FENCE:
case SPRUCE_FENCE:
case JUNGLE_FENCE:
case DARK_OAK_FENCE:
case BIRCH_FENCE_GATE:
case JUNGLE_FENCE_GATE:
case ACACIA_FENCE_GATE:
case SPRUCE_FENCE_GATE:
case DARK_OAK_FENCE_GATE:
case WOOD_STAIRS:
case BIRCH_WOOD_STAIRS:
case DARK_OAK_STAIRS:
case ACACIA_STAIRS:
case SPRUCE_WOOD_STAIRS:
case JUNGLE_WOOD_STAIRS:
case TRAP_DOOR:
case WORKBENCH:
case BOOKSHELF:
case CHEST:
case TRAPPED_CHEST:
case DAYLIGHT_DETECTOR:
case DAYLIGHT_DETECTOR_INVERTED:
case JUKEBOX:
case NOTE_BLOCK:
case HUGE_MUSHROOM_1:
case HUGE_MUSHROOM_2:
case BANNER:
case WALL_BANNER:
case STANDING_BANNER:
case WOOD_DOUBLE_STEP:
case BOW:
case FISHING_ROD:
case LADDER:
return 300;
case WOOD_SPADE:
case WOOD_HOE:
case WOOD_AXE:
case WOOD_SWORD:
case SIGN:
case SIGN_POST:
case WOOD_DOOR:
case BIRCH_DOOR:
case ACACIA_DOOR:
case JUNGLE_DOOR:
case SPRUCE_DOOR:
case WOODEN_DOOR:
case DARK_OAK_DOOR:
case BIRCH_DOOR_ITEM:
case ACACIA_DOOR_ITEM:
case JUNGLE_DOOR_ITEM:
case SPRUCE_DOOR_ITEM:
case DARK_OAK_DOOR_ITEM:
case WOOD_PICKAXE:
return 200;
case WOOD_STEP:
return 150;
case BOWL:
case STICK:
case WOOD_BUTTON:
case SAPLING:
case WOOL:
return 100;
case CARPET:
return 67;
default:
return 1600;
}
Возникает ошибка:
[16:42:24 WARN]: Legacy plugin LUMIK_PLUGIN v1.0 does not specify an api-version.
[16:42:24 ERROR]: Fatal error trying to convert LUMIK_PLUGIN v1.0:me/LUMIK69/LUMIK_PLUGIN/LUMIK_PLUGIN.class
java.lang.IllegalArgumentException: Unsupported class file major version 10794
at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.<init>(ClassReader.java:196) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.<init>(ClassReader.java:177) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.<init>(ClassReader.java:163) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.util.Commodore.convert(Commodore.java:171) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.util.CraftMagicNumbers.processClass(CraftMagicNumbers.java:364) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:155) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:216) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:122) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:111) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_281]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_281]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:79) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:137) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:397) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:305) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:389) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:251) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1055) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
[16:42:24 ERROR]: Could not load 'plugins\LUMIK_PLUGIN.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ClassFormatError: Incompatible magic value 791292458 in class file me/LUMIK69/LUMIK_PLUGIN/LUMIK_PLUGIN
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:141) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:397) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:305) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:389) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:251) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1055) ~[patched_1.16.5.jar:git-Paper-570]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
Caused by: java.lang.ClassFormatError: Incompatible magic value 791292458 in class file me/LUMIK69/LUMIK_PLUGIN/LUMIK_PLUGIN
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_281]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_281]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_281]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:178) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:216) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:122) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:111) ~[patched_1.16.5.jar:git-Paper-570]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_281]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_281]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_281]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:79) ~[patched_1.16.5.jar:git-Paper-570]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:137) ~[patched_1.16.5.jar:git-Paper-570]
... 7 more
Прошу очень помочь или скинуть исправленный вид, т.к. очень мечтаю добавить этот плагин.
Горе плагин скинул ниже

