Skip to content

Instantly share code, notes, and snippets.

@Higgs1
Higgs1 / gist:4426001
Last active December 10, 2015 11:09
F-List Plugin Icon
/Td6WFoAAATm1rRGAgAhARwAAAAQz1jM4Cf/FkBdABiNghz+hLr94AK3xzwehblXPYMYwErnPWg+OjV176yNUF7Bsoo/sliR3d8e1PmlTedMJpBSdERua6/zkiYn/6/HYol1fyHocRQ/eQhm8W22giOO0x/oOmY1TjpJJyIGcCdcb5BNnjRzSr4I+VUtYjpAFAl4dp/rVo7EA99nQx8lMC3D3FguDmQp3Ki2yD4Z6YJwHDmzX4r0C1ozUSkjQ/yv/SxUdhb8XiJnGhrRzDm2ykNvwxDJe8L4xA5uSil6DJICf02eXtXZgXK3AFPAjsuJZ803nqntJ7wM/LpJ3WA/qgca8ZkOCitNXNMzsjjB1y7yPUUbzhhlSfS+T0dqFGRtWv52DhF1Y2fkg+qRkfSHLXRIy3puL58b+Aon2//l6DrB+n/Axd1LnpFE0c3tR9MAgME0mgKjO6rG1NTf4FFuUWjquKvF1qgtySnepNjPUZpGqiZZD4CvnP0lOjktWglk1uejb44EKAiw3oYtMSBr4QN/aedOLfVc7qHQUwBEee2ai+DhHOQyeHnxtLHdNYLHxlAPMQCQJE+Oo3PxRt7BGn9ZEXM7BliFq76RZ/qcJDGVwgbVVjtLFvpNbdA05/kC5ja3fJnNjfrx1QNfNwglhFJH+s6SvoIRcWpr2EzTN5E8HwxVOGqLA4xxaVCFWNCmLl+Pb2HBOWZecb++Xqz8WvCcMD5gKlRb8VTWJJcSLR1Sg82jdCm6mwmnm863z/a8d3/qYhvSwf/tuWhqj+YotTS3hvJn6q+S/410mqm1QX9druFhOKiM9TnLb0DnYyN2RsLyz9dkkxGc822fsle2p2BLhq9+8ZiVPrFqKgu+9uZBdHJgBZcrkeTYsuffQtQ9fd5bz0cVB2cTZ0Rm7gfx72Byd0oj+6Dc175zYiNKkC616RX/EAGeO+tLJHASQ2naRS3kp7+dPVUkkQ0vd47vC3OUzMlV+y2ZK9V2ISUYEEi4d70DkXbvDpP6ZGvt1On9
@Higgs1
Higgs1 / gist:5299134
Last active December 15, 2015 17:49
Cipher for Minecraft lastlogin files implemented in JavaScript.
(function(a) {
var j = [1056971584,1092420379, 222248973,1128348931, 239223324, 473841219,
507790366, 924989, 457179966,1060977933,1092295748, 218317597,
1075723843,1141775679, 239223296, 505151553],
k = [1953896747, 688289143,2020897649,1982400117, 707557120,1897474930,
746061866, 443773466, 2848041,2003989273,1920337524, 721820017,
443754872, 746027052, 704673306,1903522858],
n = [ 206766165,1442849110, 576215071,1411535372,1359237899, 542266657,
1461722967, 72616785,1397826060, 525555200, 186799190,1477115989,
1461670228, 69279832,1381436498, 553932064],
import math
import zlib
def encode(lines):
if len(lines) == 0: return "0"
# check if 3 points are on the same line, in order
def ison(a, c, b):
within = lambda p, q, r: p <= q <= r or r <= q <= p
return ((b[0] - a[0]) * (c[1] - a[1]) == (c[0] - a[0]) * (b[1] - a[1])
@Higgs1
Higgs1 / gist:6081790
Last active October 27, 2019 23:50
Automatic python installer for OptiForge. (Minecraft 1.6.2, Forge 9.10.1.859, OptiFine HD_U_C4). Patches FML.
#!/usr/bin/env python
# change these variables to install newer versions
minecraft_version = '1.6.2'
forge_version = '9.10.1.859'
optifine_version = 'HD_U_C4'
optiforge_version = '{0} (Forge {1}, OptiFine {2})'.format(
minecraft_version, forge_version.split('.')[-1], optifine_version.replace('_', ' '))
@Higgs1
Higgs1 / gist:9221555
Created February 26, 2014 01:18
My custom Minecraft launcher
#!/usr/bin/env bash
cd "$(dirname "$(realpath "$0")")"
source minecraft.properties
exec java -cp minecraft.zip -Djava.library.path=natives -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true net.minecraft.launchwrapper.Launch --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --assetsDir assets --gameDir data --username $username --session $session --version $version
@Higgs1
Higgs1 / README.md
Last active August 29, 2015 14:08
Python 3.4 API for DeckBrew.com's MTG card search.

Replace all duplicate url parameters with a list of values.
Boolean values must be written as 'true' or 'false'.
Typeahead call has a slightly different pattern, for convenience.
All paginated API calls are wrapped into a generator.
All non-paginated API calls are cached.
Errors throw DeckBrewError.

Python: db = DeckBrewAPI()

HTTP: GET /mtg/cards

@Higgs1
Higgs1 / a85decode_yz.js
Last active August 29, 2015 14:09
Ascii85 codecs for Javascript
/* This decoder supports both space and null byte folding,
and completely ignores all invalid characters (whitespace, misplaced x's and z's, etc).
Does not handle Adobe's <~ ~> frame.
Licensed under CC0. */
function a85decode(ascii85) {
for (var a = String, b = a.fromCharCode, c = ascii85.length, d = "", e = 0, f = 0, g = 0, h, i; i = a.charCodeAt(ascii85, e++) - 33, e <= c;
0 <= i && 85 > i ? (g = 85 * g + i, 4 < ++f && (h = b(g & 255), h = b((g >>>= 8) & 255) + h, h = b((g >>= 8) & 255) + h, d += b(g >> 8) + h, f = g = 0)) : f || (d += 88 == i ? " " : 89 == i ? "\0\0\0\0" : ""));
if (!f) return d;
for (e = 5 - f; g = 85 * g + 84, --e;);
return h = b(g & 255), h = b((g >>>= 8) & 255) + h, h = b((g >>= 8) & 255) + h, (d + b(g >> 8) + h).substring(0, d.length +-- f);
@Higgs1
Higgs1 / gist:369c249f7f4bd7ab2244
Created December 21, 2014 20:12
Python switch statement
class switch:
def __init__(_,o):_._,_.o=0,o
def __iter__(_):yield _.__
def __(_,*o):
if _._ or not o:return 1
elif _.o in o:_._=1;return 1
"""
Usage:
import string
@Higgs1
Higgs1 / gist:fee62d230bd87257e0b0
Last active August 29, 2015 14:11
UUID for Python 3
# Simple UUID class for python. Doesn't currently create random UUIDs.
# Supports conversion between byte, octal, integer, hexadecimal, RFC formatted,
# base64 (with or w/o padding), base85, and ascii85 representations.
# Supports various math and boolean operations as if it were an integer.
import functools, builtins, base64, struct, re
Q=0xFFFFFFFFFFFFFFFF
@functools.total_ordering
class UUID:
@Higgs1
Higgs1 / gist:16c8447fcbcf39d6f7df
Last active August 29, 2015 14:17
Javascript RGB ⇔ HSV
// Returns [hue, sat, val]. All 6 values are between 0...1.
function rgb2hsv(r, g, b) {
var v = Math.max(r, g, b),
x = v - Math.min(r, g, b);
return [
( x == 0 ? 0 :
v == g ? (b - r) / x + 2 :
v == b ? (r - g) / x + 4 :
(g - b) / x + 6