Skip to content

Instantly share code, notes, and snippets.

View DarkSeraphim's full-sized avatar

Mark Hendriks DarkSeraphim

View GitHub Profile
@DarkSeraphim
DarkSeraphim / TimeUnit
Last active March 12, 2016 22:56
Converting longs to nice time Strings and back
public enum TimeUnit
{
S("second", 1000, 's'),
MIN("minute", 60000, 'm'),
HOUR("hour", 3600000, 'h'),
DAY("day", 86400000, 'd'),
WEEK("week", 604800000, 'w')
;
private final String name;
static String test = "0,&f&fAura Spell,4,28[&2Random Spellpart{2:-10},&fRandom Spellpart{4:7,3:5}]|1,&2&2Ball Spell,3,36[&fRandom Spellpart{1:9,3:-7}]|0,&f&fAura Spell,4,61[&5Random Spellpart{0:2,1:2},&fRandom Spellpart{1:-6}]";
static Pattern nullSplitter = Pattern.compile("\0");
static Pattern spellsPattern = Pattern.compile("((?:[0-9]+),(?:.*?),(?:[0-9]+),(?:[0-9]+)(?:\\[(?:.*?)\\]))\\|?");
static Pattern spellPattern = Pattern.compile("([0-9]+),(.*?),([0-9]+),([0-9]+)(?:\\[(.*?)\\])");
static Pattern spellPartsPattern = Pattern.compile("((?:.*?)\\{(?:.*?)\\}),?");
static Pattern spellPartPattern = Pattern.compile("(.*?)\\{(.*?)\\}");
static Pattern modifiersPattern = Pattern.compile("([0-9]+:-?[0-9]+),?");
static Pattern modifierPattern = Pattern.compile("([0-9]+):(-?[0-9]+)");
@DarkSeraphim
DarkSeraphim / Settings.java
Created August 19, 2014 00:07
static Settings without static
package net.darkseraphim.settings;
import com.google.common.collect.Sets;
import org.bukkit.Color;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.util.NumberConversions;
import org.bukkit.util.Vector;
...
public boolean damageEntity(DamageSource damagesource, float f) {
boolean flag = super.damageEntity(damagesource, f);
if(damagesource.isExplosion() && damagesource.getEntity() == CraftEventFactory.entityDamage) {
return true;
}
return flag;
}
...
@DarkSeraphim
DarkSeraphim / Regex.java
Created August 25, 2014 08:13
Regex filtering, gotta love it
package net.darkseraphim.chat.filter;
import org.apache.commons.lang.StringUtils;
import java.util.regex.Pattern;
/**
* @author DarkSeraphim
*/
public class Regex
@DarkSeraphim
DarkSeraphim / CachedConnection.java
Created August 26, 2014 15:21
Cached PreparedStatements in connection pools. Will this work out?
public class CachedConnection implements Connection
{
// Yay for delegation :3
// Just for the non Lombok people, it will automatically
// create methods that delegate functionality to this object
@Delegate(types = Connection.class)
private final Connection connection;
private final Map<String, PreparedStatement> cachedStatements;
@DarkSeraphim
DarkSeraphim / CustomSimplePluginManager.java
Created August 27, 2014 23:09
Per world events much? Untested, but might work perfectly fine.
package net.darkseraphim.worldlyplugins;
import lombok.Delegate;
import lombok.RequiredArgsConstructor;
import org.bukkit.Bukkit;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.plugin.*;
import java.util.logging.Level;
@DarkSeraphim
DarkSeraphim / DoubleKeyHashMap.java
Created August 28, 2014 14:34
Map where two keys map to one value
package net.darkseraphim.dev
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 / mockup.java
Created August 29, 2014 19:58
Riding projectiles in Minecraft.
/**
*
* Do note: only Arrow and ThrownExpBottle work with this method.
* The rest was just testing material.
*
**/
Team team;
@DarkSeraphim
DarkSeraphim / Callback.java
Created September 1, 2014 23:24
Callbacks in Java
public abstract class Callback<T>
{
public abstract void execute(T result);
public final void call(Plugin plugin, T result)
{
if(Bukkit.isPrimaryThread())
{
this.execute(result);
return;