Skip to content

Ported to 7.3#10

Open
IsLocal wants to merge 16 commits into5Avian:mainfrom
IsLocal:main
Open

Ported to 7.3#10
IsLocal wants to merge 16 commits into5Avian:mainfrom
IsLocal:main

Conversation

@IsLocal
Copy link

@IsLocal IsLocal commented Jul 7, 2025

Fully Ported ✅

I haven't been able to bug test on any other platforms but, using 2 instances of BTA 7.3_04 on my pc running windows 11 it works without error (I can hear my self).

I ported the project environment to 7.3, fixed up the code so it doesn't crash on 7.3 apis, and added some client sided features like the volume mixer and mic indicator.

This is my first time coding in java and my first time contributing on here so I think it reaaallly does need some feedback.

@IsLocal IsLocal mentioned this pull request Jul 7, 2025
@5Avian
Copy link
Owner

5Avian commented Jul 7, 2025

Ooh sick, thanks for the PR! I'll debug my local environment to see why in the world it's failing, and I'll get back to you ASAP.

@5Avian
Copy link
Owner

5Avian commented Jul 7, 2025

A lot of code has been changed I see. Before going into implementation specifics, there's a couple pieces of feedback i wanna give:

  • There's a bunch of minor changes to formatting, think if-statements written in one line instead of two, and added whitespace. This mod is my personal project, so it's written in my code style. It always goes appreciated when you try to keep your code in a similar style to mine, and update as little of the existing code as necessary.
  • There's no summary of what you did in the PR, which could help me a lot as the reviewer to understand exactly what you did. The commit naming is helpful, but I usually don't know enough about a feature only from it's name.
  • You've added a lot of functionality in the same PR as a port. Especially when porting a version (which already has a bunch of things that can go wrong), it's quite risky to add a bunch of new features at the same time. I haven't experienced the BTA 7.3 codebase before, so on top of understanding the changes that they made for this version, I also need to understand how it's being used within your features.

I'll review each file and feature later. Thanks for the contribution, and I hope my feedback will help you. If I were to merge this PR, I'd like to do it step-by-step. First the port, then once I've tested that it fully works, the QOL features.

Copy link
Owner

@5Avian 5Avian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've reviewed some of the files changes, but it's a lot for me to do everything at once right now. The most important points I wrote down.

If you wanna merge your code into the project, please do it in 2 steps:

  1. PR for port only
  2. PR (or issue, so we can discuss implementation) for QoL features

Also, feel free to release your own fork of this mod too. It has the MIT license, so you can basically do anything with it. Of course I'd absolutely prefer to merge port, since this is an existing project, and I'm down to discuss implementation of your QOL features. And don't let my feedback get ya down, the PR is absolutely appreciated!

@IsLocal
Copy link
Author

IsLocal commented Jul 7, 2025

Thanks for all the feedback and consideration, this is all a learning experience for me so all the feedback only helps. I'll start chipping away at some of the issues mainly just working to cleanup the big stuff e.g. my complete disregard of the build.gradle file and AccessWideners loll. You can tell how little I understood going in to this so like I said feedback only helps.

IsLocal added 3 commits July 7, 2025 16:46
… socket implementation, reformating, fixed some naming oversights, optimized texture loading.
@IsLocal
Copy link
Author

IsLocal commented Jul 8, 2025

Ok so, I cleaned it all up and moved all the other features onto a different branch for a future PR or whatever I end up doing with them and I tried to keep in the scope of just a port for now. The only additional feature not in scope is the isTalking() method along with the icon associated with it.

@IsLocal IsLocal marked this pull request as ready for review July 8, 2025 20:40
@IsLocal IsLocal changed the title Ported to 7.3 and some QOL changes Ported to 7.3 Jul 8, 2025
@IsLocal
Copy link
Author

IsLocal commented Jul 10, 2025

7.3 Port fr this time

Heres a summary of the changes I'm now attempting to merge after removing all the random things I added. i def have too much time on my hands having fun doing my first pr.

Port

  • Theres a lot of changed imports, methods, mixins, and fields to interface with the newer 7.3 API correctly.

  • Changed directory for status indicator to "resources/gui/proxvc.png" because of what I think is a limitation of 7.3.

    • Changed rendering and loading of texture to use newer Texture class
  • Bumped versions in build.gradle for new version along with newer dependencies for lwjgl.

  • Bumped versions in gradle.properties.

  • Updated dependency repos.

  • Made ALC10Mixin to not be required in runtime to fix a crash I was experiencing related to the mixin.

  • Some additional bug fixes made when testing.

    • Making sure the player isn't attempted to be read if not loaded or dead.

Additional implements

  • Changed method to get device specifiers to be more stable using ALUtil class. (which I think fixes the bug with specifiers on older java versions)

  • Some changes to OpenAL methods to use newer or more stable ones.

  • Additional logging to console for major events.

    • Plus some extra catching on openAL methods to make errors more apparent to the player.
  • Automatic specifier reformatting with regex.

  • Added talking state to indicator that detects input from mic.

    • IsTalking() method
    • Changes to indicator sprite.
    • Changed uv cords.

@IsLocal IsLocal requested a review from 5Avian July 10, 2025 16:28
Copy link
Owner

@5Avian 5Avian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! Seems like a solid PR. I pointed out some minor stuff that should probably be fixed to keep everything consistent, and a possible issue with the volume being set to 0. But great stuff, it's really nice to see that people like this enough to work on it themselves. And it's super useful, since I can't do any developing on my own right now.

Also, I tried launching this, but found this error. I assume this has to do with the build.gradle? Maybe BTA removed LWJGL from its' binary so that it needs to be added manually? The template project probably has the way to solve it.



     Minecraft has crashed!
     ----------------------

Minecraft has stopped running because it encountered a problem.

If you wish to report this, please copy this entire text and post it on the support portal at https://bugs.betterthanadventure.net/
Please include a description of what you did when the error occured.


     System Information
     ------------------

Generated 7/13/25, 11:48 AM
Minecraft: Better than Adventure! 7.3_01
OS: Windows 11 (amd64) version 10.0
Java: 21.0.5, Eclipse Adoptium
VM: OpenJDK 64-Bit Server VM (mixed mode, sharing), Eclipse Adoptium
LWJGL: 3.3.4-snapshot
[failed to get system properties (java.lang.NoClassDefFoundError: Could not initialize class org.lwjgl.system.Library)]


     Error Information
     ------------------

java.lang.UnsatisfiedLinkError: Failed to locate library: lwjgl.dll
	at org.lwjgl.system.Library.loadSystem(Library.java:174)
	at org.lwjgl.system.Library.loadSystem(Library.java:64)
	at org.lwjgl.system.Library.<clinit>(Library.java:52)
	at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:30)
	at net.minecraft.client.render.window.GameWindowGLFW.init(GameWindowGLFW.java:70)
	at net.minecraft.client.Minecraft.startGame(Minecraft.java:481)
	at net.minecraft.client.Minecraft.run(Minecraft.java:979)
	at net.minecraft.client.Minecraft.startMainThread(Minecraft.java:2681)
	at net.minecraft.client.Minecraft.main(Minecraft.java:2787)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:475)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)




After these issues are fixed, I'd be ready to merge and release :D

@IsLocal
Copy link
Author

IsLocal commented Jul 13, 2025

Yeah seems the build.gradle needed to be updated. Only reason it was compiling for me was I had all the dependencies in my cache.

@IsLocal IsLocal requested a review from 5Avian July 13, 2025 13:27
@vinceingithub
Copy link

Will this ever be merged and a new build released? I want to use this.

@5Avian
Copy link
Owner

5Avian commented Dec 12, 2025

Perhaps some day. I likely won't be spending any time on programming related things in the near future, so if you wanna use this version, I recommend building it yourself. The MIT license that this project is under allows you to do basically anything with the project, including (forking it and) releasing it under your name on platforms like CurseForge and Modrinth, as long as you include the exact license text for this project in source code and releases.

@IsLocal
Copy link
Author

IsLocal commented Dec 12, 2025

Will this ever be merged and a new build released? I want to use this.

There’s a release of this under my fork of the project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants