C
Cossi
Gast
Hallo zusammen,
ich habe einen Java-Chat, der soweit auch bestens läuft. Nun kennt man ja aus diversen Chats die Funktion, dass man einen User, der viel Müll redet, oder spamt auch mal "knebeln" muss/will. Die Funktion hierfür ist bereits vorhanden und funktioniert auch reibungslos.
Bei längeren Usernamen im Chat ist es jedoch mühseelig und zeitaufwendig, wenn man erst den kompletten Usernamen eingeben muss, damit der Befehl auch wirklich greift, aus diesem Grunde wollte ich eine sogenannte "+-Funktion" einbauen. Diese soll bewerkstelligen, dass man nur die ersten Buchstaben des betreffenden Usernamens eingeben muss und sich der Chat automatisch den betreffen Usernamen aus der Liste der im Raum anwesenden User raussucht und diesen dann "knebelt".
Die Funktion als solches ist (eigentlich) kein Problem. Wenn ich jedoch dann ans compilieren gehe, sagt er mir auf einmal, dass eine bestimmte Variable nicht initialisiert werden konnte/wurde. Kann mir jemand eine kleine Hilfestellung oder einen Lösungsansatz geben? Bin für jeden noch so kleinen Tip dankbar.
Hier mal der betreffende Code-Schnipsel (die Variable, welche es betrifft ist "othernick"):
Der Fehler wird dann auf Zeile 46 bezogen angezeigt.
Vielen Dank im Voraus.
ich habe einen Java-Chat, der soweit auch bestens läuft. Nun kennt man ja aus diversen Chats die Funktion, dass man einen User, der viel Müll redet, oder spamt auch mal "knebeln" muss/will. Die Funktion hierfür ist bereits vorhanden und funktioniert auch reibungslos.
Bei längeren Usernamen im Chat ist es jedoch mühseelig und zeitaufwendig, wenn man erst den kompletten Usernamen eingeben muss, damit der Befehl auch wirklich greift, aus diesem Grunde wollte ich eine sogenannte "+-Funktion" einbauen. Diese soll bewerkstelligen, dass man nur die ersten Buchstaben des betreffenden Usernamens eingeben muss und sich der Chat automatisch den betreffen Usernamen aus der Liste der im Raum anwesenden User raussucht und diesen dann "knebelt".
Die Funktion als solches ist (eigentlich) kein Problem. Wenn ich jedoch dann ans compilieren gehe, sagt er mir auf einmal, dass eine bestimmte Variable nicht initialisiert werden konnte/wurde. Kann mir jemand eine kleine Hilfestellung oder einen Lösungsansatz geben? Bin für jeden noch so kleinen Tip dankbar.
Hier mal der betreffende Code-Schnipsel (die Variable, welche es betrifft ist "othernick"):
Code:
private void cmd_gag(String input)
{
if(user.isAway())
back();
String othernick;
String msg;
if(user.getRights() < Integer.parseInt((String)root.config.rightshash.get("gag")))
{
user.println(String.valueOf(mustSU));
} else
{
//Beginn der sogenannten "+-Funktion"
if(input.indexOf("+") != -1)
{
RoomThread r=user.getRoom("thread");
String s2 = input.substring(0, input.indexOf("+"));
String s3 = "";
for(Enumeration listuser = r.elements();listuser.hasMoreElements();)
{
String s6 = (String)listuser.nextElement();
if(s6.startsWith(s2))
othernick = s6;
}
msg = null;
}
//Ende der Funktion
else
if(input.indexOf(" ") != -1)
{
othernick = input.substring(0, input.indexOf(" "));
msg = input.substring(input.indexOf(" ")+1, input.length());
msg=FontTags(msg);
try
{
msg=replaces(msg);
}
catch(Exception ex){}
if(msg.indexOf(":") >= 0) msg = srchsmil(msg);
}
else
{
othernick = input;
msg = null;
}
user1 = root.getUser(othernick);
String startgag = "";
String stopgag = "";
String meldung = "0";
if(nickname.toUpperCase().equals(othernick.toUpperCase()) && !user.isGag())
meldung = "2";
else
if(nickname.toUpperCase().equals(othernick.toUpperCase()) && user.isGag())
{
user.println("[i][b]Du kannst dich nicht selbst befreien![/b][/i]
");
return;
} else
if(user1 != null && user1.isVisible())
{
if(user1.getRoom().equals(user.getRoom()))
{
if(!user1.isGag())
{
if(user1.getSecureRights() >= Integer.parseInt((String)root.config.rightshash.get("gagsecure")) && user.getRights() < Integer.parseInt((String)root.config.rightshash.get("gagsecure1")))
{
user.println("[i][b]Superuser können nicht geknebelt werden[/i][/b]
");
} else
{
if(msg !=null)
{
startgag = root.config.getText("gagsMsg");
startgag=startgag.replaceAll("<\\?words\\?>", msg);
} else
{
startgag = root.config.getText("gags");
}
startgag = startgag.replaceAll("<\\?name2\\?>", "<font color=\"" + user1.getColor() + "\">" + user1.getName() + "</font>");
startgag = startgag.replaceAll("<\\?name\\?>", "<font color=\"" + user.getColor() + "\">" + " " + nickname + "</font>");
user.roomPrint(startgag);
user1.setGag(true);
}
} else
{
if(msg !=null)
{
stopgag = root.config.getText("rgagsMsg");
stopgag = stopgag.replaceAll("<\\?words\\?>", msg);
} else
{
stopgag = root.config.getText("rgags");
}
stopgag = stopgag.replaceAll("<\\?name2\\?>", "<font color=\"" + user1.getColor() + "\">" + user1.getName() + "</font>");
stopgag = stopgag.replaceAll("<\\?name\\?>", "<font color=\"" + user.getColor() + "\">" + " " + nickname + "</font>");
user.roomPrint(stopgag);
user1.setGag(false);
}
meldung = "1";
} else
{
meldung = "3";
}
} else
{
meldung = "0";
}
if(meldung.equals("0"))
user.println(nothere(othernick));
if(meldung.equals("2"))
user.println("[i][b]Masochistisch veranlagt? ;)[/b][/i]
");
if(meldung.equals("3"))
user.println("[i][b]" + user1.getName() + " befindet sich nicht in diesem Raum![/b][/i]
");
}
}
Der Fehler wird dann auf Zeile 46 bezogen angezeigt.
Vielen Dank im Voraus.