I got the system working by using;
pw.println(new String("some text".getBytes(), "UTF-8"));
for the entire authentication process. So the new code looks something like this:
public String start() throws IOException {
String toReturn = "";
if(TWITCHCOMM.isConnected()) {
PrintWriter pw = new PrintWriter(new OutputStreamWriter(TWITCHCOMM.getOutputStream(), StandardCharsets.UTF_8),true);
pw.println(new String(("PASS " + (Main.isRedCase ? Main.OAUTH[0] : Main.OAUTH[1]) + Commands.END).getBytes(), "UTF-8"));
pw.println(new String(("USER firstwa_" + (Main.isRedCase ? "red" : "blue") + Commands.END).getBytes(), "UTF-8"));
pw.println(new String(("NICK firstwa_" + (Main.isRedCase ? "red" : "blue") + Commands.END).getBytes(), "UTF-8"));
pw.println(new String(("JOIN #" + CHANNEL + Commands.END).getBytes(), "UTF-8"));
pw.flush();
System.out.println("Connector Data Sent");
BufferedReader br = new BufferedReader(new InputStreamReader(TWITCHCOMM.getInputStream()));
String update = "";
while((update = br.readLine()) != null && !update.toLowerCase().contains(":end of /names list")) {
toReturn += update.indexOf("\r\n") > update.length()-10 ? update.substring(0, update.indexOf("\r\n")) : update;
toReturn += "\n";
}
pw.close();
} else {
toReturn = "Connection Failed.";
}
return toReturn;
}
Thanks all!