Skip to content

Commit 25404d6

Browse files
committed
Fix fire extinguishing (only on Spigot servers)
Fixes #274
1 parent b340c72 commit 25404d6

File tree

3 files changed

+45
-5
lines changed

3 files changed

+45
-5
lines changed

bukkit/src/main/java/nl/matsv/viabackwards/BukkitPlugin.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
package nl.matsv.viabackwards;
1212

1313
import nl.matsv.viabackwards.api.ViaBackwardsPlatform;
14+
import nl.matsv.viabackwards.listener.FireExtinguishListener;
1415
import nl.matsv.viabackwards.listener.LecternInteractListener;
1516
import org.bukkit.plugin.java.JavaPlugin;
1617
import us.myles.ViaVersion.api.Via;
@@ -27,8 +28,11 @@ public void onEnable() {
2728
}
2829

2930
private void onServerLoaded() {
30-
if (ProtocolRegistry.SERVER_PROTOCOL >= ProtocolVersion.v1_14.getId()) {
31-
BukkitViaLoader loader = (BukkitViaLoader) Via.getManager().getLoader();
31+
BukkitViaLoader loader = (BukkitViaLoader) Via.getManager().getLoader();
32+
if (ProtocolRegistry.SERVER_PROTOCOL >= ProtocolVersion.v1_16.getVersion()) {
33+
loader.storeListener(new FireExtinguishListener(this)).register();
34+
}
35+
if (ProtocolRegistry.SERVER_PROTOCOL >= ProtocolVersion.v1_14.getVersion()) {
3236
loader.storeListener(new LecternInteractListener(this)).register();
3337
}
3438
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package nl.matsv.viabackwards.listener;
2+
3+
import nl.matsv.viabackwards.BukkitPlugin;
4+
import nl.matsv.viabackwards.protocol.protocol1_15_2to1_16.Protocol1_15_2To1_16;
5+
import org.bukkit.Material;
6+
import org.bukkit.block.Block;
7+
import org.bukkit.entity.Player;
8+
import org.bukkit.event.EventHandler;
9+
import org.bukkit.event.EventPriority;
10+
import org.bukkit.event.block.Action;
11+
import org.bukkit.event.player.PlayerInteractEvent;
12+
import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener;
13+
14+
public class FireExtinguishListener extends ViaBukkitListener {
15+
16+
public FireExtinguishListener(BukkitPlugin plugin) {
17+
super(plugin, Protocol1_15_2To1_16.class);
18+
}
19+
20+
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
21+
public void onLecternInteract(PlayerInteractEvent event) {
22+
if (event.getAction() != Action.LEFT_CLICK_BLOCK) return;
23+
24+
Block block = event.getClickedBlock();
25+
if (block == null) return;
26+
27+
Player player = event.getPlayer();
28+
if (!isOnPipe(player)) return;
29+
30+
Block relative = block.getRelative(event.getBlockFace());
31+
if (relative.getType() == Material.FIRE) {
32+
event.setCancelled(true);
33+
relative.setType(Material.AIR);
34+
}
35+
}
36+
}

bukkit/src/main/java/nl/matsv/viabackwards/listener/LecternInteractListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ public LecternInteractListener(BukkitPlugin plugin) {
2121

2222
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
2323
public void onLecternInteract(PlayerInteractEvent event) {
24-
Player player = event.getPlayer();
25-
if (!isOnPipe(player)) return;
26-
2724
Block block = event.getClickedBlock();
2825
if (block == null || block.getType() != Material.LECTERN) return;
2926

27+
Player player = event.getPlayer();
28+
if (!isOnPipe(player)) return;
29+
3030
Lectern lectern = (Lectern) block.getState();
3131
ItemStack book = lectern.getInventory().getItem(0);
3232
if (book == null) return;

0 commit comments

Comments
 (0)