Skip to content

Commit e560bb2

Browse files
author
BuildTools
committed
added check for creeper
1 parent d01847a commit e560bb2

File tree

6 files changed

+99
-72
lines changed

6 files changed

+99
-72
lines changed

build.gradle

Lines changed: 0 additions & 57 deletions
This file was deleted.

build.gradle.kts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2+
3+
plugins {
4+
java
5+
id("com.github.johnrengelman.shadow") version "7.0.0"
6+
id("io.papermc.paperweight.userdev") version "1.3.9-SNAPSHOT"
7+
}
8+
9+
group = "com.azortis"
10+
version = "1.0.0"
11+
12+
repositories {
13+
mavenCentral()
14+
maven {
15+
url = uri("https://papermc.io/repo/repository/maven-public/")
16+
}
17+
maven {
18+
url = uri("https://oss.sonatype.org/content/groups/public/")
19+
}
20+
maven {
21+
url = uri("https://maven.enginehub.org/repo/")
22+
}
23+
}
24+
25+
dependencies {
26+
paperDevBundle("1.19-R0.1-SNAPSHOT")
27+
compileOnly("com.sk89q.worldguard:worldguard-bukkit:7.0.7")
28+
compileOnly("net.kyori:adventure-api:4.11.0")
29+
implementation("cloud.commandframework:cloud-core:1.7.0")
30+
implementation("cloud.commandframework:cloud-paper:1.7.0")
31+
implementation("cloud.commandframework:cloud-annotations:1.7.0")
32+
}
33+
34+
java {
35+
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
36+
}
37+
38+
tasks {
39+
named<ShadowJar>("shadowJar") {
40+
mergeServiceFiles()
41+
}
42+
}
43+
44+
tasks {
45+
build {
46+
dependsOn(shadowJar)
47+
dependsOn(reobfJar)
48+
}
49+
}

settings.gradle

Lines changed: 0 additions & 1 deletion
This file was deleted.

settings.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
rootProject.name = "CombatLog"
2+
3+
pluginManagement {
4+
repositories {
5+
gradlePluginPortal()
6+
maven("https://papermc.io/repo/repository/maven-public/")
7+
}
8+
}
Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
package com.azortis.combatlog.listener;
22

33
import com.azortis.combatlog.managers.CombatManager;
4-
import org.bukkit.entity.EntityType;
5-
import org.bukkit.entity.Player;
6-
import org.bukkit.entity.Projectile;
4+
import org.bukkit.Bukkit;
5+
import org.bukkit.Location;
6+
import org.bukkit.Material;
7+
import org.bukkit.entity.*;
78
import org.bukkit.event.EventHandler;
89
import org.bukkit.event.EventPriority;
910
import org.bukkit.event.Listener;
11+
import org.bukkit.event.entity.CreatureSpawnEvent;
1012
import org.bukkit.event.entity.EntityDamageByBlockEvent;
1113
import org.bukkit.event.entity.EntityDamageByEntityEvent;
1214
import org.bukkit.event.entity.EntityDamageEvent;
13-
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
14-
import org.bukkit.event.player.PlayerJoinEvent;
15-
import org.bukkit.event.player.PlayerQuitEvent;
16-
import org.bukkit.event.player.PlayerTeleportEvent;
15+
import org.bukkit.event.player.*;
16+
import org.bukkit.inventory.ItemStack;
17+
18+
import java.util.*;
1719

1820
public class CombatListener implements Listener {
1921
private final CombatManager manager;
20-
22+
private Map<UUID, Set<Creeper>> creeperSpawner = new HashMap<>();
2123
public CombatListener(CombatManager manager) {
2224
this.manager = manager;
2325
}
@@ -27,8 +29,6 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
2729
if (event.getEntityType() != EntityType.PLAYER) return;
2830
Player player = (Player) event.getEntity();
2931
Player damager = null;
30-
31-
3232
switch (event.getCause()) {
3333
case MAGIC:
3434
case PROJECTILE:
@@ -43,7 +43,10 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
4343
damager = (Player) event.getDamager();
4444
break;
4545
case ENTITY_EXPLOSION:
46-
// todo: track who spawns creepers
46+
if (event.getDamager().getType() != EntityType.CREEPER) return;
47+
for(Player spawner : Bukkit.getOnlinePlayers()) {
48+
if(creeperSpawner.get(spawner.getUniqueId()).contains(event.getDamager())) damager = spawner;
49+
}
4750
break;
4851
default:
4952
break;
@@ -56,30 +59,47 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
5659

5760
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
5861
public void onEntityDamageEvent(EntityDamageEvent event) {
59-
6062
}
6163

6264
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
6365
public void onEntityBlockDamageEvent(EntityDamageByBlockEvent event) {
64-
66+
if(event.getEntity().getType() != EntityType.PLAYER) return;
6567
}
6668

6769
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
6870
public void onPlayerTeleport(PlayerTeleportEvent event) {
71+
6972
}
7073

7174
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
7275
public void onPlayerJoin(PlayerJoinEvent event) {
76+
7377
}
7478

7579
@EventHandler(priority = EventPriority.MONITOR)
7680
public void onPlayerLeave(PlayerQuitEvent event) {
81+
creeperSpawner.remove(event.getPlayer().getUniqueId());
7782
}
7883

7984
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
8085
public void onPlayerCommand(PlayerCommandPreprocessEvent event) {
8186

8287
}
8388

89+
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
90+
public void onPlayerInteract(PlayerInteractEvent event) {
91+
if(event.getItem().getType() == Material.CREEPER_SPAWN_EGG) return;
92+
if(event.getClickedBlock().getType() == Material.AIR) return;
93+
Creeper creeper = (Creeper) event.getPlayer().getWorld().spawnEntity(event.getClickedBlock().getLocation().add(0, 1, 0), EntityType.CREEPER, CreatureSpawnEvent.SpawnReason.EGG);
94+
Player player = event.getPlayer();
95+
if (!creeperSpawner.containsKey(player.getUniqueId())) creeperSpawner.put(player.getUniqueId(), new HashSet<>());
96+
creeperSpawner.get(player.getUniqueId()).add(creeper);
97+
}
8498

85-
}
99+
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
100+
public void onEntitySpawn(CreatureSpawnEvent event) {
101+
if(event.getSpawnReason() != CreatureSpawnEvent.SpawnReason.EGG) return;
102+
if(event.getEntity().getType() != EntityType.CREEPER) return;
103+
if(!(creeperSpawner.containsKey(event.getLocation()))) return;
104+
}
105+
}

src/main/java/com/azortis/combatlog/managers/CombatManager.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@
55
import org.bukkit.Bukkit;
66
import org.bukkit.entity.Player;
77

8+
import java.util.HashMap;
9+
import java.util.Map;
10+
import java.util.UUID;
11+
812
public class CombatManager {
913
private final CombatLog plugin;
1014

15+
public Map<UUID, Integer> combatTimer = new HashMap<>();
16+
1117
public CombatManager(CombatLog plugin) {
1218
this.plugin = plugin;
1319

@@ -19,5 +25,7 @@ public CombatManager(CombatLog plugin) {
1925

2026
public void processAttack(Player damaged, Player damager) {
2127
// todo: do this
28+
combatTimer.put(damaged.getUniqueId(), 30);
29+
combatTimer.put(damager.getUniqueId(), 30);
2230
}
2331
}

0 commit comments

Comments
 (0)