Skip to content

Instantly share code, notes, and snippets.

package me.superckl.addonmanager.commands;
import me.superckl.addonmanager.AddonManagerPlugin;
import com.massivecraft.factions.Conf;
import com.massivecraft.factions.cmd.FCommand;
import com.massivecraft.factions.struct.ChatMode;
import com.massivecraft.factions.struct.Permission;
/**
@superckl
superckl / gist:9961771
Last active August 29, 2015 13:58
Overriding the op command
final Field f = this.getServer().getClass().getDeclaredField("commandMap");
f.setAccessible(true);
this.bukkitCommandMap = (CommandMap) f.get(this.getServer());
((Map<String, Command>)this.bukkitCommandMap.getClass().getDeclaredField("knownCommands")).put("op", new OpOverrideCommand());
public class SeaweedDecorator implements IWorldGenerator{
@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
if(!BetterOceans.getInstance().getConfig().isGenSeaweed())
return;
Block block = null;
int tries = 20;
int baseX = chunkX, baseZ = chunkZ;
@superckl
superckl / gist:2953dc120ca3773e6d5b
Created July 11, 2014 19:54
Reflecting a final field
public static boolean setFinalStatic(final Class<?> clazz, final String field, final Object toPut, final boolean coverTracks){
try {
final Field toSet = clazz.getDeclaredField(field);
final boolean access = toSet.isAccessible();
toSet.setAccessible(true);
final boolean isFinal = (Modifier.FINAL & toSet.getModifiers()) == Modifier.FINAL;
final Field modifiers = Field.class.getDeclaredField("modifiers");
final boolean accessModifiers = modifiers.isAccessible();
modifiers.setAccessible(true);
modifiers.setInt(toSet, toSet.getModifiers() & ~Modifier.FINAL);
int Ewidth = 4;
int Eheight = 3;
ElipseHelper helper = new ElipseHelper((float) vec.xCoord, (float) vec.zCoord, Ewidth, Eheight);
if(random.nextBoolean()){
helper.setSwapXY(true);
Ewidth = (int) helper.getAxis2();
Eheight = (int) helper.getAxis1();
}
int x = (int) vec.xCoord;
int y = (int) vec.yCoord;
public class PartSelectionManager {
private Material[] materials;
private int matIndex;
private List<BoatPart>[] parts;
private int partIndex;
public PartSelectionManager add(Material material, List<BoatPart> parts){
if(material == null || parts == null)
return this;
all = forAllBiomes()
all.registerGenVillageBlockRep("minecraft:dirt", "minecraft:netherrack")
all.registerGenVillageBlockRep("minecraft:cobblestone", "minecraft:nether_brick")
all.registerGenVillageBlockRep("minecraft:log", "minecraft:nether_brick")
all.registerGenVillageBlockRep("minecraft:planks", "minecraft:nether_brick")
all.registerGenVillageBlockRep("minecraft:gravel", "minecraft:quartz_block")
all.registerGenVillageBlockRep("minecraft:oak_stairs", 0, "minecraft:nether_brick_stairs", 0)
all.registerGenVillageBlockRep("minecraft:oak_stairs", 1, "minecraft:nether_brick_stairs", 1)
all.registerGenVillageBlockRep("minecraft:oak_stairs", 2, "minecraft:nether_brick_stairs", 2)
all.registerGenVillageBlockRep("minecraft:oak_stairs", 3, "minecraft:nether_brick_stairs", 3)
public double[] interpolateY(double[] noise2D, int xWidth, int zWidth){
double[] noise3D = new double[256*xWidth*zWidth];
for(int i = 0; i < xWidth; i++){
for(int j = 0; j < zWidth; j++){
double scale = 0.1D; //Random number I made up
int xzIndex = i*xWidth + j;
double baseN = noise2D[xzIndex]+(noise2D[xzIndex]*128)*scale;
for(int y = 0; y < 256; y++){
noise3D[xzIndex*zWidth+y] = baseN;
baseN -= scale;