diff --git a/buildSrc/src/main/kotlin/su/plo/voice/shadow.gradle.kts b/buildSrc/src/main/kotlin/su/plo/voice/shadow.gradle.kts index 0fe8ea8e7..ff8551d87 100644 --- a/buildSrc/src/main/kotlin/su/plo/voice/shadow.gradle.kts +++ b/buildSrc/src/main/kotlin/su/plo/voice/shadow.gradle.kts @@ -103,7 +103,13 @@ tasks { manifest { from({ zipTree(archiveFile).first { it.name == "MANIFEST.MF" } - }) + }) { + eachEntry { + if (key == "Multi-Release") { + exclude() + } + } + } } from(rootProject.file("LICENSE")) { diff --git a/client/changelog.md b/client/changelog.md index 855c97be0..e6bad5a3c 100644 --- a/client/changelog.md +++ b/client/changelog.md @@ -1,18 +1,4 @@ -### Changes in 2.1.7 -#### Client -- Fixed crash on latest versions of NeoForge 1.21.9/10. -- Fixed UnsupportedOperationException crash on 1.21.10 caused by player game profile skins in direct sources (cross-server groups). -- Fixed different types of activations blocking each other (e.g. when whisper was used, groups can't be used at the same time. Now you can use both at the same time). -- Added option to choose between direct and proximity mute when sources from the same player are overlapping. (Advanced -> Source Types Overlap) -- [Added warning on transitive activation conflicts.](https://i.imgur.com/e3a1WeY.png) -- [Added error button when microphone is not available.](https://i.imgur.com/CutT5Vb.png) -- Fixed `pv.allow_freecam` set to false breaks 3d audio panning ([#492](https://github.com/plasmoapp/plasmo-voice/issues/492)). -- Fixed microphone gain not properly preventing clipping in some cases. -- Added option to disable input device ([#494](https://github.com/plasmoapp/plasmo-voice/pull/494)). - -#### Server -- Fixed `/vreload` not reloading language changes. -- Added more descriptive comments in the config. -- Added configurable player icon visibility and offset. Check `[voice.player_icon]` config block for more info. -- Reworked keep alive to handle more players. -- Improved performance using epoll when available. +### Changes in 2.1.8 +- Fixed crash on forge when starting the game: `NoSuchFileException: /META-INF/versions`. +- Fixed exception when sending a chat message during update check: `Rendersystem called from wrong thread`. +- Fixed rare exception after disconnect: `Failed to open primary OpenAL output device (java.lang.IllegalStateException: Not connected)` diff --git a/client/src/main/java/su/plo/lib/mod/client/chat/ClientChatUtil.java b/client/src/main/java/su/plo/lib/mod/client/chat/ClientChatUtil.java index 2a73a2b48..a030747e5 100644 --- a/client/src/main/java/su/plo/lib/mod/client/chat/ClientChatUtil.java +++ b/client/src/main/java/su/plo/lib/mod/client/chat/ClientChatUtil.java @@ -29,16 +29,18 @@ public static void sendChatMessage(@NonNull McTextComponent text) { public static void sendChatMessage(@NonNull Component message) { LocalPlayer player = Minecraft.getInstance().player; - //#if MC>=12102 - //$$ player.displayClientMessage(message, false); - //#elseif MC>=11900 - player.sendSystemMessage(message); - //#elseif MC>=11602 - //$$ player.sendMessage(message, null); - //#elseif MC>=11202 - //$$ player.sendMessage(message); - //#else - //$$ player.addChatMessage(message); - //#endif + Minecraft.getInstance().execute(() -> { + //#if MC>=12102 + //$$ player.displayClientMessage(message, false); + //#elseif MC>=11900 + player.sendSystemMessage(message); + //#elseif MC>=11602 + //$$ player.sendMessage(message, null); + //#elseif MC>=11202 + //$$ player.sendMessage(message); + //#else + //$$ player.addChatMessage(message); + //#endif + }); } } diff --git a/client/src/main/java/su/plo/voice/client/audio/device/VoiceDeviceManager.java b/client/src/main/java/su/plo/voice/client/audio/device/VoiceDeviceManager.java index f534ccdf8..d9ce71453 100644 --- a/client/src/main/java/su/plo/voice/client/audio/device/VoiceDeviceManager.java +++ b/client/src/main/java/su/plo/voice/client/audio/device/VoiceDeviceManager.java @@ -178,7 +178,12 @@ public void startJob() { } public void stopJob() { - if (job != null) job.cancel(false); + if (job != null) { + job.cancel(false); + try { + job.get(250, TimeUnit.MILLISECONDS); + } catch (Exception ignored) {} + } } private synchronized void tickJob() throws DeviceException { diff --git a/client/src/main/java/su/plo/voice/client/connection/ModServerConnection.java b/client/src/main/java/su/plo/voice/client/connection/ModServerConnection.java index ac3de545c..e2b7eeb56 100644 --- a/client/src/main/java/su/plo/voice/client/connection/ModServerConnection.java +++ b/client/src/main/java/su/plo/voice/client/connection/ModServerConnection.java @@ -236,8 +236,8 @@ public void close() { voiceClient.getActivationManager().clear(); // cleanup devices - voiceClient.getDeviceManager().clear(); voiceClient.getDeviceManager().stopJob(); + voiceClient.getDeviceManager().clear(); } public void generateKeyPair() throws Exception { diff --git a/gradle.properties b/gradle.properties index afc02631f..051d9c6ed 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,10 +1,10 @@ # Version targetJavaVersion=8 group=su.plo.voice -version=2.1.7 +version=2.1.8 # Gradle args -org.gradle.jvmargs=-Xmx2G -Dkotlin.daemon.jvm.options=-Xmx512M +org.gradle.jvmargs=-Xmx2G -Dkotlin.daemon.jvm.options=-Xmx1G org.gradle.workers.max=2 kotlin.stdlib.default.dependency=false diff --git a/proxy/changelog.md b/proxy/changelog.md index 4afc083c1..0e2163559 100644 --- a/proxy/changelog.md +++ b/proxy/changelog.md @@ -1,4 +1 @@ -### Changes in 2.1.7 -- Fixed `/vreload` not reloading language changes. -- Improved performance using epoll when available. -- Fixed `java.util.ConcurrentModificationException` in ProxyChannelHandler. +### Changes in 2.1.8 diff --git a/server/changelog.md b/server/changelog.md index 42c9d9a90..0e2163559 100644 --- a/server/changelog.md +++ b/server/changelog.md @@ -1,8 +1 @@ -### Changes in 2.1.7 -- Fixed `/vreload` not reloading language changes. -- Fixed `Player is not connected to UDP server` exception on PlayerShowEntityEvent. -- Added more descriptive comments in the config. -- Added configurable player icon visibility and offset. Check `[voice.player_icon]` config block for more info. -- Reworked keep alive to handle more players. -- Improved performance using epoll when available. -- Fixed leaving in vanish breaks Plasmo Voice sometimes. ([#493](https://github.com/plasmoapp/plasmo-voice/issues/493)) +### Changes in 2.1.8