SteamWar/BungeeCore
Archiviert
13
2

Ignore-System initial push #93

Manuell gemergt
Lixfel hat 10 Commits von IgnoreSystem nach master 2020-08-29 11:08:44 +02:00 zusammengeführt
7 geänderte Dateien mit 124 neuen und 99 gelöschten Zeilen
Nur Änderungen aus Commit cc3a5fcf18 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -52,7 +52,7 @@ public class BungeeCore extends Plugin {
public void onEnable(){
setInstance(this);
loadConfig();
Veraltet
Review

Nein, das kommt in die Datenbank (das skaliert schließlich)

Nein, das kommt in die Datenbank (das skaliert schließlich)
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();

Datei anzeigen

@ -24,19 +24,18 @@ public class ChallengeCommand extends BasicCommand {
return;
}
if (!(sender instanceof ProxiedPlayer)) {return;}
if (!(sender instanceof ProxiedPlayer))
Veraltet
Review

Deutsch bitte.

Deutsch bitte.
Veraltet
Review

Bzw. kannst du die Nachricht auch komplett weglassen

Bzw. kannst du die Nachricht auch komplett weglassen
return;
Veraltet
Review

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;
}

Datei anzeigen

@ -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);
Veraltet
Review

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;
}
Veraltet
Review

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;
Veraltet
Review

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.");
Veraltet
Review

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.");
}
}

Datei anzeigen

@ -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;
Review

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)
Review

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

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
Review

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){

Datei anzeigen

@ -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;

Datei anzeigen

@ -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);
Veraltet
Review

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;
}
Veraltet
Review

Tab-Spacing

Tab-Spacing
Veraltet
Review

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
Veraltet
Review

Auch hier: Bitte mit SteamwarUser

Auch hier: Bitte mit SteamwarUser
Veraltet
Review

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
Veraltet
Review

Ich meine target.

Ich meine target.
Veraltet
Review

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.");
}
}

Datei anzeigen

@ -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());
}
}