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 132 neuen und 4 gelöschten Zeilen

Datei anzeigen

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

@ -1,6 +1,7 @@
package de.steamwar.bungeecore.commands;
import de.steamwar.bungeecore.*;
import de.steamwar.bungeecore.sql.IgnoreSystem;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.ClickEvent;
@ -22,14 +23,20 @@ public class ChallengeCommand extends BasicCommand {
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§echallenge §8[§7Spieler§8]");
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;
}else if (IgnoreSystem.isIgnored(target, (ProxiedPlayer) sender)) {
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer Herausgeforderte hat dich geblockt.");
return;
}
Subserver subserver = Subserver.getSubserver(target);

Datei anzeigen

@ -0,0 +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);
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

@ -1,6 +1,7 @@
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.ProxyServer;
@ -37,6 +38,9 @@ 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, 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){
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!");
return;

Datei anzeigen

@ -1,6 +1,7 @@
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;
@ -30,11 +31,12 @@ public class RCommand extends BasicCommand {
if(target == null){
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDu hast bisher mit niemandem geschrieben!");
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

@ -0,0 +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);
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

@ -0,0 +1,31 @@
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 IgnoredPlayers 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 IgnoredPlayers (Ignorer, Ignored) VALUES (?, ?)", ignorer.getId(), ignored.getId());
}
public static void unIgnore(SteamwarUser ignorer, SteamwarUser ignored) {
SQL.update("DELETE FROM IgnoredPlayers WHERE Ignorer = ? AND Ignored = ?", ignorer.getId(), ignored.getId());
}
}