How about a something like a built-in character map that contains non-standard but popular characters such as "♩", "♥", "♪", "♫", "😃", "😊", etc., so players can copy and paste them into their conversations?
Actually, it would be even better if players could just click or doulble-click it to add characters to text input field.
You seem to have CSS turned off.
Please don't fill out this field.
Or we could just use bitmap images for emoticons.
The text entry, chat log, and speech bubbles use text. Adding support for images would complicate matters a lot. In principle it would be possible to include a font with the client, like we do with the font used for travel log etc.
I did some testing and the speech bubbles can display all the characters properly. Both the buttons and the speech bubbles claim to be using the same font, so I have no idea why speech bubbles is the only location where it works correctly.
Here's a patch for anyone wanting to test how it works. Java 6 has serious issues with displaying the characters at least on Linux, so it would be interesting to know how it behaves on other systems.
I added some additional characters to your patch that I think would be nice to have.
Edit: Updated patch 2014-12-14
I committed the above patch to CVS. The emotes character map is only displayed if the VM argument "-Dcharmap.emotes" is used.
From a command line I believe it would be:
java -jar -Dcharmap.emotes stendhal-starter.jar
7 days ago