It depends a lot on what your intentions are. If you want to blindly copy/paste over existing patches, the language of choice for implementation doesn't matter much.
Doing the patching itself isn't the biggest challenge, when you want to create your own patcher and more importantly, own patches. To make your own patches you won't get around learning about C++ and ASM to actually be able to disassemble, analyze and understand parts of the client's internal working. Regarding this part, knowledge of a language like Java won't help you at all, except for making it easier to learn C++ programming. But the biggest part is learning ASM and reversing C++, thus: learning how registers work, what calling conventions exist, what vftables are and just a few basic things to get to the point where you can somewhat disassemble and understand what's going on in the client. Few starting points might be links like these:
Other than that you will also probably have to deal with the packing/encryption of Themida, which the Mabinogi client now got applied. So you'll probably also have to dig quite a bit deeper into ASM and an understanding of windows PEs to get past this hurdle.