Here's the update, thrown together to fix it fast for UN. It relies pretty much on the default setnick, so if there's any possible abuse it's out of my hands.
PHP Code:
function onActionServerside(cmd,guildname) {
if (cmd == "setTag") {
temp.checklocaltag = getguildnick(guildname,player.account);
if (checklocaltag != null) player.triggerclient("gui",this,"SetGuildTag",checklocaltag,guildname);
else {
if (serveroptions.globalguilds == false) {
temp.n = player.nick.substring(0,player.nick.pos("("));
player.triggerclient("gui",this,"FailedTag",null,guildname);
} else sendtext("lister", "checkinguild", {player.account,guildname});
}
}
}
function replacetext(txt,a,b) {
if (txt.pos(a)<0) return txt;
temp.txtpos = txt.positions(a);
temp.newtxt = txt.substring(0,txtpos[0]);
for (temp.i=0;i<txtpos.size();i++) {
newtxt @= b;
newtxt @= txt.substring(txtpos[i]+a.length(),txt.substring(txtpos[i]+a.length()).pos(a));
}
return newtxt;
}
function onReceiveText() {
if (params[0] != "lister") return;
if (params[1] == "inguild") {
temp.acc = params[2][0];
temp.guildname = params[2][1];
temp.guildnick = params[2][2];
temp.guildrank = params[2][3];
if (guildnick == null) findplayer(acc).triggerclient("gui",this,"FailedTag",null,guildname);
else findplayer(acc).triggerclient("gui",this,"SetGuildTag",guildnick,guildname);
}
}
//#CLIENTSIDE
function onPlayerChats() {
if (player.chat.starts("setguild")) {
temp.guildtag = player.chat.substring(9);
if (guildtag.starts("(") && guildtag.ends(")")) guildtag = guildtag.substring(1,guildtag.length()-2);
if (guildtag == null) {
temp.n = player.nick.substring(0,player.nick.pos("("));
shared.chat("setnick" SPC n);
} else triggerServer("gui",name,"setTag",guildtag);
}
}
function onActionClientside(cmd,tag,guild) {
if (cmd == "FailedTag") {
temp.n = player.nick.substring(0,player.nick.pos("("));
shared.chat("setnick" SPC n SPC "(" @ guild @ ")");
} else if (cmd == "SetGuildTag") shared.chat("setnick" SPC tag SPC "(" @ guild @ ")");
}
function onRemotePlayerChats(pl,chat) {
if (chat == "Wait 10 seconds before changing your nick again!" ||
chat == "That guild does not exist or is inactive" ||
chat == "You are not member of the guild or the nickname is wrong" ||
chat == "Global guilds are disabled on this server" ||
chat.starts("setnick") || chat.starts("setguild")) pl.chat = "";
}