But I dont know how to follow a player's keystrokes. For example, currently I have setup a system, that adds the players to a list who do a certain thing, but I am really unsure how to follow that specific player's key stuff.
Im not expecting the practical work-out, but I do really like to see some theory what steps I should follow. Not in great detail or anything, but just something that you guys point me in the right direction.
You need to use a custom packet for that - each time the client presses your key of interest, you need to read that on the client (eg in a tick handler), send a packet to the server, then have the server process the packet.
The first is to use one of the many Forge registries or hooks, to add custom blocks, items, or get called when particular things happen. This is very common. Unfortunately the documentation is a bit patchy so it's not always easy to know what's available. A typical strategy I use is to identify an item or block or whatever that does something similar to what I need. Then I'll look at the vanilla code and trace it through until I figure out how it works, and usually I will stumble over a forge hook or event along the way.
The second strategy which is harder and less robust is to override an existing vanilla class and replace any references to it from other vanilla code. For example, you can overwrite GameSettings.keyBindForward with your own class derived from KeyBinding. This is usually not necessary and is often not possible.
A fourth strategy you will hear occasionally is reflection / ASM. I would avoid this like the plague because it is fragile and very hard to debug. I had my fill of self-modifying code back in my days of programming assembly and am not keen to go back!!
Reflection is a powerful type of code to make mods compatible between each other without dependency. A practical example is the Forge annotations, those are loaded with reflection. Manipulating classes at runtime, that is the goal of reflection.
ASM is an extremely powerful tool (to break everything without knowing ) relying on bytecode (read: manipulating lines of code, at an "internal" level). If you master it, you can change as much things as Forge without shipping Minecraft code.
Well, the difference to my mind is that the second strategy (overriding a single method) is less likely to be broken if the vanilla classes are updated, compared with overwriting the entire class with a modified copy, or god forbid relying on the bytecode being the same. But I agree it's not as robust as using the forge methods.
I agree with you that both ASM and reflection are very powerful tools in the hands of the Java uebercoder, unfortunately those ranks don't include me :-) I also doubt that the extra flexibility is really necessary unless you're doing forge-like magic, i.e. you need to link in other classes at runtime and you don't know in advance what they are. (I understand the ethical objections against shipping even small parts of the Minecraft code, to be honest I really doubt that the Mojang folks would care that much given how long Forge was doing it).
At the end of the day I prefer to use chainsaws for cutting trees rather than trimming my nails, and I struggle enough with getting my code to work as it is without trying to get my mind around the extra runtime complexity :-). Maybe once I've got a couple years Java experience I'll think differently...
- I've also auditioned and decided it's not for me, often because the standard of musicianship isn't high enough. I'm not trying to inflate my own abilities here, but I've auditioned for folks that are rank beginners, and that's not my scene.
When this happens, my British etiquette gene kicks in and I find it hard to say "no you guys aren't good enough for me". I end up making some lame excuse about "it's not really my scene/material/etc."
You don't have to tell them they're no good enough for you. Just say you're out of time because something happened in your musical/professional/family life. Even if they doubt something, they can't really tell the truth.
I turn down band offers frequently. A lot of us do, some of us not because we are so great but because reliable rock keyboardists are 10x harder to find than a guitarist or bassist. We are unicorn-like.
I always use the 'you guys are great but its not my vibe' excuse, personally. Ive used the 'don"t have time for another project right now' too. Only use that one if you"re not going to immediately take on a different project you like, though - as they will hear about it. And technically the first one is true - playing with a gaggle of hacks is not my vibe. I won"t play in a band if everyone is at my skill level. I need a much better lead guitarist and much better lead singer, talent wise, than modest ol me.
Maybe this is the best place for a shameless plug! Our now not-so-new new video at is a 40 minute adaptation of T. S. Eliot's "Prufrock" - check it out! And hopefully I'll have something new here this year. ;-)
If they are not for you for whatever reason just tell them a few days later that the other band was a better fit. This way you have an out and do not need to make a commitment upon leaving the audition.
The last drummer who auditioned for us (before we found our current drummer) told us that he didn't think we would be a fit for each other. Our band had also decided we did not think he was a fit for us either, even though he was a nice guy, but I had not found the right words to tell him yet, when he told me his position,
The funny thing is that he said he had another friend who played drums who he thought would be a better fit for us, and gave us his friend's contact info. This other drummer has now been our current drummer for 3 years, and he is the best drummer I have ever played with in a pop/rock band.
Considering the band community may (or may not) be people that know each other, best to not make something up that might be proven easily false (as in, someone hears about you auditioning somewhere else after you said you needed to spend more time with kids etc). Then again, I think everyone knows all that stuff is 100% an excuse anyway so it doesn't really matter.
Speaking of band communities, that has proven far better for us as a band when it comes to finding new players, vs ads on CL....sitting through a multi-musician audition night with strangers from CL is right up there with being tied down next to a fire ant nest. Knowing the bands, and the bands knowing the musicians, really is the way to go, just means making the connections, getting out there to see and meet other bands/players (which I don't have a lot of time to do with job and family).
This is exactly what I"ve found. I"ve never turned down a band post-audition, but I"ve declined the opportunity to audition multiple times. Where I live it"s purely a supply/demand issue. If you"re competent and reliable, you"ll get asked, you don"t need to be a virtuoso by any means.
I was, however, very pleased when a month ago I was able to help a start-up project out without actually joining them. They approached me, and I told them the band sounded like fun but I was too time poor to commit (100% true). Then I said: 'You should get [this guy], he"d be perfect for your outfit.' Next thing I know, they"re announcing he"s joined the band on their socials. Made me so happy!
In the same boat in that usually by the time the audition happens, you pretty much basically have the gig and it's just making sure everything is going to click - at least that has been my experience with the exception of the very first audition I ever had about 30 years ago. In fact, in a couple cases, the "audition" was just band practice and them telling me just play what I can...felt like I was pretty much already just practicing for the next gig.
Based on that experience, I really only turned down one. Keyboard player was moving out of town in a couple months. I show up to audition and learned that the female lead singer wasn't going to be there. Current keyboard player is there, we both have Kronos based rigs, hit it off, and by the end he's practically making plans to share his patches with me and start transitioning. On the red flag list, there were a couple of things like "oh yeah, we do that one a little different" and "oh yeah, we do the live version....it's format is a little different and it's in a different key". But I roll with it and feel like I have the gig if I want it. My only hesitation was just that it didn't pay as much as I was used to.
Then I'm waiting to hear something and they say since their lead singer wasn't there, they can't make a decision until she hears me audition. I had heard through mutual friends that the guy who is supposed to be the BL idolizes the lead singer. At that point I backed out and just said I had decided I wasn't interested. I don't think I gave any other reasons and wasn't really pressed too hard about it.
"Good, but we have another couple of candidates that we're going to hear within the next few days... so let's keep in touch and we'll let you know." Then, of course, you'll have to follow with "nothing wrong with your playing, but we've found someone else who fits just a little better."
A lifetime ago, I was searching for the role of guitarist/main soloist in my electric jazz group, Syntaxis. A very young guy came to audition, read all the parts pefectly, then proceeded to solo... in a very competent swing/bop style. Later, I mentioned a few big names of jazz-rock, and he had not listened to any of them, at least in some depth... so the conclusions were obvious: "You play good, but don't know the style." He acknowledged that, and that was it. Apparently, he just heard that I was "looking for a guitarist"...
d3342ee215