Grundsätzlich können Sie jede IP sehen, mit der du dich mit ihren Servern verbunden hast. Soweit ich weiß, wird das auch automatisch geloggt und bei einer zu starken abweichung deiner IP wirst du auch gerne Mal nach einem erneutem Login gefragt.

Ob die Mitarbeiter zugriff auf eine IP-Historie haben weiß ich ebenfalls nicht

...zur Antwort

Git selber hat diese Funktion meines Wissens nicht.

GitHub hingegen bietet einige Möglichkeiten die mir auf die schnelle einfallen

  • Du hast ein Skript, dass auf neue Releases/Commits prüft (z.B. über die GitHub API) und bei bedarf dann die neuste Version herunterlädt. Das Skript kannst du mit Crontab regelmäßig ausführen lassen
  • Du nutzt GitHub Webhooks, die eine Webseite aufrufen, sobald ein bestimmtes Ereigniss eintritt (z.B. neuer commit im branch master). Und dieser Webseitenaufruf auf deinem Server startet dann ein update (z.B. git pull ausführen?)
  • Du nutzt GitHub Actions, um etwas ähnliches wie die Webhooks umsetzen zu können, jedoch mit mehr Kontrolle. WebHooks können auf GitHub-Servern Befehle und Aktionen ausführen. Du kannst deinen Server hier benachrichtigen lassen und theoretisch direkt die neuen Dateien mitsenden lassen (An eine Authentifizierungsverfahren achten, damit nicht jeder einfach Dateien senden kann - Im besten Fall vllt. deinen Server nur benachrichten dass es ein Update gibt und ihn selber downloaden lassen).
...zur Antwort

Klingt verdächtig... Komische Ordnerbezeichnungen die von Windows einfach unter den Teppich gekehrt wurden klingen aber leider nach einem Hardwareproblem oder gemeine Malware.

Ich würde Mal das Programm LinuxReader von DiskInternals probieren oder direkt eine LiveCD/-USB testen wenn du da ein gewissen verständnis hast oder dir die Daten wichtig sind.

Wenn das nichts bringt und du die Daten dennoch retten willst, würde ich es mit PhotoRec/TestDisk probieren, ob er noch Dateien findet, doch diese können natürlich bereits beschädigt und unbrauchbar sein.

...zur Antwort

Es gibt und wird Fortnite nicht als zip-datei oder ähnliches geben. Das Spiel ist auch zu groß als dass man es mal eben bei jedem Update neu verpacken wolle.

Ich kann nicht sagen, ob es bei Fortnite der Fall ist, doch die meisten Online-Games nutzen ihre Adminrechte bei der Installation oder beim Start, um Anti-Cheat vorrichtungen einbauen zu können und einen zumindest etwas besseren Schutz bieten zu können.

Du kannst höchsten selber versuchen das Instalationsverzeichnis von einem anderem System zu übertragen, doch ich bezweifle dass das einfach so gehen wird.

...zur Antwort

gutefrage.net ist dafür die falsche Platform. In einem Forum, für Pythonentwicklung, bist du besser aufegehoben. Außerdem folgendes:

  1. Du wirst selten kostenlos ein fertiges Programm bzw. Skript bekommen. Wenn dann nur kleine oder Links zu bestehenden Projekten
  2. Python 2 ist schon ziemlich alt und 3 ist schon lange drauße. Außerdem erhält Python 2 nun keine Updates mehr. Ein Wechsel ist zu empfehlen.
  3. Umschreib doch wenigstens deinen Beitrag, damit wir nicht wissen dass du nichts gutes vor hast. So wird man dir deutlich seltener helfen wollen
...zur Antwort

Entweder nutzt du eine while-Schleife, die so lange ausführt, bis ein anderes Kit gewählt wurde, oder du legst z.B. eine Kopie der Liste ohne das gewünschte Kit an und wählst aus diesem einen zufälligen Eintrag. Bei der while-Schleife solltest du aber die Fälle von zu wenigen Kits in der Liste bedenken (Abbruchbedingung).

...zur Antwort

Dafür benötigst du einen Permissions-Manger. Empfehlen kann ich hier LuckPerms. Von PermissionsEx kann ich wiederum nur abraten, da es sehr lange keine Updates erhalten hat und für Einsteiger meistens zu Fehleranfällig ist. LuckPerms bietet mittlerweile auch deutlich mehr nützliche Funktionen, wie einen grafischen Editor.

Im Falle von LuckPerms:

Du kannst per Konsole oder wenn du dir die Rechte gegeben hast mit /lp neue Gruppen anlegen wie z.B. "Freunde" oder "Moderatoren" oder auch einfach nur die bestehende "default"-Gruppe nutzen, die jeder Spieler automatisch hat.

Um Permissions hinzuzufügen gibt es dann einen Befehl oder den Editor mit /lp editor

Die Permissions für bestimtme Befehle findest du in der Regel auf der Download-Seite der Plugins, die den Befehl bereitstellen.

Weitere Funktionen von LuckPerms findest du ebenfalls auf der Download-Seite erklärt oder im Wiki.

...zur Antwort

Nicht bei Eclipse. Denn ohne den Quelltext gibt es nichts zum umprogrammieren bzw. nicht in Java.

Aber es gibt decompiler die man nutzen kann, um von der .jar einen Quelltext zu bekommen, der zumindest eine annäherung darstellt. Es gibt keine 100% Erfolgschance und man kann als Entwickler gegenmaßnahmen ergreifen, um es zu erschweren.

Beachte bitte geltende Lizenzen bzw. Rechte am Plugin.

Auf http://www.javadecompilers.com/ werden ein paar decompiler genannt, die du direkt im Browser nutzen kannst. Die meisten anderen decompiler sollten es jedoch auch tun.

...zur Antwort

Code werde ich keinen bieten, doch der einfachste Weg wäre:

  • Mit der Scanner-Klasse die 2 gewünschten Zeilen abfragen
  • Eine temporäre Datei anlegen und diese 2 Zeilen dirt hineinschreiben (in HTML)
  • Mittels der Desktop-Klasse diese Datei vom Browser öffnen lassen

Im Grunde ist es ziemlich einfach. Der genaue Zweck ist mir nicht ganz klar, da man solche Sachen in bspw. JavaScript schöner lösen kann usw. also eher zur Übung?

...zur Antwort

Ich glaube in der 1.14 gibt es den Befehl /team. Dieser enthält einige Funktionen die früher in /scoreboard waren. Beispiel:

/team modify Miner color blue

Wo Miner das Team ist.

Solltest du einen Bukkit-/Spigot-Server betreiben kannst du auch Plugins wie LuckPerms nutzen um Spieler in Gruppen zu teilen und diesen auch verschiedene Rechte auf dem Server zukommen zu lassen.

...zur Antwort

Es ist von der Standard Edition die Rede. Das war früher die Bezeichnung für die heutige Java-Edition. Da außerdem Amazon die Windows 10 Edition (aka Bedrock Edition) gesondert listet auf der Produktseite, scheint es ein Code für die Java Edition zu sein

...zur Antwort
Multithreading mit Bukkit?

Hallo liebe Community,

Ich habe ein Plugin geschrieben, womit 2 Methoden gleichzeitig laufen sollen. Beim Laden des Plugins auf meinen Test-Server kommt nach dem Enabeln eine Fehlermeldung:

[11:00:34 WARN]: Exception in thread "Thread-8"
[11:00:34 WARN]: java.lang.IllegalStateException: Asynchronous scoreboard creation!
[11:00:34 WARN]:    at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:14)
[11:00:34 WARN]:    at org.bukkit.craftbukkit.v1_8_R1.scoreboard.CraftScoreboardManager.getNewScoreboard(CraftScoreboardManager.java:45)
[11:00:34 WARN]:    at org.bukkit.craftbukkit.v1_8_R1.scoreboard.CraftScoreboardManager.getNewScoreboard(CraftScoreboardManager.java:1)
[11:00:34 WARN]:    at de.nurteam.varo.ScoreboardThread.setScore(ScoreboardThread.java:25)
[11:00:34 WARN]:    at de.nurteam.varo.ScoreboardThread.run(ScoreboardThread.java:44)

Kurze Beschreibung des Plugins:

Ich programmiere an einem Varo-Plugin, indem es einen Scoreboard geben soll, wo steht, wie lange man noch Spielen darf. Dieser Scoreboard soll in einer Schleife laufen, um die Spielzeit zu aktualisieren. Gleichzeitig soll noch eine Methode laufen, die reguliert, wie lange man noch spielen darf und wie groß die Border ist usw.

Nun müssen beide Methoden gleichzeitig laufen, da sie voneinander abhängig sind und das Plugin nicht läuft, wenn eine Methode versagt. Hoffentlich habe ich mich verständlich ausgedrückt:).

Hier sind Teile meines Plugins als Code einsehbar:

//Klasse die Scoreboard und Multithreading managed:
import org.bukkit.Bukkit;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;

public class ScoreboardThread extends Thread{

String name;

ScoreboardThread(String s){
    
    this.name = s;


}

public static void setScore() {


    Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
    Objective objective = ((org.bukkit.scoreboard.Scoreboard) board).registerNewObjective("abc", "abc");
    objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    objective.setDisplayName("§6§lWillkommen bei Ravo!");
    objective.getScore("§e ").setScore(8);
    objective.getScore("§5 ").setScore(6);
    objective.getScore("§bDu gehörst zum Team: #").setScore(5);
    objective.getScore("§4 ").setScore(4);
    objective.getScore("§cUnser TS3-Server: PlusTube.eu ").setScore(3);
    objective.getScore("§3 ").setScore(2);
    objective.getScore("§2Viel Spaß! ").setScore(1);

}

public void run() {
    if(this.name == "t1") {
        
        setScore();
    }
    if(this.name == "t2") {
        Varo.getPlugin().startChecking();
    }
}

}

...zum Beitrag

Einige Funktionen der Bukkit-API sind zum Grunde der Threadsicherheit nur im Hauptthread des Servers erlaubt. Wenn du es async zum Server laufen haben willst, kannst du z. B. die neuen Werte vorbereiten und mit Bukkit.getScheduler()#scheduleSyncDelayedTask die Aufgabe zum Aktualisieren an den Hauptthread übergeben. Wenn du den delay weglässt bzw. auf 0 setzt, wird er beim nächsten Servertick abgearbeitet.

Je nach Anwendungsfall, lassen sich solche Sachen auch vollständig über Bukkit-Scheduler lösen.

...zur Antwort

Je nach Server wollen Sie sich rechtlich z. B. richtung Datenschutz absichern oder einfach nur, um nervigen oder aufdringlichen Spieler, die wegen Regelverstoß gebannt werden mit deren Zustimmung der Bestimmungen direkt abweisen können.

...zur Antwort
&& Operator

Der &&-Operator sorgt in diesem Fall für einen übersichtlicheren und kürzeren Code.

Das Beispiel zum Ausschließen halte ich wiederum für absichtlich kompliziert gehalten und würde es nicht wirklich empfehlen.

...zur Antwort

Es gibt keinen offiziellen Download und mir ist auch kein inoffizieller bekannt.

Dies steht auf der Plugin-Seite (SpigotMC.org):

By default plugin comes with Full EN and partial LT/DE/CS/FR/RU translation files. If you want to translate file to your own laguage, just change in generalConfig file from locale-language: en to your desired language. After server reload you can freely edit your locale file.
...zur Antwort

Der verlinkte Code verwirrt mich etwas... Liegt vielleicht an der Webseite selber und nicht am Code.

Ich würde an deiner Stelle einfach mit der im Code verlinkten Webseite arbeiten: https://cookieconsent.osano.com/download/

Dort kannst du an ein paar Reglern rumschrauben, bis es dir gefällt und den generierten Code einfügen. Dieser Funktioniert bei mir einwandfrei!

...zur Antwort