For coIbalt users:
---------------------------------------------
Open net.sf.odinms.net.channel.GeneralchatHandler:
Find:
PHP Code:
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.serverNotice(5, c.getPlayer().getName() + ": " + text));
Replace with:
PHP Code:
net.sf.odinms.net.MaplePacket packet = MaplePacketCreator.serverNotice(6, (new StringBuilder()).append(c.getPlayer().getName()).append(" : ").append(text).toString());
c.getPlayer().getMap().broadcastMessage(packet);
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.getChatText(c.getPlayer().getId(), text, false, 1));
For Valhalla and other source users:
---------------------------------------------
Note that this is semi-noob proof, Unless you can declare variables, you'll get errors :(.
Go to net.sf.odinms.client.MapleCharacter:
Add these two functions anywhere in MapleCharacter:
PHP Code:
public boolean isMuted() {
return muted;
}
public void setMuted(boolean yesorno){
muted = yesorno;
}
Replace your GeneralchatHandler with:
PHP Code:
package net.sf.odinms.net.channel.handler;
import net.sf.odinms.client.MapleCharacter;
import net.sf.odinms.client.MapleClient;
import net.sf.odinms.client.messages.CommandProcessor;
import net.sf.odinms.net.AbstractMaplePacketHandler;
import net.sf.odinms.net.channel.ChannelServer;
import net.sf.odinms.server.maps.MapleMap;
import net.sf.odinms.tools.MaplePacketCreator;
import net.sf.odinms.tools.StringUtil;
import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
public class GeneralchatHandler extends AbstractMaplePacketHandler {
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
String text = slea.readMapleAsciiString();
int show = slea.readByte();
if(!CommandProcessor.getInstance().processCommand(c, text)) {
if(StringUtil.countCharacters(text, '@') > 4 || StringUtil.countCharacters(text, '%') > 4 || StringUtil.countCharacters(text, '+') > 6 || StringUtil.countCharacters(text, '$') > 6 || StringUtil.countCharacters(text, '&') > 6 || StringUtil.countCharacters(text, '~') > 6 || StringUtil.countCharacters(text, '!') > 12)
text = "Vote for us!";
if(c.getPlayer().isMuted()) {
c.getPlayer().dropMessage("You are muted");
return;
}
if(c.getPlayer().getMapId() == 980000010) {
if(!c.getPlayer().isGM())
c.getPlayer().dropMessage("No talking in here!");
else
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.getChatText(c.getPlayer().getId(), text, c.getPlayer().isGM() && c.getChannelServer().allowGmWhiteText(), show));
} else
if(!c.getPlayer().isGM()) {
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.getChatText(c.getPlayer().getId(), text, c.getPlayer().isGM() && c.getChannelServer().allowGmWhiteText(), show));
} else {
net.sf.odinms.net.MaplePacket packet = MaplePacketCreator.serverNotice(6, (new StringBuilder()).append(c.getPlayer().getName()).append(" : ").append(text).toString());
c.getPlayer().getMap().broadcastMessage(packet);
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.getChatText(c.getPlayer().getId(), text, false, 1));
}
}
}
}
Screen Shot:
