New teleport to stop spawn Portal, issue save criminals, new function for cancel kill criminal
This commit is contained in:
parent
32e081936c
commit
9b7b8131be
|
@ -24,7 +24,7 @@ apply plugin: 'forge'
|
||||||
sourceCompatibility = 1.8
|
sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
|
|
||||||
version = "1.1.2"
|
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"
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -9,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.*;
|
||||||
|
@ -21,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);
|
||||||
}
|
}
|
||||||
|
@ -43,10 +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);
|
||||||
long add = Math.max(jgKilled.getAlignment() - 32, 0);
|
jgKilled.connectBaseNBT();
|
||||||
|
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
|
||||||
|
|
|
@ -4,6 +4,7 @@ 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;
|
||||||
|
@ -14,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;
|
||||||
|
|
||||||
|
@ -66,6 +68,17 @@ public class Criminals {
|
||||||
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))
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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));
|
||||||
|
|
42
src/main/java/xamora/gp_dbc/utils/TeleportUtils.java
Normal file
42
src/main/java/xamora/gp_dbc/utils/TeleportUtils.java
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue