Java-Bibliothek für das Minecraft-Protokoll

Wenn sich der Minecraft-Client mit dem entsprechenden Server verbindet, so kommunizieren diese über ein festgelegtes Protokoll. Mit einer eigenen Implementation dieses Protokolls ist es möglich sich mit einem Minecraft-Server zu verbinden und entsprechende Aktionen durchzuführen. Zum Beispiel könnte diese Möglichkeit genutzt werden um einen Bot für Minecraft zu schreiben. Eine solche Implementation des Minecraft-Protokolls ist die Java-Bibliothek MCProtocolLib von Steven Smith.

Central City auf meinem eigenen Minecraft-Server

Ein minimales Beispiel, für den Login auf dem Server (basierend auf einem Unit-Test der Bibliothek), mit besagter Bibliothek könnte dabei wie folgt aussehen:

public class SimpleBot {

    private static final String HOST = "example.org";
    private static final int PORT = 25565;
    private static final Proxy PROXY = Proxy.NO_PROXY;
    private static final Proxy AUTH_PROXY = Proxy.NO_PROXY;
    private static final String USERNAME = "user@example.org;
    private static final String PASSWORD = "password";

    public static void main(String[] args) throws FileNotFoundException, RequestException {

        MinecraftProtocol protocol = new MinecraftProtocol(USERNAME, PASSWORD);
        Client client = new Client(HOST, PORT, protocol, new TcpSessionFactory(PROXY));
        client.getSession().setFlag(MinecraftConstants.AUTH_PROXY_KEY, AUTH_PROXY);

        client.getSession().addListener(new SessionAdapter() {
            @Override
            public void packetReceived(PacketReceivedEvent event) {
                if(event.getPacket() instanceof ServerJoinGamePacket) {
                    event.getSession().send(new ClientChatPacket("Hello, World!"));
                } else if(event.getPacket() instanceof ServerChatPacket) {
                    Message message = event.getPacket().getMessage();
                    System.out.println("Received Message: " + message.getFullText());
                    if(message instanceof TranslationMessage) {
                        System.out.println("Received Translation Components: " + Arrays.toString(((TranslationMessage) message).getTranslationParams()));
                    }

                    event.getSession().disconnect("Finished");
                }
            }

            @Override
            public void disconnected(DisconnectedEvent event) {
                System.out.println("Disconnected: " + Message.fromString(event.getReason()).getFullText());
                if(event.getCause() != null) {
                    event.getCause().printStackTrace();
                }
            }
        });

        client.getSession().connect();
    }
}

In diesem Beispiel wird sich mit dem Server verbunden und nach erfolgreicher Verbindung eine Chatnachricht gesendet. Danach loggt sich der Bot wieder aus. Der Quelltext der Bibliothek ist auf GitHub zu finden. Das Projekt ist unter der MIT-Lizenz lizenziert und damit freie Software.

Schriftarten zum Programmieren

Bei der Entwicklung von Software wird in den meisten Fällen ein wie auch immer gearteter Editor bzw. eine IDE genutzt. Innerhalb dieser IDE ist zur Darstellung des Quelltextes eine Monospace-Schriftart gesetzt. In einer solchen Schriftart sind alle Zeichen gleich breit. In folgendem Beispiel wird das deutlich:

www
iii

Sowohl das w als auch das i haben in einer Monospace-Schriftart die gleiche Breite. Bei der Entwicklung ist dies natürlich sehr praktisch, da dadurch der Quelltext an Übersichtlichkeit gewinnt. Jede IDE liefert in der Voreinstellung eine bestimmte Monospace-Schriftart mit. Soll diese Voreinstellung geändert werden, so findet sich eine große Auswahl an freien Monospace-Schriftarten im Netz. Die Programming Fonts-App erleichtert die Auswahl der passenden Schriftart.

In der App konnten die unterschiedlichen Schriftarten ausprobiert werden

In dieser App können die unterschiedlichen Fonts ausgewählt werden und in einem Editor schnell auf ihre Eignung geprüft werden. Der Quelltext der App ist auf GitHub zu finden. Lizenziert ist das Ganze unter der MIT-Lizenz und damit freie Software.

Datenbank ausprobieren leicht gemacht

Manchmal steht man vor dem Problem das eine Datenbank-Abfrage konstruiert werden soll, aber gerade keine Datenbank zur Hand ist. Auch für pädagogische Zwecke soll nicht gleich mit Kanonen auf Spatzen geschossen werden. Stattdessen bietet sich der Dienst SQL Fiddle an. SQL Fiddle selbst beschreibt sich wie folgt:

A tool for easy online testing and sharing of database problems and their solutions.

Im Dienst kann eine Datenbank definiert werden und diesen anschließend mit Werten befüllt werden. Nach der erfolgten Definition wird das Schema erzeugt und anschließend kann die Datenbank mit Abfragen getestet werden. Technisch wird bei jeder Schemageneration eine neue Datenbank erzeugt und für jede Abfrage wird eine Transaktion erzeugt, welche nach der Abfrage wieder zurückgerollt wird. Dadurch befindet sich die Datenbank immer in dem definierten Status.

Mit SQL Fiddle können Datenbankabfragen schnell getestet werden

Der Quelltext des Projektes ist auf GitHub zu finden. Er ist unter der MIT-Lizenz lizenziert und somit freie Software. Zu finden ist der Dienst unter sqlfiddle.com.

Google Fonts herunterladen

Im Rahmen der DSGVO wird unter anderen Datensparsamkeit gefordert; bei vielen Webseiten ist dies leider nicht immer gegeben. So findet häufig die Einbindung der Google Fonts vor. Jetzt ist es per se nicht verwerflich Google Fonts zu nutzen, allerdings sollten diese Fonts lokal eingebunden werden. Wenn dies nicht geschieht und sie direkt über das CDN von Google eingebunden werden, überträgt man bei jedem Aufruf entsprechende Daten an Google.

fonts.google.com

Um dies zu unterbinden, sollte die gewünschte Schriftart heruntergeladen werden und anschließend lokal in die eigene Webseite bzw. das eigene Projekt eingebunden werden. Hierfür bietet sich der google-webfonts-helper von Mario Ranftl an. Dort wählt man die gewünschte Schriftart aus und kann diese anschließend herunterladen. Neben dem eigentlichen Font wird auch entsprechendes CSS zu Einbindung bereitgestellt. Genutzt werden kann der google-webfonts-helper nicht nur über die Weboberfläche, sondern auch über eine entsprechende REST-API.

Der google-webfonts-helper

Der Quelltext des google-webfonts-helper kann über GitHub bezogen werden. Lizenziert ist das Projekt unter der MIT Lizenz und damit freie Software.

Webseite auf Datenschutzprobleme abklopfen

Die meisten Webseiten in der heutigen Zeit beziehen ihre Daten nicht nur vom eigenen Server, sondern nutzen Dienste von Drittanbietern wie Google Fonts oder ähnliche. Daneben gibt es andere Probleme, welche im Zusammenhang mit dem Datenschutz (und der DSGVO) auf einer Webseite auftreten können. Überprüfen kann man seine Website mit dem Tool Webbkoll. Das unter webbkoll.dataskydd.net zu findende Werkzeug nimmt eine URL entgegen und analysiert diese.

Die Ergebnisse der Analyse

Analysiert werden unterschiedlichste datenschutzrelevante Dinge, wie Third-Party-Requests, Cookies, Referrer und bestimmte Einstellung welche für mehr Sicherheit sorgen. Die Analyse glänzt mit eine Fülle von Informationen über die jeweiligen Probleme sowie Vorschläge zu dessen Lösung. Webbkoll ist unter der MIT Lizenz lizenziert und damit freie Software. Der entsprechende Quelltext befindet sich auf GitHub.