I have 1 outer class with 1 inner class like this:
public class Outer extends PircBot {
...
public class Inner extends SessionAdapter {
...
}
}
Inside that Inner class I am trying to invoke a method called sendMessage(..) which is inside PircBot (and not in Outer class. But of course I know all fields in Outer and Pircbot classes are inherited in the Inner class):
@Override
public void messageReceived(SessionEvent event) { //This method is inside SessionAdapter class which I am extending in my Inner class
Outer.this.sendMessage(event.getMessage()); //This method is inside Pircbot class which I am extending in my Outer class
}
I know for a fact that sendMessage(..) method is called. But for some reason I don't see that message on Twitch chat (This program sends chat messages to Twitch Chat. Those chat messages are received from the Yahoo Chat Messenger from my Phone when I type them). Can anyone see what is wrong with my code?
This is what I did. I changed the position of the instantiation of inner class (from inside the default outer constructor to instance variable). Like this:
From
To
Also, it may have been a twitch thing. Sometimes the capitalization of channel names doesn't work. It requires capitalization of letters in certain way. So I changed the capitalization of letters in a String (weird but whatever).