Archie Mclellan

Java Developer • Cyber Security Enthusiast • Sysadmin

About Me

I’m a self-taught Java developer, network admin, and cybersecurity enthusiast passionate about building incredible Minecraft experiences.

Projects

Join Message Plus

Customizes join messages in Minecraft.

Create Plus

A modpack built for the Create mod.

Tools & Utilities

CKrypt

Military-grade text encryption with KSP-64 transformation. Secure your messages with advanced cipher algorithms right in your browser.

CKrypt Images

Encrypt and decrypt images with KSP-64. Creates .ckrypt files with tamper-detection headers for secure image storage and sharing.

D&D Tools Suite

Complete toolkit for Dungeons & Dragons players and DMs. Includes loot generators, encounter builder, and spell search utilities.

Downloads

Code Snippets

Useful code examples and snippets from my projects. Find more on my GitHub.

Java Plugin Event Handler

Efficient event handling pattern for Minecraft plugins with automatic registration.

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
    Player player = event.getPlayer();
    String customMessage = config.getString("join-message")
        .replace("%player%", player.getName());
    event.setJoinMessage(customMessage);
}

JavaScript Encryption Helper

Client-side encryption utility using Web Crypto API for secure data handling.

async function encryptText(plaintext, password) {
    const encoder = new TextEncoder();
    const data = encoder.encode(plaintext);
    const key = await deriveKey(password);
    const iv = crypto.getRandomValues(new Uint8Array(12));
    const encrypted = await crypto.subtle.encrypt(
        { name: 'AES-GCM', iv: iv },
        key,
        data
    );
    return { encrypted, iv };
}

Python Network Scanner

Simple port scanner for network security auditing and reconnaissance.

import socket

def scan_port(host, port, timeout=1):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(timeout)
    result = sock.connect_ex((host, port))
    sock.close()
    return result == 0  # True if port is open

Contact

Get in touch using the form below or email me directly at contact@archiem.top.

More Projects

Check out my blog for technical articles and updates, or explore WebToys for a collection of interesting web experiments and tools.