Skip to content

Commit 9bfe2fb

Browse files
committed
improvements
1 parent e5d572c commit 9bfe2fb

7 files changed

Lines changed: 47 additions & 19 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.waterarchery</groupId>
88
<artifactId>LitLibs</artifactId>
9-
<version>1.1.31</version>
9+
<version>1.1.32</version>
1010
<packaging>jar</packaging>
1111

1212
<name>LitLibs</name>

src/main/java/me/waterarchery/litlibs/LitLibsPlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import io.github.retrooper.packetevents.factory.spigot.SpigotPacketEventsBuilder;
66
import lombok.Getter;
77
import me.waterarchery.litlibs.listeners.ChunkListeners;
8+
import me.waterarchery.litlibs.listeners.JoinLeaveListeners;
89
import me.waterarchery.litlibs.listeners.PacketListeners;
910
import me.waterarchery.litlibs.listeners.PluginDisabledListener;
1011
import me.waterarchery.litlibs.logger.LogSeverity;
@@ -54,6 +55,7 @@ public void onEnable() {
5455

5556
getServer().getPluginManager().registerEvents(new PluginDisabledListener(), this);
5657
getServer().getPluginManager().registerEvents(new ChunkListeners(), this);
58+
getServer().getPluginManager().registerEvents(new JoinLeaveListeners(), this);
5759
}
5860

5961
@Override

src/main/java/me/waterarchery/litlibs/handlers/SoundHandler.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
import com.cryptomorin.xseries.XSound;
44
import me.waterarchery.litlibs.LitLibs;
55
import me.waterarchery.litlibs.configuration.ConfigManager;
6-
import me.waterarchery.litlibs.logger.LogSeverity;
7-
import me.waterarchery.litlibs.logger.Logger;
8-
import org.bukkit.Sound;
96
import org.bukkit.configuration.file.FileConfiguration;
107
import org.bukkit.entity.Player;
118
import org.bukkit.plugin.Plugin;
@@ -30,15 +27,14 @@ public void sendSound(Player p, String configPath, double volume) {
3027
}
3128

3229
public void sendRawSound(Player p, String soundName, double volume, double pitch) {
33-
XSound xSound = XSound.valueOf(soundName);
34-
Sound sound = xSound.parseSound();
30+
try {
31+
XSound xSound = XSound.valueOf(soundName);
3532

36-
if (sound != null) {
37-
p.playSound(p.getLocation(), sound, (float) volume, (float) pitch);
33+
xSound.play(p, (float) volume, (float) pitch);
3834
}
39-
else {
40-
Logger logger = litLibs.getLogger();
41-
logger.log("Error in sound : " + soundName, LogSeverity.ERROR);
35+
catch (IllegalArgumentException e) {
36+
litLibs.getLogger().error("Error sound playing: " + soundName);
37+
e.printStackTrace();
4238
}
4339
}
4440

src/main/java/me/waterarchery/litlibs/impl/npc/NPC.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public void spawn(Player player) {
9292

9393
queuePacket(spawnPacket, player);
9494

95-
Bukkit.getScheduler().scheduleSyncDelayedTask(LitLibsPlugin.getInstance(), this::update, 5);
95+
Bukkit.getScheduler().scheduleSyncDelayedTask(LitLibsPlugin.getInstance(), this::update, 1);
9696
}
9797

9898
public void update() {
@@ -166,12 +166,10 @@ public void setGlowingColor(ChatColor color) {
166166
}
167167

168168
public void queuePacketSeeing(PacketWrapper<?> packet) {
169-
Runnable runnable = () -> {
170-
Bukkit.getOnlinePlayers().forEach(player -> {
171-
UUID playerUUID = player.getUniqueId();
172-
if (seeingPlayers.contains(playerUUID)) queuePacket(packet, player);
173-
});
174-
};
169+
Runnable runnable = () -> Bukkit.getOnlinePlayers().forEach(player -> {
170+
UUID playerUUID = player.getUniqueId();
171+
if (seeingPlayers.contains(playerUUID)) queuePacket(packet, player);
172+
});
175173

176174
npcHandler.getExecutor().submit(runnable);
177175
}

src/main/java/me/waterarchery/litlibs/listeners/ChunkListeners.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public void onNpcLoad(ChunkLoadEvent event) {
3838
continue;
3939
}
4040

41+
if (!npc.isDespawned()) continue;
4142
if (world.equalsIgnoreCase(npc.getWorldName()) && npc.getChunkX() == x && npc.getChunkZ() == z) npc.setDespawned(false);
4243
}
4344

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package me.waterarchery.litlibs.listeners;
2+
3+
import me.waterarchery.litlibs.handlers.NPCHandler;
4+
import me.waterarchery.litlibs.impl.npc.NPC;
5+
import org.bukkit.entity.Player;
6+
import org.bukkit.event.EventHandler;
7+
import org.bukkit.event.EventPriority;
8+
import org.bukkit.event.Listener;
9+
import org.bukkit.event.player.PlayerQuitEvent;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
13+
14+
public class JoinLeaveListeners implements Listener {
15+
16+
@EventHandler (ignoreCancelled = true, priority = EventPriority.HIGHEST)
17+
public void onPlayerLeave(PlayerQuitEvent event) {
18+
NPCHandler npcHandler = NPCHandler.getInstance();
19+
Player player = event.getPlayer();
20+
21+
List<NPC> clone = new ArrayList<>(npcHandler.getNpcs());
22+
clone.forEach(npc -> {
23+
if (npc == null) return;
24+
25+
npc.getSeeingPlayers().remove(player.getUniqueId());
26+
});
27+
}
28+
29+
}

src/main/java/me/waterarchery/litlibs/listeners/PacketListeners.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientInteractEntity;
77
import me.waterarchery.litlibs.LitLibsPlugin;
88
import me.waterarchery.litlibs.handlers.NPCHandler;
9+
import me.waterarchery.litlibs.impl.npc.NPC;
910
import org.bukkit.Bukkit;
1011
import org.bukkit.entity.Player;
1112

@@ -32,7 +33,8 @@ public void onPacketReceive(PacketReceiveEvent event) {
3233
recentlyClicked.add(player.getUniqueId());
3334
Bukkit.getScheduler().runTaskLater(LitLibsPlugin.getInstance(), () -> recentlyClicked.remove(player.getUniqueId()), 5);
3435

35-
npcHandler.getNpcs().stream()
36+
List<NPC> clone = new ArrayList<>(npcHandler.getNpcs());
37+
clone.stream()
3638
.filter(Objects::nonNull)
3739
.filter(npc -> npc.getEntityId() == entityId)
3840
.forEach(npc -> npc.execute(player));

0 commit comments

Comments
 (0)