Skip to content

Instantly share code, notes, and snippets.

View DarkSeraphim's full-sized avatar

Mark Hendriks DarkSeraphim

View GitHub Profile
@DarkSeraphim
DarkSeraphim / MultiKeyMap.java
Last active August 29, 2015 14:02
Map with multiple keys to the same value, strict implementation
package net.darkseraphim.dungeons.util;
import org.apache.commons.lang.Validate;
import java.util.HashMap;
import java.util.Map;
/**
* @Author DarkSeraphim
*/
@DarkSeraphim
DarkSeraphim / EmptyChunkGenerator.java
Created June 6, 2014 19:20
Much empty such space wow
package net.darkseraphim.dungeons.util;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@DarkSeraphim
DarkSeraphim / Trickery.java
Created June 7, 2014 19:07
Smart Bukkit statics. The nice trick to have static access without spoiling the fun with memory management.
public class AnyClass
{
private final MainClass plugin;
public AnyClass(MainClass plugin)
{
this.plugin = plugin;
}
@DarkSeraphim
DarkSeraphim / Permissions.java
Last active August 29, 2015 14:02
Simple small permission system
public class Permissions
{
public enum Permission
{
CREATE,
DERP
;
private final long val;
@DarkSeraphim
DarkSeraphim / IslandIndicesUtil.java
Last active August 29, 2015 14:02
Algorithm for getting all indices of a square, working its way out.
/**
* @author DarkSeraphim
*/
public class IslandIndicesUtil
{
// Just a tad more OO and less breakable
public static class Indices
{
private final int x, z;
@DarkSeraphim
DarkSeraphim / NicknameVault
Last active August 29, 2015 14:02
Cross-server nicknames using HubAPI
package com.castawaydev.nicknamevault;
import com.castawaydev.hubapi.HubAPI;
import com.google.common.collect.Sets;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@DarkSeraphim
DarkSeraphim / SkyBlockMap.java
Created June 21, 2014 19:51
Strict mapping from K to V and L to V
package com.aaomidi.dev.skyblock.engine.objects;
import lombok.EqualsAndHashCode;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.Validate;
import java.util.AbstractSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@DarkSeraphim
DarkSeraphim / MultiKeyMap.java
Created June 24, 2014 13:56
Later, synchronized implementation. Might add MapMaker in the future
package com.aaomidi.dev.skyblock.engine.objects;
import lombok.EqualsAndHashCode;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.Validate;
import java.util.AbstractSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@DarkSeraphim
DarkSeraphim / ModuleImpl.java
Created July 2, 2014 01:16
Sample module for the class manager I wrote
package net.darkseraphim.testmodule;
import net.darkseraphim.classmanager.api.annotation.*;
import net.darkseraphim.classmanager.api.commands.DynCommandExecutor;
import net.darkseraphim.classmanager.api.module.ModuleInstance;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@DarkSeraphim
DarkSeraphim / JSONSplitter
Created July 11, 2014 12:15
Splits messages in coloured JSON parts
Pattern colour = Pattern.compile(ChatColor.COLOR_CHAR+"([0-9a-fk-or])(.*)", Pattern.CASE_INSENSITIVE);
public FancifulMessage foo(String msg)
{
String[] pieces = msg.replace(ChatColor.COLOR_CHAR.toString(), "\0"+ChatColor.COLOR_CHAR).split("\0");
int i = 0;
FancifulMessage fm;
// Perhaps reset
String part;
Matcher m;