Merge pull request #22 from Pokemonplatin/1.7.10
Added Protected Frequencies to Teleporter and QuantumEntangloporter
This commit is contained in:
commit
7b047b5fea
16 changed files with 877 additions and 666 deletions
42
build.gradle
42
build.gradle
|
@ -2,15 +2,28 @@ defaultTasks 'fullBuild'
|
|||
|
||||
buildscript {
|
||||
repositories {
|
||||
maven { url = "https://repo1.maven.org/maven2/" }
|
||||
|
||||
// [HTTPS FIX] Replace mavenCentral() with the code block below
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2"
|
||||
}
|
||||
|
||||
maven {
|
||||
name = "forge"
|
||||
url = "https://files.minecraftforge.net/maven"
|
||||
}
|
||||
maven {
|
||||
name = "forge2"
|
||||
url = "https://maven.minecraftforge.net/"
|
||||
}
|
||||
maven {
|
||||
name = "sonatype"
|
||||
url = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
}
|
||||
|
||||
flatDir {
|
||||
dirs 'libs'
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
|
||||
|
@ -22,20 +35,34 @@ repositories {
|
|||
name 'CB Maven FS'
|
||||
url "http://chickenbones.net/maven/"
|
||||
}
|
||||
maven {
|
||||
name = "forge2"
|
||||
url = "https://maven.minecraftforge.net/"
|
||||
}
|
||||
maven {
|
||||
name 'ForgeFS'
|
||||
url 'http://files.minecraftforge.net/maven'
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'idea'
|
||||
allprojects {
|
||||
repositories {
|
||||
all { ArtifactRepository repo ->
|
||||
if (repo instanceof MavenArtifactRepository) {
|
||||
if (repo.url.toString().startsWith("http://repo1.maven.org/maven2")) {
|
||||
repo.url = repo.url.toString().replace("http://", "https://")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
idea {
|
||||
/*idea {
|
||||
module {
|
||||
// For some reason this is necessary for IDEA 2014 workspaces to recognize assets
|
||||
inheritOutputDirs = true
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
apply plugin: 'forge'
|
||||
|
||||
|
@ -60,11 +87,12 @@ version = "${config.minecraft_version}-${config.mod_version}." + (System.env.BUI
|
|||
archivesBaseName = "MekanismAll"
|
||||
libsDirName = "../output"
|
||||
distsDirName = "../output"
|
||||
sourceCompatibility = '1.7'
|
||||
targetCompatibility = '1.7'
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
|
||||
minecraft {
|
||||
version = config.minecraft_version + "-" + config.forge_version
|
||||
version = "1.7.10-10.13.4.1558-1.7.10"
|
||||
runDir = "eclipse"
|
||||
}
|
||||
|
||||
processResources
|
||||
|
|
|
@ -4,4 +4,4 @@ FMP_version=1.2.0.347
|
|||
CCLIB_version=1.1.3.141
|
||||
NEI_version=1.0.4.101
|
||||
CCC_version=1.0.6.39
|
||||
mod_version=9.10.6
|
||||
mod_version=9.10.7
|
||||
|
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
|||
#Mon Sep 14 12:28:28 PDT 2015
|
||||
#Wed Jul 02 15:54:47 CDT 2014
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip
|
||||
|
|
|
@ -540,6 +540,7 @@ public class ClientProxy extends CommonProxy
|
|||
teleporter.clientFreq = message.frequency;
|
||||
teleporter.clientPublicCache = message.publicCache;
|
||||
teleporter.clientPrivateCache = message.privateCache;
|
||||
teleporter.clientProtectedCache = message.protectedCache;
|
||||
|
||||
teleporter.updateButtons();
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ import mekanism.common.inventory.container.ContainerQuantumEntangloporter;
|
|||
import mekanism.common.network.PacketPortableTeleporter.PortableTeleporterMessage;
|
||||
import mekanism.common.network.PacketPortableTeleporter.PortableTeleporterPacketType;
|
||||
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
|
||||
import mekanism.common.security.ISecurityTile;
|
||||
import mekanism.common.tile.TileEntityQuantumEntangloporter;
|
||||
import mekanism.common.util.LangUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
|
@ -43,6 +44,7 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
public GuiButton publicButton;
|
||||
public GuiButton privateButton;
|
||||
public GuiButton protectedButton;
|
||||
|
||||
public GuiButton setButton;
|
||||
public GuiButton deleteButton;
|
||||
|
@ -51,7 +53,7 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
public GuiTextField frequencyField;
|
||||
|
||||
public boolean privateMode;
|
||||
public ISecurityTile.SecurityMode access;
|
||||
|
||||
public GuiQuantumEntangloporter(InventoryPlayer inventory, TileEntityQuantumEntangloporter tentity)
|
||||
{
|
||||
|
@ -65,7 +67,7 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
if(tileEntity.frequency != null)
|
||||
{
|
||||
privateMode = !tileEntity.frequency.publicFreq;
|
||||
access= tileEntity.frequency.access;
|
||||
}
|
||||
|
||||
ySize+=64;
|
||||
|
@ -81,8 +83,9 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
buttonList.clear();
|
||||
|
||||
publicButton = new GuiButton(0, guiWidth + 27, guiHeight + 14, 60, 20, LangUtils.localize("gui.public"));
|
||||
privateButton = new GuiButton(1, guiWidth + 89, guiHeight + 14, 60, 20, LangUtils.localize("gui.private"));
|
||||
publicButton = new GuiButton(0, guiWidth + 27, guiHeight + 14, 40, 20, LangUtils.localize("gui.public"));
|
||||
privateButton = new GuiButton(1, guiWidth + 69, guiHeight + 14, 40, 20, LangUtils.localize("gui.private"));
|
||||
protectedButton = new GuiButton(4, guiWidth + 111, guiHeight + 14, 40, 20, LangUtils.localize("gui.trusted"));
|
||||
|
||||
setButton = new GuiButton(2, guiWidth + 27, guiHeight + 116, 60, 20, LangUtils.localize("gui.set"));
|
||||
deleteButton = new GuiButton(3, guiWidth + 89, guiHeight + 116, 60, 20, LangUtils.localize("gui.delete"));
|
||||
|
@ -95,6 +98,7 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
buttonList.add(publicButton);
|
||||
buttonList.add(privateButton);
|
||||
buttonList.add(protectedButton);
|
||||
buttonList.add(setButton);
|
||||
buttonList.add(deleteButton);
|
||||
}
|
||||
|
@ -109,14 +113,20 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
ArrayList data = new ArrayList();
|
||||
data.add(0);
|
||||
data.add(freq);
|
||||
data.add(!privateMode);
|
||||
data.add(access.ordinal());
|
||||
|
||||
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
|
||||
}
|
||||
|
||||
public String getSecurity(Frequency freq)
|
||||
{
|
||||
return !freq.publicFreq ? EnumColor.DARK_RED + LangUtils.localize("gui.private") : LangUtils.localize("gui.public");
|
||||
if(freq.isPrivate()) {
|
||||
return EnumColor.DARK_RED + LangUtils.localize("gui.private");
|
||||
} else if(freq.isPublic()) {
|
||||
return LangUtils.localize("gui.public");
|
||||
}
|
||||
|
||||
return EnumColor.ORANGE + LangUtils.localize("gui.trusted");
|
||||
}
|
||||
|
||||
public void updateButtons()
|
||||
|
@ -128,35 +138,51 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
List<String> text = new ArrayList<String>();
|
||||
|
||||
if(privateMode)
|
||||
{
|
||||
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
for(Frequency freq : tileEntity.privateCache)
|
||||
{
|
||||
text.add(freq.name);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
publicButton.enabled = true;
|
||||
privateButton.enabled = false;
|
||||
protectedButton.enabled = true;
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
for(Frequency freq : tileEntity.publicCache)
|
||||
{
|
||||
text.add(freq.name + " (" + freq.owner + ")");
|
||||
}
|
||||
|
||||
publicButton.enabled = false;
|
||||
privateButton.enabled = true;
|
||||
protectedButton.enabled = true;
|
||||
} else {
|
||||
for(Frequency freq : tileEntity.protectedCache)
|
||||
{
|
||||
text.add(freq.name + " (" + freq.owner + ")");
|
||||
}
|
||||
|
||||
publicButton.enabled = true;
|
||||
privateButton.enabled = true;
|
||||
protectedButton.enabled = false;
|
||||
}
|
||||
|
||||
scrollList.setText(text);
|
||||
|
||||
if(privateMode)
|
||||
{
|
||||
publicButton.enabled = true;
|
||||
privateButton.enabled = false;
|
||||
}
|
||||
else {
|
||||
publicButton.enabled = false;
|
||||
privateButton.enabled = true;
|
||||
}
|
||||
|
||||
if(scrollList.hasSelection())
|
||||
{
|
||||
Frequency freq = privateMode ? tileEntity.privateCache.get(scrollList.selected) : tileEntity.publicCache.get(scrollList.selected);
|
||||
|
||||
Frequency freq;
|
||||
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
freq = tileEntity.privateCache.get(scrollList.selected);
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
freq = tileEntity.publicCache.get(scrollList.selected);
|
||||
} else {
|
||||
freq = tileEntity.protectedCache.get(scrollList.selected);
|
||||
}
|
||||
|
||||
if(tileEntity.getFrequency(null) == null || !tileEntity.getFrequency(null).equals(freq))
|
||||
{
|
||||
|
@ -245,11 +271,11 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
if(guibutton.id == 0)
|
||||
{
|
||||
privateMode = false;
|
||||
access = ISecurityTile.SecurityMode.PUBLIC;
|
||||
}
|
||||
else if(guibutton.id == 1)
|
||||
{
|
||||
privateMode = true;
|
||||
access = ISecurityTile.SecurityMode.PRIVATE;
|
||||
}
|
||||
else if(guibutton.id == 2)
|
||||
{
|
||||
|
@ -257,7 +283,15 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
if(selection != -1)
|
||||
{
|
||||
Frequency freq = privateMode ? tileEntity.privateCache.get(selection) : tileEntity.publicCache.get(selection);
|
||||
Frequency freq;
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
freq = tileEntity.privateCache.get(selection);
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
freq = tileEntity.publicCache.get(selection);
|
||||
} else {
|
||||
freq = tileEntity.protectedCache.get(selection);
|
||||
}
|
||||
|
||||
setFrequency(freq.name);
|
||||
}
|
||||
}
|
||||
|
@ -267,14 +301,21 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
if(selection != -1)
|
||||
{
|
||||
Frequency freq = privateMode ? tileEntity.privateCache.get(selection) : tileEntity.publicCache.get(selection);
|
||||
Frequency freq;
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
freq = tileEntity.privateCache.get(selection);
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
freq = tileEntity.publicCache.get(selection);
|
||||
} else {
|
||||
freq = tileEntity.protectedCache.get(selection);
|
||||
}
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
ArrayList data = new ArrayList();
|
||||
data.add(1);
|
||||
data.add(freq.name);
|
||||
data.add(freq.publicFreq);
|
||||
data.add(freq.access.ordinal());
|
||||
|
||||
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
|
||||
}
|
||||
|
@ -285,6 +326,9 @@ public class GuiQuantumEntangloporter extends GuiMekanism
|
|||
|
||||
scrollList.selected = -1;
|
||||
}
|
||||
}else if(guibutton.id == 4)
|
||||
{
|
||||
access = ISecurityTile.SecurityMode.TRUSTED;
|
||||
}
|
||||
|
||||
updateButtons();
|
||||
|
|
|
@ -23,6 +23,7 @@ import mekanism.common.network.PacketPortableTeleporter.PortableTeleporterMessag
|
|||
import mekanism.common.network.PacketPortableTeleporter.PortableTeleporterPacketType;
|
||||
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
|
||||
import mekanism.common.security.IOwnerItem;
|
||||
import mekanism.common.security.ISecurityTile;
|
||||
import mekanism.common.tile.TileEntityTeleporter;
|
||||
import mekanism.common.util.LangUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
|
@ -52,6 +53,7 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
public GuiButton publicButton;
|
||||
public GuiButton privateButton;
|
||||
public GuiButton protectedButton;
|
||||
|
||||
public GuiButton setButton;
|
||||
public GuiButton deleteButton;
|
||||
|
@ -62,13 +64,14 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
public GuiTextField frequencyField;
|
||||
|
||||
public boolean privateMode;
|
||||
public ISecurityTile.SecurityMode access = ISecurityTile.SecurityMode.PUBLIC;
|
||||
|
||||
public Frequency clientFreq;
|
||||
public byte clientStatus;
|
||||
|
||||
public List<Frequency> clientPublicCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> clientPrivateCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> clientProtectedCache = new ArrayList<Frequency>();
|
||||
|
||||
public boolean isInit = true;
|
||||
|
||||
|
@ -97,7 +100,7 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
if(tileEntity.frequency != null)
|
||||
{
|
||||
privateMode = !tileEntity.frequency.publicFreq;
|
||||
access = tileEntity.frequency.access;
|
||||
}
|
||||
|
||||
ySize+=64;
|
||||
|
@ -129,7 +132,7 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
if(item.getFrequency(stack) != null)
|
||||
{
|
||||
privateMode = item.isPrivateMode(itemStack);
|
||||
access = item.getAccess(itemStack);
|
||||
setFrequency(item.getFrequency(stack));
|
||||
}
|
||||
else {
|
||||
|
@ -149,8 +152,9 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
buttonList.clear();
|
||||
|
||||
publicButton = new GuiButton(0, guiWidth + 27, guiHeight + 14, 60, 20, LangUtils.localize("gui.public"));
|
||||
privateButton = new GuiButton(1, guiWidth + 89, guiHeight + 14, 60, 20, LangUtils.localize("gui.private"));
|
||||
publicButton = new GuiButton(0, guiWidth + 27, guiHeight + 14, 40, 20, LangUtils.localize("gui.public"));
|
||||
privateButton = new GuiButton(1, guiWidth + 69, guiHeight + 14, 40, 20, LangUtils.localize("gui.private"));
|
||||
protectedButton = new GuiButton(5, guiWidth + 111, guiHeight + 14, 40, 20, LangUtils.localize("gui.trusted"));
|
||||
|
||||
setButton = new GuiButton(2, guiWidth + 27, guiHeight + 116, 60, 20, LangUtils.localize("gui.set"));
|
||||
deleteButton = new GuiButton(3, guiWidth + 89, guiHeight + 116, 60, 20, LangUtils.localize("gui.delete"));
|
||||
|
@ -168,6 +172,7 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
buttonList.add(publicButton);
|
||||
buttonList.add(privateButton);
|
||||
buttonList.add(protectedButton);
|
||||
buttonList.add(setButton);
|
||||
buttonList.add(deleteButton);
|
||||
|
||||
|
@ -197,12 +202,12 @@ public class GuiTeleporter extends GuiMekanism
|
|||
ArrayList data = new ArrayList();
|
||||
data.add(0);
|
||||
data.add(freq);
|
||||
data.add(!privateMode);
|
||||
data.add(access.ordinal());
|
||||
|
||||
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
|
||||
}
|
||||
else {
|
||||
Frequency newFreq = new Frequency(freq, null).setPublic(!privateMode);
|
||||
Frequency newFreq = new Frequency(freq, null).setAccess(access);
|
||||
|
||||
Mekanism.packetHandler.sendToServer(new PortableTeleporterMessage(PortableTeleporterPacketType.SET_FREQ, newFreq));
|
||||
}
|
||||
|
@ -210,7 +215,14 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
public String getSecurity(Frequency freq)
|
||||
{
|
||||
return !freq.publicFreq ? EnumColor.DARK_RED + LangUtils.localize("gui.private") : LangUtils.localize("gui.public");
|
||||
|
||||
if(freq.isPrivate()) {
|
||||
return EnumColor.DARK_RED + LangUtils.localize("gui.private");
|
||||
} else if(freq.isPublic()) {
|
||||
return LangUtils.localize("gui.public");
|
||||
}
|
||||
|
||||
return EnumColor.ORANGE + LangUtils.localize("gui.trusted");
|
||||
}
|
||||
|
||||
public void updateButtons()
|
||||
|
@ -222,35 +234,50 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
List<String> text = new ArrayList<String>();
|
||||
|
||||
if(privateMode)
|
||||
{
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
for(Frequency freq : getPrivateCache())
|
||||
{
|
||||
text.add(freq.name);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
publicButton.enabled = true;
|
||||
privateButton.enabled = false;
|
||||
protectedButton.enabled = true;
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
for(Frequency freq : getPublicCache())
|
||||
{
|
||||
text.add(freq.name + " (" + freq.owner + ")");
|
||||
}
|
||||
|
||||
publicButton.enabled = false;
|
||||
privateButton.enabled = true;
|
||||
protectedButton.enabled = true;
|
||||
} else {
|
||||
for(Frequency freq : getProtectedCache())
|
||||
{
|
||||
text.add(freq.name + " (" + freq.owner + ")");
|
||||
}
|
||||
|
||||
publicButton.enabled = true;
|
||||
privateButton.enabled = true;
|
||||
protectedButton.enabled = false;
|
||||
}
|
||||
|
||||
scrollList.setText(text);
|
||||
|
||||
if(privateMode)
|
||||
{
|
||||
publicButton.enabled = true;
|
||||
privateButton.enabled = false;
|
||||
}
|
||||
else {
|
||||
publicButton.enabled = false;
|
||||
privateButton.enabled = true;
|
||||
}
|
||||
|
||||
if(scrollList.hasSelection())
|
||||
{
|
||||
Frequency freq = privateMode ? getPrivateCache().get(scrollList.selected) : getPublicCache().get(scrollList.selected);
|
||||
|
||||
Frequency freq;
|
||||
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
freq = getPrivateCache().get(scrollList.selected);
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
freq = getPublicCache().get(scrollList.selected);
|
||||
} else {
|
||||
freq = getProtectedCache().get(scrollList.selected);
|
||||
}
|
||||
|
||||
if(getFrequency() == null || !getFrequency().equals(freq))
|
||||
{
|
||||
|
@ -350,11 +377,11 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
if(guibutton.id == 0)
|
||||
{
|
||||
privateMode = false;
|
||||
access = ISecurityTile.SecurityMode.PUBLIC;
|
||||
}
|
||||
else if(guibutton.id == 1)
|
||||
{
|
||||
privateMode = true;
|
||||
access = ISecurityTile.SecurityMode.PRIVATE;
|
||||
}
|
||||
else if(guibutton.id == 2)
|
||||
{
|
||||
|
@ -362,7 +389,16 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
if(selection != -1)
|
||||
{
|
||||
Frequency freq = privateMode ? getPrivateCache().get(selection) : getPublicCache().get(selection);
|
||||
Frequency freq;
|
||||
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
freq = getPrivateCache().get(scrollList.selected);
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
freq = getPublicCache().get(scrollList.selected);
|
||||
} else {
|
||||
freq = getProtectedCache().get(scrollList.selected);
|
||||
}
|
||||
|
||||
setFrequency(freq.name);
|
||||
}
|
||||
}
|
||||
|
@ -372,14 +408,23 @@ public class GuiTeleporter extends GuiMekanism
|
|||
|
||||
if(selection != -1)
|
||||
{
|
||||
Frequency freq = privateMode ? getPrivateCache().get(selection) : getPublicCache().get(selection);
|
||||
|
||||
Frequency freq;
|
||||
|
||||
if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
freq = getPrivateCache().get(scrollList.selected);
|
||||
} else if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
freq = getPublicCache().get(scrollList.selected);
|
||||
} else {
|
||||
freq = getProtectedCache().get(scrollList.selected);
|
||||
}
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
ArrayList data = new ArrayList();
|
||||
data.add(1);
|
||||
data.add(freq.name);
|
||||
data.add(freq.publicFreq);
|
||||
data.add(freq.access.ordinal());
|
||||
|
||||
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
|
||||
}
|
||||
|
@ -398,6 +443,8 @@ public class GuiTeleporter extends GuiMekanism
|
|||
mc.setIngameFocus();
|
||||
Mekanism.packetHandler.sendToServer(new PortableTeleporterMessage(PortableTeleporterPacketType.TELEPORT, clientFreq));
|
||||
}
|
||||
} else if(guibutton.id == 5) {
|
||||
access = ISecurityTile.SecurityMode.TRUSTED;
|
||||
}
|
||||
|
||||
updateButtons();
|
||||
|
@ -508,6 +555,11 @@ public class GuiTeleporter extends GuiMekanism
|
|||
return tileEntity != null ? tileEntity.privateCache : clientPrivateCache;
|
||||
}
|
||||
|
||||
private List<Frequency> getProtectedCache()
|
||||
{
|
||||
return tileEntity != null ? tileEntity.protectedCache : clientProtectedCache;
|
||||
}
|
||||
|
||||
private Frequency getFrequency()
|
||||
{
|
||||
return tileEntity != null ? tileEntity.frequency : clientFreq;
|
||||
|
|
|
@ -181,9 +181,11 @@ public class Mekanism
|
|||
/** FrequencyManagers for various networks */
|
||||
public static FrequencyManager publicTeleporters = new FrequencyManager(Frequency.class, Frequency.TELEPORTER);
|
||||
public static Map<String, FrequencyManager> privateTeleporters = new HashMap<String, FrequencyManager>();
|
||||
public static Map<String, FrequencyManager> protectedTeleporters = new HashMap<String, FrequencyManager>();
|
||||
|
||||
public static FrequencyManager publicEntangloporters = new FrequencyManager(InventoryFrequency.class, InventoryFrequency.ENTANGLOPORTER);
|
||||
public static Map<String, FrequencyManager> privateEntangloporters = new HashMap<String, FrequencyManager>();
|
||||
public static Map<String, FrequencyManager> protectedEntangloporters = new HashMap<String, FrequencyManager>();
|
||||
|
||||
public static FrequencyManager securityFrequencies = new FrequencyManager(SecurityFrequency.class, SecurityFrequency.SECURITY);
|
||||
|
||||
|
@ -1193,7 +1195,9 @@ public class Mekanism
|
|||
activeVibrators.clear();
|
||||
worldTickHandler.resetRegenChunks();
|
||||
privateTeleporters.clear();
|
||||
protectedTeleporters.clear();
|
||||
privateEntangloporters.clear();
|
||||
protectedEntangloporters.clear();
|
||||
|
||||
//Reset consistent managers
|
||||
MultiblockManager.reset();
|
||||
|
|
|
@ -8,10 +8,10 @@ import java.util.Set;
|
|||
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.security.ISecurityTile;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public class Frequency
|
||||
{
|
||||
public class Frequency {
|
||||
public static final String TELEPORTER = "Teleporter";
|
||||
|
||||
public String name;
|
||||
|
@ -19,76 +19,64 @@ public class Frequency
|
|||
|
||||
public boolean valid = true;
|
||||
|
||||
public boolean publicFreq;
|
||||
public ISecurityTile.SecurityMode access = ISecurityTile.SecurityMode.PUBLIC;
|
||||
|
||||
public Set<Coord4D> activeCoords = new HashSet<Coord4D>();
|
||||
|
||||
public Frequency(String n, String o)
|
||||
{
|
||||
public Frequency(String n, String o) {
|
||||
name = n;
|
||||
owner = o;
|
||||
}
|
||||
|
||||
public Frequency(NBTTagCompound nbtTags)
|
||||
{
|
||||
public Frequency(NBTTagCompound nbtTags) {
|
||||
read(nbtTags);
|
||||
}
|
||||
|
||||
public Frequency(ByteBuf dataStream)
|
||||
{
|
||||
public Frequency(ByteBuf dataStream) {
|
||||
read(dataStream);
|
||||
}
|
||||
|
||||
public Frequency setPublic(boolean isPublic)
|
||||
{
|
||||
publicFreq = isPublic;
|
||||
public Frequency setAccess(ISecurityTile.SecurityMode access) {
|
||||
this.access = access;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isPublic()
|
||||
{
|
||||
return publicFreq;
|
||||
public boolean isPublic() {
|
||||
return access == ISecurityTile.SecurityMode.PUBLIC;
|
||||
}
|
||||
|
||||
public boolean isPrivate()
|
||||
{
|
||||
return !publicFreq;
|
||||
public boolean isPrivate() {
|
||||
return access == ISecurityTile.SecurityMode.PRIVATE;
|
||||
}
|
||||
|
||||
public Coord4D getClosestCoords(Coord4D coord)
|
||||
{
|
||||
public boolean isProtected() {
|
||||
return access == ISecurityTile.SecurityMode.TRUSTED;
|
||||
}
|
||||
|
||||
public Coord4D getClosestCoords(Coord4D coord) {
|
||||
Coord4D closest = null;
|
||||
|
||||
for(Coord4D iterCoord : activeCoords)
|
||||
{
|
||||
if(iterCoord.equals(coord))
|
||||
{
|
||||
for (Coord4D iterCoord : activeCoords) {
|
||||
if (iterCoord.equals(coord)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(closest == null)
|
||||
{
|
||||
if (closest == null) {
|
||||
closest = iterCoord;
|
||||
continue;
|
||||
}
|
||||
|
||||
if(coord.dimensionId != closest.dimensionId && coord.dimensionId == iterCoord.dimensionId)
|
||||
{
|
||||
if (coord.dimensionId != closest.dimensionId && coord.dimensionId == iterCoord.dimensionId) {
|
||||
closest = iterCoord;
|
||||
continue;
|
||||
}
|
||||
else if(coord.dimensionId == closest.dimensionId && coord.dimensionId != iterCoord.dimensionId)
|
||||
{
|
||||
} else if (coord.dimensionId == closest.dimensionId && coord.dimensionId != iterCoord.dimensionId) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
if(coord.distanceTo(closest) > coord.distanceTo(iterCoord))
|
||||
{
|
||||
} else {
|
||||
if (coord.distanceTo(closest) > coord.distanceTo(iterCoord)) {
|
||||
closest = iterCoord;
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -97,48 +85,55 @@ public class Frequency
|
|||
return closest;
|
||||
}
|
||||
|
||||
public void write(NBTTagCompound nbtTags)
|
||||
{
|
||||
public void write(NBTTagCompound nbtTags) {
|
||||
nbtTags.setString("name", name);
|
||||
nbtTags.setString("owner", owner);
|
||||
nbtTags.setBoolean("publicFreq", publicFreq);
|
||||
nbtTags.setInteger("access", access.ordinal());
|
||||
//nbtTags.setBoolean("publicFreq", publicFreq);
|
||||
}
|
||||
|
||||
protected void read(NBTTagCompound nbtTags)
|
||||
{
|
||||
protected void read(NBTTagCompound nbtTags) {
|
||||
name = nbtTags.getString("name");
|
||||
owner = nbtTags.getString("owner");
|
||||
publicFreq = nbtTags.getBoolean("publicFreq");
|
||||
|
||||
if (nbtTags.hasKey("access")) {
|
||||
access = ISecurityTile.SecurityMode.values()[nbtTags.getInteger("access")];
|
||||
} else {
|
||||
boolean isPublic = nbtTags.getBoolean("publicFreq");
|
||||
if (isPublic) {
|
||||
access = ISecurityTile.SecurityMode.PUBLIC;
|
||||
} else {
|
||||
access = ISecurityTile.SecurityMode.PRIVATE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void write(ArrayList data)
|
||||
{
|
||||
public void write(ArrayList data) {
|
||||
data.add(name);
|
||||
data.add(owner);
|
||||
data.add(publicFreq);
|
||||
data.add(access.ordinal());
|
||||
}
|
||||
|
||||
protected void read(ByteBuf dataStream)
|
||||
{
|
||||
protected void read(ByteBuf dataStream) {
|
||||
name = PacketHandler.readString(dataStream);
|
||||
owner = PacketHandler.readString(dataStream);
|
||||
publicFreq = dataStream.readBoolean();
|
||||
|
||||
access = ISecurityTile.SecurityMode.values()[dataStream.readInt()];
|
||||
//publicFreq = dataStream.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
public int hashCode() {
|
||||
int code = 1;
|
||||
code = 31 * code + name.hashCode();
|
||||
code = 31 * code + owner.hashCode();
|
||||
code = 31 * code + (publicFreq ? 1 : 0);
|
||||
code = 31 * code + access.hashCode();
|
||||
return code;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof Frequency && ((Frequency) obj).name.equals(name)
|
||||
&& ((Frequency)obj).owner.equals(owner) && ((Frequency)obj).publicFreq == publicFreq;
|
||||
&& ((Frequency) obj).owner.equals(owner) && ((Frequency) obj).access == access;
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ import mekanism.api.Coord4D;
|
|||
import mekanism.api.EnumColor;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.security.IOwnerItem;
|
||||
import mekanism.common.security.ISecurityTile;
|
||||
import mekanism.common.util.LangUtils;
|
||||
import mekanism.common.util.SecurityUtils;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
@ -30,7 +31,17 @@ public class ItemPortableTeleporter extends ItemEnergized implements IOwnerItem
|
|||
if(getFrequency(itemstack) != null)
|
||||
{
|
||||
list.add(EnumColor.INDIGO + LangUtils.localize("gui.frequency") + ": " + EnumColor.GREY + getFrequency(itemstack));
|
||||
list.add(EnumColor.INDIGO + LangUtils.localize("gui.mode") + ": " + EnumColor.GREY + LangUtils.localize("gui." + (isPrivateMode(itemstack) ? "private" : "public")));
|
||||
|
||||
String name = "trusted";
|
||||
|
||||
ISecurityTile.SecurityMode access= getAccess(itemstack);
|
||||
if(access == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
name = "public";
|
||||
} else if(access == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
name = "private";
|
||||
}
|
||||
|
||||
list.add(EnumColor.INDIGO + LangUtils.localize("gui.mode") + ": " + EnumColor.GREY + LangUtils.localize("gui." + name));
|
||||
}
|
||||
|
||||
super.addInformation(itemstack, entityplayer, list, flag);
|
||||
|
@ -102,7 +113,7 @@ public class ItemPortableTeleporter extends ItemEnergized implements IOwnerItem
|
|||
public void setOwner(ItemStack stack, String owner)
|
||||
{
|
||||
setFrequency(stack, null);
|
||||
setPrivateMode(stack, false);
|
||||
setAccess(stack, ISecurityTile.SecurityMode.PUBLIC);
|
||||
|
||||
if(owner == null || owner.isEmpty())
|
||||
{
|
||||
|
@ -119,24 +130,31 @@ public class ItemPortableTeleporter extends ItemEnergized implements IOwnerItem
|
|||
return true;
|
||||
}
|
||||
|
||||
public boolean isPrivateMode(ItemStack stack)
|
||||
public ISecurityTile.SecurityMode getAccess(ItemStack stack)
|
||||
{
|
||||
if(stack.stackTagCompound != null)
|
||||
{
|
||||
return stack.stackTagCompound.getBoolean("private");
|
||||
if(stack.stackTagCompound.hasKey("access")) {
|
||||
return ISecurityTile.SecurityMode.values()[stack.stackTagCompound.getInteger("access")];
|
||||
} else {
|
||||
boolean priv = stack.stackTagCompound.getBoolean("private");
|
||||
|
||||
if(priv)
|
||||
return ISecurityTile.SecurityMode.PRIVATE;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return ISecurityTile.SecurityMode.PUBLIC;
|
||||
}
|
||||
|
||||
public void setPrivateMode(ItemStack stack, boolean isPrivate)
|
||||
public void setAccess(ItemStack stack, ISecurityTile.SecurityMode access)
|
||||
{
|
||||
if(stack.stackTagCompound == null)
|
||||
{
|
||||
stack.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
|
||||
stack.stackTagCompound.setBoolean("private", isPrivate);
|
||||
stack.stackTagCompound.setInteger("access", access.ordinal());
|
||||
}
|
||||
|
||||
public String getFrequency(ItemStack stack)
|
||||
|
|
|
@ -3,7 +3,9 @@ package mekanism.common.network;
|
|||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.Range4D;
|
||||
|
@ -15,6 +17,8 @@ import mekanism.common.frequency.FrequencyManager;
|
|||
import mekanism.common.item.ItemPortableTeleporter;
|
||||
import mekanism.common.network.PacketPortableTeleporter.PortableTeleporterMessage;
|
||||
import mekanism.common.network.PacketPortalFX.PortalFXMessage;
|
||||
import mekanism.common.security.ISecurityTile;
|
||||
import mekanism.common.security.SecurityFrequency;
|
||||
import mekanism.common.tile.TileEntityTeleporter;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -27,21 +31,17 @@ import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
|||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
|
||||
public class PacketPortableTeleporter implements IMessageHandler<PortableTeleporterMessage, IMessage>
|
||||
{
|
||||
public class PacketPortableTeleporter implements IMessageHandler<PortableTeleporterMessage, IMessage> {
|
||||
@Override
|
||||
public IMessage onMessage(PortableTeleporterMessage message, MessageContext context)
|
||||
{
|
||||
public IMessage onMessage(PortableTeleporterMessage message, MessageContext context) {
|
||||
EntityPlayer player = PacketHandler.getPlayer(context);
|
||||
ItemStack itemstack = player.getCurrentEquippedItem();
|
||||
World world = player.worldObj;
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemPortableTeleporter)
|
||||
{
|
||||
if (itemstack != null && itemstack.getItem() instanceof ItemPortableTeleporter) {
|
||||
ItemPortableTeleporter item = (ItemPortableTeleporter) itemstack.getItem();
|
||||
|
||||
switch(message.packetType)
|
||||
{
|
||||
switch (message.packetType) {
|
||||
case DATA_REQUEST:
|
||||
sendDataResponse(message.frequency, world, player, item, itemstack);
|
||||
break;
|
||||
|
@ -49,73 +49,64 @@ public class PacketPortableTeleporter implements IMessageHandler<PortableTelepor
|
|||
Mekanism.proxy.handleTeleporterUpdate(message);
|
||||
break;
|
||||
case SET_FREQ:
|
||||
FrequencyManager manager1 = getManager(message.frequency.isPublic() ? null : player.getCommandSenderName(), world);
|
||||
FrequencyManager manager1 = getManager(message.frequency.access, player.getCommandSenderName(), world);
|
||||
Frequency toUse = null;
|
||||
|
||||
for(Frequency freq : manager1.getFrequencies())
|
||||
{
|
||||
if(freq.name.equals(message.frequency.name))
|
||||
{
|
||||
for (Frequency freq : manager1.getFrequencies()) {
|
||||
if (freq.name.equals(message.frequency.name)) {
|
||||
toUse = freq;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(toUse == null)
|
||||
{
|
||||
toUse = new Frequency(message.frequency.name, player.getCommandSenderName()).setPublic(message.frequency.isPublic());
|
||||
if (toUse == null) {
|
||||
toUse = new Frequency(message.frequency.name, player.getCommandSenderName()).setAccess(message.frequency.access);
|
||||
manager1.addFrequency(toUse);
|
||||
}
|
||||
|
||||
item.setFrequency(itemstack, toUse.name);
|
||||
item.setPrivateMode(itemstack, !toUse.publicFreq);
|
||||
item.setAccess(itemstack, toUse.access);
|
||||
|
||||
sendDataResponse(toUse, world, player, item, itemstack);
|
||||
|
||||
break;
|
||||
case DEL_FREQ:
|
||||
FrequencyManager manager = getManager(message.frequency.isPublic() ? null : player.getCommandSenderName(), world);
|
||||
FrequencyManager manager = getManager(message.frequency.access, player.getCommandSenderName(), world);
|
||||
manager.remove(message.frequency.name, player.getCommandSenderName());
|
||||
|
||||
item.setFrequency(itemstack, null);
|
||||
item.setPrivateMode(itemstack, false);
|
||||
item.setAccess(itemstack, ISecurityTile.SecurityMode.PUBLIC);
|
||||
|
||||
break;
|
||||
case TELEPORT:
|
||||
FrequencyManager manager2 = getManager(message.frequency.isPublic() ? null : player.getCommandSenderName(), world);
|
||||
FrequencyManager manager2 = getManager(message.frequency.access,player.getCommandSenderName(), world);
|
||||
Frequency found = null;
|
||||
|
||||
for(Frequency freq : manager2.getFrequencies())
|
||||
{
|
||||
if(message.frequency.name.equals(freq.name))
|
||||
{
|
||||
for (Frequency freq : manager2.getFrequencies()) {
|
||||
if (message.frequency.name.equals(freq.name)) {
|
||||
found = freq;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(found == null)
|
||||
{
|
||||
if (found == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
Coord4D coords = found.getClosestCoords(new Coord4D(player));
|
||||
|
||||
if(coords != null)
|
||||
{
|
||||
if (coords != null) {
|
||||
World teleWorld = FMLCommonHandler.instance().getMinecraftServerInstance().worldServerForDimension(coords.dimensionId);
|
||||
TileEntityTeleporter teleporter = (TileEntityTeleporter) coords.getTileEntity(teleWorld);
|
||||
|
||||
if(teleporter != null)
|
||||
{
|
||||
if (teleporter != null) {
|
||||
try {
|
||||
teleporter.didTeleport.add(player.getPersistentID());
|
||||
teleporter.teleDelay = 5;
|
||||
|
||||
item.setEnergy(itemstack, item.getEnergy(itemstack) - item.calculateEnergyCost(player, coords));
|
||||
|
||||
if(player instanceof EntityPlayerMP)
|
||||
{
|
||||
if (player instanceof EntityPlayerMP) {
|
||||
MekanismUtils.setPrivateValue(((EntityPlayerMP) player).playerNetServerHandler, 0, NetHandlerPlayServer.class, ObfuscatedNames.NetHandlerPlayServer_floatingTickCount);
|
||||
}
|
||||
|
||||
|
@ -127,7 +118,8 @@ public class PacketPortableTeleporter implements IMessageHandler<PortableTelepor
|
|||
|
||||
world.playSoundAtEntity(player, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
Mekanism.packetHandler.sendToReceivers(new PortalFXMessage(coords), new Range4D(coords));
|
||||
} catch(Exception e) {}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -138,33 +130,41 @@ public class PacketPortableTeleporter implements IMessageHandler<PortableTelepor
|
|||
return null;
|
||||
}
|
||||
|
||||
public void sendDataResponse(Frequency given, World world, EntityPlayer player, ItemPortableTeleporter item, ItemStack itemstack)
|
||||
{
|
||||
public void sendDataResponse(Frequency given, World world, EntityPlayer player, ItemPortableTeleporter item, ItemStack itemstack) {
|
||||
List<Frequency> publicFreqs = new ArrayList<Frequency>();
|
||||
|
||||
for(Frequency f : getManager(null, world).getFrequencies())
|
||||
{
|
||||
for (Frequency f : getManager(ISecurityTile.SecurityMode.PUBLIC, null, world).getFrequencies()) {
|
||||
publicFreqs.add(f);
|
||||
}
|
||||
|
||||
List<Frequency> privateFreqs = new ArrayList<Frequency>();
|
||||
|
||||
for(Frequency f : getManager(player.getCommandSenderName(), world).getFrequencies())
|
||||
{
|
||||
for (Frequency f : getManager(ISecurityTile.SecurityMode.PRIVATE, player.getCommandSenderName(), world).getFrequencies()) {
|
||||
privateFreqs.add(f);
|
||||
}
|
||||
|
||||
List<Frequency> protectedFrqs = new ArrayList<Frequency>();
|
||||
|
||||
for (Frequency frequency : Mekanism.securityFrequencies.getFrequencies()) {
|
||||
SecurityFrequency secure = (SecurityFrequency) frequency;
|
||||
if(secure.trusted.contains(player.getCommandSenderName())) {
|
||||
FrequencyManager protected_ = Mekanism.protectedTeleporters.get(secure.owner);
|
||||
if(protected_ != null) {
|
||||
protectedFrqs.addAll(protected_.getFrequencies());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protectedFrqs.addAll(getManager(ISecurityTile.SecurityMode.TRUSTED, player.getCommandSenderName(), world).getFrequencies());
|
||||
|
||||
byte status = 3;
|
||||
|
||||
if(given != null)
|
||||
{
|
||||
FrequencyManager manager = given.isPublic() ? getManager(null, world) : getManager(player.getCommandSenderName(), world);
|
||||
if (given != null) {
|
||||
FrequencyManager manager = getManager(given.access, given.owner, world);// given.isPublic() ? getManager(null, world) : getManager(player.getCommandSenderName(), world);
|
||||
boolean found = false;
|
||||
|
||||
for(Frequency iterFreq : manager.getFrequencies())
|
||||
{
|
||||
if(given.equals(iterFreq))
|
||||
{
|
||||
for (Frequency iterFreq : manager.getFrequencies()) {
|
||||
if (given.equals(iterFreq)) {
|
||||
given = iterFreq;
|
||||
found = true;
|
||||
|
||||
|
@ -172,88 +172,95 @@ public class PacketPortableTeleporter implements IMessageHandler<PortableTelepor
|
|||
}
|
||||
}
|
||||
|
||||
if(!found)
|
||||
{
|
||||
if(given.isProtected() && !given.owner.equalsIgnoreCase(player.getCommandSenderName())) {
|
||||
for (Frequency frequency : Mekanism.securityFrequencies.getFrequencies()) {
|
||||
SecurityFrequency secure = (SecurityFrequency) frequency;
|
||||
if(secure.owner.equals(given.owner)) {
|
||||
if(!secure.trusted.contains(player.getCommandSenderName())) {
|
||||
given = null;
|
||||
break;
|
||||
}
|
||||
|
||||
FrequencyManager protected_ = Mekanism.protectedTeleporters.get(secure.owner);
|
||||
if(!protected_.containsFrequency(given.name)) {
|
||||
given = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
given = null;
|
||||
}
|
||||
}
|
||||
|
||||
if(given != null)
|
||||
{
|
||||
if(given.activeCoords.size() == 0)
|
||||
{
|
||||
if (given != null) {
|
||||
if (given.activeCoords.size() == 0) {
|
||||
status = 3;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
Coord4D coords = given.getClosestCoords(new Coord4D(player));
|
||||
double energyNeeded = item.calculateEnergyCost(player, coords);
|
||||
|
||||
if(energyNeeded > item.getEnergy(itemstack))
|
||||
{
|
||||
if (energyNeeded > item.getEnergy(itemstack)) {
|
||||
status = 4;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Mekanism.packetHandler.sendTo(new PortableTeleporterMessage(given, status, publicFreqs, privateFreqs), (EntityPlayerMP)player);
|
||||
Mekanism.packetHandler.sendTo(new PortableTeleporterMessage(given, status, publicFreqs, privateFreqs, protectedFrqs), (EntityPlayerMP) player);
|
||||
}
|
||||
|
||||
public FrequencyManager getManager(String owner, World world)
|
||||
{
|
||||
if(owner == null)
|
||||
{
|
||||
public FrequencyManager getManager(ISecurityTile.SecurityMode mode, String owner, World world) {
|
||||
if (mode == ISecurityTile.SecurityMode.PUBLIC) {
|
||||
return Mekanism.publicTeleporters;
|
||||
}
|
||||
else {
|
||||
if(!Mekanism.privateTeleporters.containsKey(owner))
|
||||
{
|
||||
} else if (mode == ISecurityTile.SecurityMode.PRIVATE) {
|
||||
if (!Mekanism.privateTeleporters.containsKey(owner)) {
|
||||
FrequencyManager manager = new FrequencyManager(Frequency.class, owner);
|
||||
Mekanism.privateTeleporters.put(owner, manager);
|
||||
manager.createOrLoad(world);
|
||||
}
|
||||
|
||||
return Mekanism.privateTeleporters.get(owner);
|
||||
} else {
|
||||
if (!Mekanism.protectedTeleporters.containsKey(owner)) {
|
||||
FrequencyManager manager = new FrequencyManager(Frequency.class, owner);
|
||||
Mekanism.protectedTeleporters.put(owner, manager);
|
||||
manager.createOrLoad(world);
|
||||
}
|
||||
|
||||
return Mekanism.protectedTeleporters.get(owner);
|
||||
}
|
||||
}
|
||||
|
||||
public static class PortableTeleporterMessage implements IMessage
|
||||
{
|
||||
public static class PortableTeleporterMessage implements IMessage {
|
||||
public PortableTeleporterPacketType packetType;
|
||||
public Frequency frequency;
|
||||
public byte status;
|
||||
|
||||
public List<Frequency> publicCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> privateCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> protectedCache = new ArrayList<Frequency>();
|
||||
|
||||
public PortableTeleporterMessage() {}
|
||||
public PortableTeleporterMessage() {
|
||||
}
|
||||
|
||||
public PortableTeleporterMessage(PortableTeleporterPacketType type, Frequency freq)
|
||||
{
|
||||
public PortableTeleporterMessage(PortableTeleporterPacketType type, Frequency freq) {
|
||||
packetType = type;
|
||||
|
||||
if(type == PortableTeleporterPacketType.DATA_REQUEST)
|
||||
{
|
||||
if (type == PortableTeleporterPacketType.DATA_REQUEST) {
|
||||
frequency = freq;
|
||||
}
|
||||
else if(type == PortableTeleporterPacketType.SET_FREQ)
|
||||
{
|
||||
} else if (type == PortableTeleporterPacketType.SET_FREQ) {
|
||||
frequency = freq;
|
||||
}
|
||||
else if(type == PortableTeleporterPacketType.DEL_FREQ)
|
||||
{
|
||||
} else if (type == PortableTeleporterPacketType.DEL_FREQ) {
|
||||
frequency = freq;
|
||||
}
|
||||
else if(type == PortableTeleporterPacketType.TELEPORT)
|
||||
{
|
||||
} else if (type == PortableTeleporterPacketType.TELEPORT) {
|
||||
frequency = freq;
|
||||
}
|
||||
}
|
||||
|
||||
public PortableTeleporterMessage(Frequency freq, byte b, List<Frequency> publicFreqs, List<Frequency> privateFreqs)
|
||||
{
|
||||
public PortableTeleporterMessage(Frequency freq, byte b, List<Frequency> publicFreqs, List<Frequency> privateFreqs, List<Frequency> protectedFreqs) {
|
||||
packetType = PortableTeleporterPacketType.DATA_RESPONSE;
|
||||
|
||||
frequency = freq;
|
||||
|
@ -261,34 +268,27 @@ public class PacketPortableTeleporter implements IMessageHandler<PortableTelepor
|
|||
|
||||
publicCache = publicFreqs;
|
||||
privateCache = privateFreqs;
|
||||
protectedCache = protectedFreqs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buffer)
|
||||
{
|
||||
public void toBytes(ByteBuf buffer) {
|
||||
buffer.writeInt(packetType.ordinal());
|
||||
|
||||
if(packetType == PortableTeleporterPacketType.DATA_REQUEST)
|
||||
{
|
||||
if(frequency != null)
|
||||
{
|
||||
if (packetType == PortableTeleporterPacketType.DATA_REQUEST) {
|
||||
if (frequency != null) {
|
||||
buffer.writeBoolean(true);
|
||||
PacketHandler.writeString(buffer, frequency.name);
|
||||
buffer.writeBoolean(frequency.publicFreq);
|
||||
}
|
||||
else {
|
||||
buffer.writeInt(frequency.access.ordinal());
|
||||
} else {
|
||||
buffer.writeBoolean(false);
|
||||
}
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.DATA_RESPONSE)
|
||||
{
|
||||
if(frequency != null)
|
||||
{
|
||||
} else if (packetType == PortableTeleporterPacketType.DATA_RESPONSE) {
|
||||
if (frequency != null) {
|
||||
buffer.writeBoolean(true);
|
||||
PacketHandler.writeString(buffer, frequency.name);
|
||||
buffer.writeBoolean(frequency.publicFreq);
|
||||
}
|
||||
else {
|
||||
buffer.writeInt(frequency.access.ordinal());
|
||||
} else {
|
||||
buffer.writeBoolean(false);
|
||||
}
|
||||
|
||||
|
@ -297,89 +297,78 @@ public class PacketPortableTeleporter implements IMessageHandler<PortableTelepor
|
|||
ArrayList data = new ArrayList();
|
||||
data.add(publicCache.size());
|
||||
|
||||
for(Frequency freq : publicCache)
|
||||
{
|
||||
for (Frequency freq : publicCache) {
|
||||
freq.write(data);
|
||||
}
|
||||
|
||||
data.add(privateCache.size());
|
||||
|
||||
for(Frequency freq : privateCache)
|
||||
{
|
||||
for (Frequency freq : privateCache) {
|
||||
freq.write(data);
|
||||
}
|
||||
|
||||
data.add(protectedCache.size());
|
||||
|
||||
for (Frequency freq : protectedCache) {
|
||||
freq.write(data);
|
||||
}
|
||||
|
||||
PacketHandler.encode(data.toArray(), buffer);
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.SET_FREQ)
|
||||
{
|
||||
} else if (packetType == PortableTeleporterPacketType.SET_FREQ) {
|
||||
PacketHandler.writeString(buffer, frequency.name);
|
||||
buffer.writeBoolean(frequency.publicFreq);
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.DEL_FREQ)
|
||||
{
|
||||
buffer.writeInt(frequency.access.ordinal());
|
||||
} else if (packetType == PortableTeleporterPacketType.DEL_FREQ) {
|
||||
PacketHandler.writeString(buffer, frequency.name);
|
||||
buffer.writeBoolean(frequency.publicFreq);
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.TELEPORT)
|
||||
{
|
||||
buffer.writeInt(frequency.access.ordinal());
|
||||
} else if (packetType == PortableTeleporterPacketType.TELEPORT) {
|
||||
PacketHandler.writeString(buffer, frequency.name);
|
||||
buffer.writeBoolean(frequency.publicFreq);
|
||||
buffer.writeInt(frequency.access.ordinal());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buffer)
|
||||
{
|
||||
public void fromBytes(ByteBuf buffer) {
|
||||
packetType = PortableTeleporterPacketType.values()[buffer.readInt()];
|
||||
|
||||
if(packetType == PortableTeleporterPacketType.DATA_REQUEST)
|
||||
{
|
||||
if(buffer.readBoolean())
|
||||
{
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean());
|
||||
if (packetType == PortableTeleporterPacketType.DATA_REQUEST) {
|
||||
if (buffer.readBoolean()) {
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setAccess(ISecurityTile.SecurityMode.values()[buffer.readInt()]);
|
||||
}
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.DATA_RESPONSE)
|
||||
{
|
||||
if(buffer.readBoolean())
|
||||
{
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean());
|
||||
} else if (packetType == PortableTeleporterPacketType.DATA_RESPONSE) {
|
||||
if (buffer.readBoolean()) {
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setAccess(ISecurityTile.SecurityMode.values()[buffer.readInt()]);
|
||||
}
|
||||
|
||||
status = buffer.readByte();
|
||||
|
||||
int amount = buffer.readInt();
|
||||
|
||||
for(int i = 0; i < amount; i++)
|
||||
{
|
||||
for (int i = 0; i < amount; i++) {
|
||||
publicCache.add(new Frequency(buffer));
|
||||
}
|
||||
|
||||
amount = buffer.readInt();
|
||||
|
||||
for(int i = 0; i < amount; i++)
|
||||
{
|
||||
for (int i = 0; i < amount; i++) {
|
||||
privateCache.add(new Frequency(buffer));
|
||||
}
|
||||
|
||||
amount = buffer.readInt();
|
||||
for (int i = 0; i < amount; i++) {
|
||||
protectedCache.add(new Frequency(buffer));
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.SET_FREQ)
|
||||
{
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean());
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.DEL_FREQ)
|
||||
{
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean());
|
||||
}
|
||||
else if(packetType == PortableTeleporterPacketType.TELEPORT)
|
||||
{
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean());
|
||||
|
||||
} else if (packetType == PortableTeleporterPacketType.SET_FREQ) {
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setAccess(ISecurityTile.SecurityMode.values()[buffer.readInt()]);
|
||||
} else if (packetType == PortableTeleporterPacketType.DEL_FREQ) {
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setAccess(ISecurityTile.SecurityMode.values()[buffer.readInt()]);
|
||||
} else if (packetType == PortableTeleporterPacketType.TELEPORT) {
|
||||
frequency = new Frequency(PacketHandler.readString(buffer), null).setAccess(ISecurityTile.SecurityMode.values()[buffer.readInt()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static enum PortableTeleporterPacketType
|
||||
{
|
||||
public static enum PortableTeleporterPacketType {
|
||||
DATA_REQUEST,
|
||||
DATA_RESPONSE,
|
||||
SET_FREQ,
|
||||
|
|
|
@ -24,6 +24,7 @@ import mekanism.common.frequency.FrequencyManager;
|
|||
import mekanism.common.frequency.IFrequencyHandler;
|
||||
import mekanism.common.integration.IComputerIntegration;
|
||||
import mekanism.common.security.ISecurityTile;
|
||||
import mekanism.common.security.SecurityFrequency;
|
||||
import mekanism.common.tile.component.TileComponentConfig;
|
||||
import mekanism.common.tile.component.TileComponentEjector;
|
||||
import mekanism.common.tile.component.TileComponentSecurity;
|
||||
|
@ -51,6 +52,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
public double lastEnvironmentLoss;
|
||||
|
||||
public List<Frequency> publicCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> protectedCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> privateCache = new ArrayList<Frequency>();
|
||||
|
||||
public static final EnumSet<ForgeDirection> nothing = EnumSet.noneOf(ForgeDirection.class);
|
||||
|
@ -186,7 +188,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
{
|
||||
return Mekanism.publicEntangloporters;
|
||||
}
|
||||
else {
|
||||
else if(freq.isPrivate()) {
|
||||
if(!Mekanism.privateEntangloporters.containsKey(getSecurity().getOwner()))
|
||||
{
|
||||
FrequencyManager manager = new FrequencyManager(InventoryFrequency.class, InventoryFrequency.ENTANGLOPORTER, getSecurity().getOwner());
|
||||
|
@ -195,12 +197,21 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
}
|
||||
|
||||
return Mekanism.privateEntangloporters.get(getSecurity().getOwner());
|
||||
} else {
|
||||
if(!Mekanism.protectedEntangloporters.containsKey(getSecurity().getOwner()))
|
||||
{
|
||||
FrequencyManager manager = new FrequencyManager(InventoryFrequency.class, InventoryFrequency.ENTANGLOPORTER + "#protected", getSecurity().getOwner());
|
||||
Mekanism.protectedEntangloporters.put(getSecurity().getOwner(), manager);
|
||||
manager.createOrLoad(worldObj);
|
||||
}
|
||||
|
||||
return Mekanism.protectedEntangloporters.get(getSecurity().getOwner());
|
||||
}
|
||||
}
|
||||
|
||||
public void setFrequency(String name, boolean publicFreq)
|
||||
public void setFrequency(String name, ISecurityTile.SecurityMode access)
|
||||
{
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(name, null).setPublic(publicFreq));
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(name, null).setAccess(access));
|
||||
manager.deactivate(Coord4D.get(this));
|
||||
|
||||
for(Frequency freq : manager.getFrequencies())
|
||||
|
@ -216,7 +227,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
}
|
||||
}
|
||||
|
||||
Frequency freq = new InventoryFrequency(name, getSecurity().getOwner()).setPublic(publicFreq);
|
||||
Frequency freq = new InventoryFrequency(name, getSecurity().getOwner()).setAccess(access);
|
||||
freq.activeCoords.add(Coord4D.get(this));
|
||||
manager.addFrequency(freq);
|
||||
frequency = (InventoryFrequency)freq;
|
||||
|
@ -260,16 +271,14 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
if(type == 0)
|
||||
{
|
||||
String name = PacketHandler.readString(dataStream);
|
||||
boolean isPublic = dataStream.readBoolean();
|
||||
|
||||
setFrequency(name, isPublic);
|
||||
setFrequency(name, ISecurityTile.SecurityMode.values()[dataStream.readInt()]);
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
String freq = PacketHandler.readString(dataStream);
|
||||
boolean isPublic = dataStream.readBoolean();
|
||||
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(freq, null).setPublic(isPublic));
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(freq, null).setAccess(ISecurityTile.SecurityMode.values()[dataStream.readInt()]));
|
||||
|
||||
if(manager != null)
|
||||
{
|
||||
|
@ -297,6 +306,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
|
||||
publicCache.clear();
|
||||
privateCache.clear();
|
||||
protectedCache.clear();
|
||||
|
||||
int amount = dataStream.readInt();
|
||||
|
||||
|
@ -311,6 +321,13 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
{
|
||||
privateCache.add(new InventoryFrequency(dataStream));
|
||||
}
|
||||
|
||||
amount = dataStream.readInt();
|
||||
|
||||
for(int i = 0; i < amount; i++)
|
||||
{
|
||||
protectedCache.add(new InventoryFrequency(dataStream));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -338,7 +355,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
freq.write(data);
|
||||
}
|
||||
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(null, null).setPublic(false));
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(null, null).setAccess(SecurityMode.PRIVATE));
|
||||
|
||||
if(manager != null)
|
||||
{
|
||||
|
@ -353,6 +370,27 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
data.add(0);
|
||||
}
|
||||
|
||||
List<Frequency> protectedFrqs = new ArrayList<Frequency>();
|
||||
|
||||
for (Frequency frequency : Mekanism.securityFrequencies.getFrequencies()) {
|
||||
SecurityFrequency secure = (SecurityFrequency) frequency;
|
||||
if(secure.trusted.contains(getSecurity().getOwner())) {
|
||||
FrequencyManager protected_ = Mekanism.protectedEntangloporters.get(secure.owner);
|
||||
if(protected_ != null) {
|
||||
protectedFrqs.addAll(protected_.getFrequencies());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(getSecurity().getOwner() != null)
|
||||
protectedFrqs.addAll(getManager(new Frequency(null, null).setAccess(SecurityMode.TRUSTED)).getFrequencies());
|
||||
|
||||
data.add(protectedFrqs.size());
|
||||
|
||||
for (Frequency freq : protectedFrqs) {
|
||||
freq.write(data);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -680,15 +718,15 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
switch(method)
|
||||
{
|
||||
case 0:
|
||||
if(!(arguments[0] instanceof String) || !(arguments[1] instanceof Boolean))
|
||||
if(!(arguments[0] instanceof String) || !(arguments[1] instanceof Integer))
|
||||
{
|
||||
return new Object[] {"Invalid parameters."};
|
||||
}
|
||||
|
||||
String freq = ((String)arguments[0]).trim();
|
||||
boolean isPublic = (Boolean)arguments[1];
|
||||
int access = (int)arguments[1];
|
||||
|
||||
setFrequency(freq, isPublic);
|
||||
setFrequency(freq, ISecurityTile.SecurityMode.values()[access]);
|
||||
|
||||
return new Object[] {"Frequency set."};
|
||||
default:
|
||||
|
|
|
@ -136,7 +136,7 @@ public class TileEntitySecurityDesk extends TileEntityContainerBlock implements
|
|||
}
|
||||
}
|
||||
|
||||
Frequency freq = new SecurityFrequency(owner).setPublic(true);
|
||||
Frequency freq = new SecurityFrequency(owner).setAccess(SecurityMode.PUBLIC);
|
||||
freq.activeCoords.add(Coord4D.get(this));
|
||||
manager.addFrequency(freq);
|
||||
frequency = (SecurityFrequency)freq;
|
||||
|
|
|
@ -26,6 +26,7 @@ import mekanism.common.network.PacketEntityMove.EntityMoveMessage;
|
|||
import mekanism.common.network.PacketPortalFX.PortalFXMessage;
|
||||
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
|
||||
import mekanism.common.security.ISecurityTile;
|
||||
import mekanism.common.security.SecurityFrequency;
|
||||
import mekanism.common.tile.component.TileComponentSecurity;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
|
@ -49,6 +50,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
|||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import scala.Int;
|
||||
|
||||
public class TileEntityTeleporter extends TileEntityElectricBlock implements IComputerIntegration, IChunkLoader, IFrequencyHandler, IRedstoneControl, ISecurityTile
|
||||
{
|
||||
|
@ -68,6 +70,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
|
||||
public List<Frequency> publicCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> privateCache = new ArrayList<Frequency>();
|
||||
public List<Frequency> protectedCache = new ArrayList<Frequency>();
|
||||
|
||||
public Ticket chunkTicket;
|
||||
|
||||
|
@ -178,9 +181,9 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
return null;
|
||||
}
|
||||
|
||||
public void setFrequency(String name, boolean publicFreq)
|
||||
public void setFrequency(String name, SecurityMode publicFreq)
|
||||
{
|
||||
FrequencyManager manager = getManager(new Frequency(name, null).setPublic(publicFreq));
|
||||
FrequencyManager manager = getManager(new Frequency(name, null).setAccess(publicFreq));
|
||||
manager.deactivate(Coord4D.get(this));
|
||||
|
||||
for(Frequency freq : manager.getFrequencies())
|
||||
|
@ -194,7 +197,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
}
|
||||
}
|
||||
|
||||
Frequency freq = new Frequency(name, getSecurity().getOwner()).setPublic(publicFreq);
|
||||
Frequency freq = new Frequency(name, getSecurity().getOwner()).setAccess(publicFreq);
|
||||
freq.activeCoords.add(Coord4D.get(this));
|
||||
manager.addFrequency(freq);
|
||||
frequency = freq;
|
||||
|
@ -213,7 +216,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
{
|
||||
return Mekanism.publicTeleporters;
|
||||
}
|
||||
else {
|
||||
else if(freq.isPrivate()) {
|
||||
if(!Mekanism.privateTeleporters.containsKey(getSecurity().getOwner()))
|
||||
{
|
||||
FrequencyManager manager = new FrequencyManager(Frequency.class, Frequency.TELEPORTER, getSecurity().getOwner());
|
||||
|
@ -222,6 +225,15 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
}
|
||||
|
||||
return Mekanism.privateTeleporters.get(getSecurity().getOwner());
|
||||
} else {
|
||||
if(!Mekanism.protectedTeleporters.containsKey( getSecurity().getOwner()))
|
||||
{
|
||||
FrequencyManager manager = new FrequencyManager(Frequency.class, Frequency.TELEPORTER + "protected", getSecurity().getOwner());
|
||||
Mekanism.protectedTeleporters.put(getSecurity().getOwner(), manager);
|
||||
manager.createOrLoad(worldObj);
|
||||
}
|
||||
|
||||
return Mekanism.protectedTeleporters.get(getSecurity().getOwner());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -597,16 +609,16 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
if(type == 0)
|
||||
{
|
||||
String name = PacketHandler.readString(dataStream);
|
||||
boolean isPublic = dataStream.readBoolean();
|
||||
int isPublic = dataStream.readInt();
|
||||
|
||||
setFrequency(name, isPublic);
|
||||
setFrequency(name, SecurityMode.values()[isPublic]);
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
String freq = PacketHandler.readString(dataStream);
|
||||
boolean isPublic = dataStream.readBoolean();
|
||||
int isPublic = dataStream.readInt();
|
||||
|
||||
FrequencyManager manager = getManager(new Frequency(freq, null).setPublic(isPublic));
|
||||
FrequencyManager manager = getManager(new Frequency(freq, null).setAccess(SecurityMode.values()[isPublic]));
|
||||
|
||||
if(manager != null)
|
||||
{
|
||||
|
@ -635,6 +647,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
|
||||
publicCache.clear();
|
||||
privateCache.clear();
|
||||
protectedCache.clear();
|
||||
|
||||
int amount = dataStream.readInt();
|
||||
|
||||
|
@ -649,6 +662,13 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
{
|
||||
privateCache.add(new Frequency(dataStream));
|
||||
}
|
||||
|
||||
amount = dataStream.readInt();
|
||||
|
||||
for(int i = 0; i < amount; i++)
|
||||
{
|
||||
protectedCache.add(new Frequency(dataStream));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -677,7 +697,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
freq.write(data);
|
||||
}
|
||||
|
||||
FrequencyManager manager = getManager(new Frequency(null, null).setPublic(false));
|
||||
FrequencyManager manager = getManager(new Frequency(null, null).setAccess(SecurityMode.PRIVATE));
|
||||
|
||||
if(manager != null)
|
||||
{
|
||||
|
@ -692,6 +712,27 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
data.add(0);
|
||||
}
|
||||
|
||||
|
||||
List<Frequency> protectedFrqs = new ArrayList<Frequency>();
|
||||
|
||||
for (Frequency frequency : Mekanism.securityFrequencies.getFrequencies()) {
|
||||
SecurityFrequency secure = (SecurityFrequency) frequency;
|
||||
if(secure.trusted.contains(getSecurity().getOwner())) {
|
||||
FrequencyManager protected_ = Mekanism.protectedTeleporters.get(secure.owner);
|
||||
if(protected_ != null) {
|
||||
protectedFrqs.addAll(protected_.getFrequencies());
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getSecurity().getOwner() != null)
|
||||
protectedFrqs.addAll(getManager(new Frequency(null, null).setAccess(SecurityMode.TRUSTED)).getFrequencies());
|
||||
|
||||
data.add(protectedFrqs.size());
|
||||
|
||||
for (Frequency freq : protectedFrqs) {
|
||||
freq.write(data);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -724,15 +765,15 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements ICo
|
|||
teleport();
|
||||
return new Object[] {"Attempted to teleport."};
|
||||
case 4:
|
||||
if(!(arguments[0] instanceof String) || !(arguments[1] instanceof Boolean))
|
||||
if(!(arguments[0] instanceof String) || !(arguments[1] instanceof Integer))
|
||||
{
|
||||
return new Object[] {"Invalid parameters."};
|
||||
}
|
||||
|
||||
String freq = ((String)arguments[0]).trim();
|
||||
boolean isPublic = (Boolean)arguments[1];
|
||||
int isPublic = (int)arguments[1];
|
||||
|
||||
setFrequency(freq, isPublic);
|
||||
setFrequency(freq, SecurityMode.values()[isPublic]);
|
||||
|
||||
return new Object[] {"Frequency set."};
|
||||
default:
|
||||
|
|
|
@ -97,7 +97,7 @@ public class TileComponentSecurity implements ITileComponent
|
|||
}
|
||||
}
|
||||
|
||||
Frequency freq = new SecurityFrequency(owner).setPublic(true);
|
||||
Frequency freq = new SecurityFrequency(owner).setAccess(SecurityMode.PUBLIC);
|
||||
freq.activeCoords.add(Coord4D.get(tileEntity));
|
||||
manager.addFrequency(freq);
|
||||
frequency = (SecurityFrequency)freq;
|
||||
|
|
|
@ -675,6 +675,7 @@ gui.digitalMiner.inverse=Inverse mode
|
|||
gui.digitalMiner.requireReplace=Require replace
|
||||
gui.digitalMiner.fuzzyMode=Fuzzy mode
|
||||
gui.digitalMiner.missingBlock=Missing block
|
||||
gui.trusted=Trusted
|
||||
|
||||
//Recipe names
|
||||
recipe.mekanismShaped=Shaped
|
||||
|
|
Loading…
Reference in a new issue