Ignore-System initial push #93
@ -52,7 +52,7 @@ public class BungeeCore extends Plugin {
|
||||
public void onEnable(){
|
||||
setInstance(this);
|
||||
loadConfig();
|
||||
|
||||
|
||||
|
||||
new ErrorLogger();
|
||||
new ConnectionListener();
|
||||
new Forge();
|
||||
@ -99,6 +99,8 @@ public class BungeeCore extends Plugin {
|
||||
new CheckCommand();
|
||||
new RankedCommand();
|
||||
new RankCommand();
|
||||
new IgnoreCommand();
|
||||
new UnIgnoreCommand();
|
||||
|
||||
new EventStarter();
|
||||
new Broadcaster();
|
||||
|
@ -24,19 +24,18 @@ public class ChallengeCommand extends BasicCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(sender instanceof ProxiedPlayer)) {return;}
|
||||
if (!(sender instanceof ProxiedPlayer))
|
||||
Lixfel
hat
Deutsch bitte. Deutsch bitte.
Lixfel
hat
Bzw. kannst du die Nachricht auch komplett weglassen Bzw. kannst du die Nachricht auch komplett weglassen
|
||||
return;
|
||||
Lixfel
hat
Tab-spacing verhauen Tab-spacing verhauen
|
||||
|
||||
ProxiedPlayer target = ProxyServer.getInstance().getPlayer(args[0]);
|
||||
if(target == null){
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer gewünschte Spieler ist nicht online.");
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer Herausgeforderte ist nicht online.");
|
||||
return;
|
||||
}else if(target == sender){
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cSchizophren?");
|
||||
return;
|
||||
}
|
||||
|
||||
if (IgnoreSystem.isIgnored(target.getUniqueId(), ((ProxiedPlayer) sender).getUniqueId())) {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer gewünschte Spieler hat dich geblockt.");
|
||||
}else if (IgnoreSystem.isIgnored(target, (ProxiedPlayer) sender)) {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer Herausgeforderte hat dich geblockt.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,32 +1,42 @@
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class IgnoreCommand extends BasicCommand {
|
||||
|
||||
public IgnoreCommand() {
|
||||
super("ignore", null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender s, String[] args) {
|
||||
if (!(s instanceof ProxiedPlayer)) return;
|
||||
ProxiedPlayer p = (ProxiedPlayer) s;
|
||||
SteamwarUser target = SteamwarUser.get(args[0]);
|
||||
if(target == null){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDieser Spieler wurde nicht in der Datenbank gefunden!");
|
||||
return;
|
||||
}else if(target.equals(p)){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cWie willst du dich selber ignorieren?");
|
||||
return;
|
||||
}else {
|
||||
IgnoreSystem.ignore(p.getUniqueId(), target.getUuid());
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§7Du ignorierst nun " + target.getUserName() + ".");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class IgnoreCommand extends BasicCommand {
|
||||
|
||||
public IgnoreCommand() {
|
||||
super("ignore", null);
|
||||
Lixfel
hat
Berechtigung null Berechtigung null
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
if(args.length < 1) {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eignore §8[§7Spieler§8]");
|
||||
return;
|
||||
}
|
||||
|
||||
Lixfel
hat
Sollte auch funktionieren, wenn das target nicht online ist. Nutze daher den SteamwarUser statt ProxiedPlayer Sollte auch funktionieren, wenn das target nicht online ist. Nutze daher den SteamwarUser statt ProxiedPlayer
|
||||
if (!(sender instanceof ProxiedPlayer))
|
||||
return;
|
||||
ProxiedPlayer p = (ProxiedPlayer) sender;
|
||||
Lixfel
hat
ignorieren kleingeschrieben. ignorieren kleingeschrieben.
|
||||
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
||||
|
||||
SteamwarUser target = SteamwarUser.get(args[0]);
|
||||
if(target == null){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDiesen Spieler gibt es nicht.");
|
||||
Lixfel
hat
Was ist nur mit deinem Tab-Spacing los? Was ist nur mit deinem Tab-Spacing los?
|
||||
return;
|
||||
}else if(target.equals(user)){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cWie willst du dich selber ignorieren?");
|
||||
return;
|
||||
}else if(IgnoreSystem.isIgnored(user, target)){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDu ignorierst diesen Spieler bereits.");
|
||||
return;
|
||||
}
|
||||
|
||||
IgnoreSystem.ignore(user, target);
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§7Du ignorierst nun §e" + target.getUserName() + "§8.");
|
||||
}
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public class MsgCommand extends BasicCommand {
|
||||
if(target == null){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler ist derzeit nicht online!");
|
||||
return;
|
||||
}else if (IgnoreSystem.isIgnored(target.getUniqueId(), player.getUniqueId())) {
|
||||
}else if (IgnoreSystem.isIgnored(target, player)) {
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler hat dich geblockt!");
|
||||
return;
|
||||
Lixfel
hat
Ich weiß nicht, ob auch bei /r diese Zeilen aufgerufen werden (bitte nochmal überprüfen) Ich weiß nicht, ob auch bei /r diese Zeilen aufgerufen werden (bitte nochmal überprüfen)
Jan9103
hat
die Zeile die Zeile ```if (args.length < 2) {
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "/msg [Benutzer] [Nachricht]");
return;
}```lässt mich vermuten, dass es nicht für /r gültig ist
Lixfel
hat
Nein, ich meine, ob das Blocken auch /r Nachrichten blockiert! Nein, ich meine, ob das Blocken auch /r Nachrichten blockiert!
|
||||
}else if(target.getChatMode() != ProxiedPlayer.ChatMode.SHOWN){
|
||||
|
@ -31,14 +31,12 @@ public class RCommand extends BasicCommand {
|
||||
if(target == null){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDu hast bisher mit niemandem geschrieben!");
|
||||
return;
|
||||
}
|
||||
if (IgnoreSystem.isIgnored(target.getUniqueId(), player.getUniqueId())) {
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler hat dich geblockt!");
|
||||
return;
|
||||
}
|
||||
if(!target.isConnected()){
|
||||
}else if(!target.isConnected()){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler ist derzeit nicht online!");
|
||||
return;
|
||||
}else if (IgnoreSystem.isIgnored(target, player)) {
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler hat dich geblockt!");
|
||||
return;
|
||||
}else if(target.getChatMode() != ProxiedPlayer.ChatMode.SHOWN){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!");
|
||||
return;
|
||||
|
@ -1,29 +1,40 @@
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class UnIgnoreCommand extends BasicCommand {
|
||||
|
||||
public UnIgnoreCommand() {
|
||||
super("unignore", null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender s, String[] args) {
|
||||
if (!(s instanceof ProxiedPlayer)) return;
|
||||
ProxiedPlayer p = (ProxiedPlayer) s;
|
||||
SteamwarUser t = SteamwarUser.get(args[0]);
|
||||
if(t == null){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDieser Spieler ist derzeit nicht online!");
|
||||
return;
|
||||
}else {
|
||||
IgnoreSystem.unIgnore(p.getUniqueId(), t.getUuid());
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§7Du beachtest nun " + t.getUserName() + " wieder.");
|
||||
}
|
||||
}
|
||||
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class UnIgnoreCommand extends BasicCommand {
|
||||
|
||||
public UnIgnoreCommand() {
|
||||
super("unignore", null);
|
||||
Lixfel
hat
Auch hier: Berechtigung null Auch hier: Berechtigung null
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
if(args.length < 1) {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eunignore §8[§7Spieler§8]");
|
||||
return;
|
||||
}
|
||||
Lixfel
hat
Tab-Spacing Tab-Spacing
Jan9103
hat
bei mir stimmt das Tab-Spacing überall - villeicht zeigt git es anders an oder ist meine tab-breite im verhältniss zur leerzeichenbreite anders als deine bei mir stimmt das Tab-Spacing überall - villeicht zeigt git es anders an oder ist meine tab-breite im verhältniss zur leerzeichenbreite anders als deine
|
||||
|
||||
Lixfel
hat
Auch hier: Bitte mit SteamwarUser Auch hier: Bitte mit SteamwarUser
Jan9103
hat
diese nachricht wird an den command-sender geschickt -> er ist garantiert online, sonst hätte er den Befehl ja nicht senden können diese nachricht wird an den command-sender geschickt -> er ist garantiert online, sonst hätte er den Befehl ja nicht senden können
Lixfel
hat
Ich meine target. Ich meine target.
Lixfel
hat
Man kann keinen Spieler blocken, der derzeit offline ist. Das muss geändert werden. Man kann keinen Spieler blocken, der derzeit offline ist. Das muss geändert werden.
|
||||
if (!(sender instanceof ProxiedPlayer))
|
||||
return;
|
||||
ProxiedPlayer p = (ProxiedPlayer) sender;
|
||||
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
||||
|
||||
SteamwarUser target = SteamwarUser.get(args[0]);
|
||||
if(target == null){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDiesen Spieler gibt es nicht!");
|
||||
return;
|
||||
}else if(!IgnoreSystem.isIgnored(user, target)){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDu ignorierst diesen Spieler nicht.");
|
||||
return;
|
||||
}
|
||||
|
||||
IgnoreSystem.unIgnore(user, target);
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§7Du empfängst nun wieder Nachrichten von §e" + target.getUserName() + "§8.");
|
||||
}
|
||||
|
||||
}
|
@ -1,26 +1,31 @@
|
||||
package de.steamwar.bungeecore.sql;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.UUID;
|
||||
|
||||
public class IgnoreSystem{
|
||||
//SQL-Table:
|
||||
// Name=UserIgnoreSystem
|
||||
// Content: a ([UUID des Ignoriers]z[UUID des Ignorierten])
|
||||
// UUID is a HEX-Number -> it cant contain 'z'
|
||||
|
||||
public static boolean isIgnored(UUID ignorer, UUID ignored) {
|
||||
try {
|
||||
return !(SQL.select("SELECT * FROM UserIgnoreSystem WHERE a = ?", ignorer.toString()+"z"+ignored.toString())).next();
|
||||
} catch (SQLException e) {return false;}
|
||||
}
|
||||
public static void ignore(UUID victim, UUID offender) {
|
||||
if (victim==null || offender==null) return;
|
||||
if (!isIgnored(victim,offender))
|
||||
SQL.update("INSERT INTO UserIgnoreSystem (a) VALUES (?)",victim.toString()+"z"+offender.toString());
|
||||
}
|
||||
public static void unIgnore(UUID victim, UUID offender) {
|
||||
if (victim==null || offender==null) return;
|
||||
SQL.update("DELETE FROM UserIgnoreSystem WHERE a = " + victim.toString()+"z"+offender.toString());
|
||||
}
|
||||
package de.steamwar.bungeecore.sql;
|
||||
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class IgnoreSystem{
|
||||
private IgnoreSystem(){}
|
||||
|
||||
public static boolean isIgnored(ProxiedPlayer ignorer, ProxiedPlayer ignored){
|
||||
SteamwarUser user = SteamwarUser.get(ignorer.getUniqueId());
|
||||
SteamwarUser target = SteamwarUser.get(ignored.getUniqueId());
|
||||
return isIgnored(user, target);
|
||||
}
|
||||
|
||||
public static boolean isIgnored(SteamwarUser ignorer, SteamwarUser ignored) {
|
||||
try {
|
||||
return !SQL.select("SELECT * FROM Ignore WHERE Ignorer = ? AND Ignored = ?", ignorer.getId(), ignored.getId()).next();
|
||||
} catch (SQLException e) {
|
||||
throw new SecurityException("Could not check if ignored", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ignore(SteamwarUser ignorer, SteamwarUser ignored) {
|
||||
SQL.update("INSERT INTO Ignore (Ignorer, Ignored) VALUES (?, ?)", ignorer.getId(), ignored.getId());
|
||||
}
|
||||
|
||||
public static void unIgnore(SteamwarUser ignorer, SteamwarUser ignored) {
|
||||
SQL.update("DELETE FROM Ignore WHERE Ignorer = ? AND Ignored = ?", ignorer.getId(), ignored.getId());
|
||||
}
|
||||
}
|
Nein, das kommt in die Datenbank (das skaliert schließlich)