Compare commits

...

5 commits

10 changed files with 97 additions and 24 deletions

View file

@ -24,7 +24,7 @@ apply plugin: 'forge'
sourceCompatibility = 1.8 sourceCompatibility = 1.8
targetCompatibility = 1.8 targetCompatibility = 1.8
version = "1.0.1" version = "1.2.4"
group = "xamora.gp_dbc" // http://maven.apache.org/guides/mini/guide-naming-conventions.html group = "xamora.gp_dbc" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "gp_dbc" archivesBaseName = "gp_dbc"

View file

@ -25,7 +25,7 @@ public class Main
public static GalacticPatrol gp = new GalacticPatrol(); public static GalacticPatrol gp = new GalacticPatrol();
public static final String MODID = "gp_dbc"; public static final String MODID = "gp_dbc";
public static final String VERSION = "0.0.1"; public static final String VERSION = "1.0.2";
@EventHandler @EventHandler
public void preInit(FMLPreInitializationEvent e) { public void preInit(FMLPreInitializationEvent e) {

View file

@ -62,7 +62,7 @@ public class RenderHandcuffIcon extends Gui {
&& playerAroundHandcuffed.containsKey(player.getUniqueID())) { && playerAroundHandcuffed.containsKey(player.getUniqueID())) {
double distance = Math.sqrt(Math.pow(player.posX - mc_ply.posX, 2) + Math.pow(player.posY - mc_ply.posY, 2)); double distance = Math.sqrt(Math.pow(player.posX - mc_ply.posX, 2) + Math.pow(player.posY - mc_ply.posY, 2));
System.out.println("distance: " + distance); //System.out.println("distance: " + distance);
if (distance > 10) if (distance > 10)
continue; continue;

View file

@ -2,6 +2,7 @@ package xamora.gp_dbc.system;
import xamora.gp_dbc.utils.Pos; import xamora.gp_dbc.utils.Pos;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import xamora.gp_dbc.utils.TeleportUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -83,9 +84,7 @@ public class Cell {
public void tpTo(EntityPlayer player) { public void tpTo(EntityPlayer player) {
Pos pos = getPos(); Pos pos = getPos();
if (player.dimension != pos.dimension) TeleportUtils.teleportDimension(player, pos.x + 0.5, pos.y + 1, pos.z + 0.5, pos.dimension);
player.travelToDimension(pos.dimension);
player.setPositionAndUpdate(pos.x + 0.5, pos.y + 1, pos.z + 0.5);
} }
@Override @Override

View file

@ -1,5 +1,6 @@
package xamora.gp_dbc.system; package xamora.gp_dbc.system;
import JinRyuu.JRMCore.JRMCoreH;
import JinRyuu.JRMCore.server.JGPlayerMP; import JinRyuu.JRMCore.server.JGPlayerMP;
import com.forgeessentials.chat.ModuleChat; import com.forgeessentials.chat.ModuleChat;
import xamora.gp_dbc.Main; import xamora.gp_dbc.Main;
@ -8,6 +9,8 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import xamora.gp_dbc.config.ConfigManager; import xamora.gp_dbc.config.ConfigManager;
import java.util.HashMap;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import static xamora.gp_dbc.config.ConfigManager.*; import static xamora.gp_dbc.config.ConfigManager.*;
@ -20,6 +23,8 @@ public class Criminal {
private long last_time_pos; private long last_time_pos;
private Pos last_pos; private Pos last_pos;
public HashMap<UUID, Integer> victims_alignLoose = new HashMap<>();
public Criminal(EntityPlayer player) { public Criminal(EntityPlayer player) {
this(player, 0); this(player, 0);
} }
@ -42,11 +47,24 @@ public class Criminal {
public void addKill(EntityPlayer killed) { public void addKill(EntityPlayer killed) {
JGPlayerMP jgKilled = new JGPlayerMP(killed); JGPlayerMP jgKilled = new JGPlayerMP(killed);
NBTTagCompound nbt = jgKilled.connectBaseNBT(); jgKilled.connectBaseNBT();
long add = Math.max(jgKilled.getAlignment() - 33, 0); int add = Math.max(jgKilled.getAlignment() - 33, 0);
if (Main.gp.isInGalacticPatrol(killed)) if (Main.gp.isInGalacticPatrol(killed))
add *= 2; add *= 2;
rate += add; rate += add;
victims_alignLoose.put(killed.getUniqueID(), add);
}
public boolean cancelVictim(UUID killed) {
if (!victims_alignLoose.containsKey(killed))
return false;
int align = victims_alignLoose.get(killed);
rate -= align;
victims_alignLoose.remove(killed);
return true;
} }
// Jail in second // Jail in second

View file

@ -1,8 +1,10 @@
package xamora.gp_dbc.system; package xamora.gp_dbc.system;
import JinRyuu.JRMCore.server.JGPlayerMP;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import fastcraft.U;
import xamora.gp_dbc.config.ConfigManager; import xamora.gp_dbc.config.ConfigManager;
import xamora.gp_dbc.utils.Data; import xamora.gp_dbc.utils.Data;
import xamora.gp_dbc.utils.PlayerUtils; import xamora.gp_dbc.utils.PlayerUtils;
@ -13,6 +15,7 @@ import net.minecraft.server.MinecraftServer;
import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -52,16 +55,30 @@ public class Criminals {
return; return;
} }
Criminal criminal = null; JGPlayerMP jgKilled = new JGPlayerMP(dead);
if (isCriminal(killer.getUniqueID())) jgKilled.connectBaseNBT();
criminal = getCriminal(killer.getUniqueID()); if (jgKilled.getAlignment() < 33)
else return;
criminal = addCriminal(killer, 0);
if (isCriminal(killer.getUniqueID()))
getCriminal(killer.getUniqueID()).addKill(dead);
else
addCriminal(killer, 0).addKill(dead);
criminal.addKill(dead);
Data.saveDataString(listCriminalToString(criminals), "criminals"); Data.saveDataString(listCriminalToString(criminals), "criminals");
} }
public boolean cancelVictim(UUID killer, UUID dead) {
if (!isCriminal(killer))
return false;
Criminal criminal = getCriminal(killer);
boolean canceled = criminal.cancelVictim(dead);
if (criminal.getRate() <= 0)
criminals.remove(criminal);
return canceled;
}
public Criminal getCriminal(UUID uuid) { public Criminal getCriminal(UUID uuid) {
for (Criminal criminal : criminals) for (Criminal criminal : criminals)
if (criminal.getUuid().equals(uuid)) if (criminal.getUuid().equals(uuid))
@ -77,10 +94,8 @@ public class Criminals {
public Criminal addCriminal(EntityPlayer player, long rate) { public Criminal addCriminal(EntityPlayer player, long rate) {
if (gp.isInGalacticPatrol(player)) if (gp.isInGalacticPatrol(player))
return null; return null;
if (rate <= 0)
return null;
Criminal criminal = null; Criminal criminal;
if (isCriminal(player.getUniqueID())) { if (isCriminal(player.getUniqueID())) {
criminal = getCriminal(player.getUniqueID()); criminal = getCriminal(player.getUniqueID());
criminal.setRate(criminal.getRate() + rate); criminal.setRate(criminal.getRate() + rate);

View file

@ -4,6 +4,7 @@ import xamora.gp_dbc.Main;
import xamora.gp_dbc.config.ConfigManager; import xamora.gp_dbc.config.ConfigManager;
import xamora.gp_dbc.utils.Data; import xamora.gp_dbc.utils.Data;
import xamora.gp_dbc.utils.Pos; import xamora.gp_dbc.utils.Pos;
import xamora.gp_dbc.utils.TeleportUtils;
import xamora.gp_dbc.utils.TimeUtils; import xamora.gp_dbc.utils.TimeUtils;
import net.minecraft.command.ICommandSender; import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -221,9 +222,7 @@ public class Jail {
public void tpOutOfJail(EntityPlayer player) { public void tpOutOfJail(EntityPlayer player) {
Pos pos = ConfigManager.pos_exit_jail; Pos pos = ConfigManager.pos_exit_jail;
if (player.dimension != pos.dimension) TeleportUtils.teleportDimension(player, pos.x + 0.5, pos.y + 1, pos.z + 0.5, pos.dimension);
player.travelToDimension(pos.dimension);
player.setPositionAndUpdate(pos.x + 0.5, pos.y, pos.z + 0.5);
} }
public Cell getRandomCell() throws Exception { public Cell getRandomCell() throws Exception {

View file

@ -24,7 +24,7 @@ import static xamora.gp_dbc.Main.gp;
public class JailEvent { public class JailEvent {
int tick_time = 0; int tick_time = 0;
final int SLOWTICK_MAX = 20;//2000; final int SLOWTICK_MAX = 100;
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
@SubscribeEvent @SubscribeEvent
@ -108,12 +108,12 @@ public class JailEvent {
@SideOnly(Side.SERVER) @SideOnly(Side.SERVER)
@SubscribeEvent @SubscribeEvent
public void checkDeathCancel(LivingHurtEvent event) { public void checkHurtCancel(LivingHurtEvent event) {
if (!(event.entity instanceof EntityPlayer)) if (!(event.entity instanceof EntityPlayer))
return; return;
EntityPlayer player = (EntityPlayer)event.entity; EntityPlayer player = (EntityPlayer)event.entity;
if (gp.jail.isInJail(player)) if (gp.jail.isInJail(player) || Handcuff.isHandcuffed(player))
event.setCanceled(true); event.setCanceled(true);
} }
} }

View file

@ -28,7 +28,7 @@ public class Data {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path, true)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path, true));
for (int i = 0; i < list.size() - 2; i++) for (int i = 0; i < list.size() - 1; i++)
bufferedWriter.write(list.get(i) + "\n"); bufferedWriter.write(list.get(i) + "\n");
if (list.size() > 0) if (list.size() > 0)
bufferedWriter.write(list.get(list.size() - 1)); bufferedWriter.write(list.get(list.size() - 1));

View file

@ -0,0 +1,42 @@
package xamora.gp_dbc.utils;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.MathHelper;
import net.minecraft.world.Teleporter;
import net.minecraft.world.WorldServer;
public class TeleportUtils extends Teleporter
{
private final WorldServer worldServerInstance;
public TeleportUtils(WorldServer par1WorldServer) {
super(par1WorldServer);
this.worldServerInstance = par1WorldServer;
}
@Override
public void placeInPortal(Entity entity, double p2, double p3, double p4, float p5) {
int i = MathHelper.floor_double(entity.posX);
int j = MathHelper.floor_double(entity.posY);
int k = MathHelper.floor_double(entity.posZ);
this.worldServerInstance.getBlock(i, j, k); //dummy load to maybe gen chunk
int height = this.worldServerInstance.getHeightValue(i, k);
entity.setPosition( i, height, k );
return;
} // dont do ANY portal junk, just grab a dummy block then SHOVE the player setPosition() at height
public static void teleportDimension(EntityPlayer player, double x, double y, double z, int dimension) {
MinecraftServer ms = MinecraftServer.getServer();
WorldServer ws = ms.worldServerForDimension(dimension);
Teleporter teleporter = new TeleportUtils(ws);
ms.getConfigurationManager().transferPlayerToDimension((EntityPlayerMP) player, dimension, teleporter);
player.setPositionAndUpdate(x + 0.5, y, z + 0.5);
}
}