diff --git a/src/main/java/noppes/npcs/client/PacketHandlerClient.java b/src/main/java/noppes/npcs/client/PacketHandlerClient.java index 07f025119..b64066ff1 100644 --- a/src/main/java/noppes/npcs/client/PacketHandlerClient.java +++ b/src/main/java/noppes/npcs/client/PacketHandlerClient.java @@ -136,6 +136,10 @@ public class PacketHandlerClient extends PacketHandlerServer{ SyncController.clientSyncRemove(synctype, id); } + else if(type == EnumPacketClient.SYNC_CONFIG){ + NBTTagCompound configNBT = Server.readNBT(buffer); + SyncController.receiveConfigs(configNBT); + } else if(type == EnumPacketClient.MARK_DATA){ Entity entity = Minecraft.getMinecraft().theWorld.getEntityByID(buffer.readInt()); if(!(entity instanceof EntityNPCInterface)) diff --git a/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java b/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java index 8dbb2345c..e289f6294 100644 --- a/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java +++ b/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java @@ -8,6 +8,7 @@ import net.minecraft.util.ResourceLocation; import noppes.npcs.client.gui.util.GuiMenuSideButton; import noppes.npcs.client.gui.util.GuiNPCInterface; import noppes.npcs.config.ConfigClient; +import noppes.npcs.config.ConfigMain; import tconstruct.client.tabs.InventoryTabCustomNpc; import tconstruct.client.tabs.TabRegistry; @@ -67,6 +68,16 @@ public class GuiCNPCInventory extends GuiNPCInterface { addButton(dbcButton); } + if(ConfigMain.EnableProfiles){ + y += 21; + GuiMenuSideButton profileButton = new GuiMenuSideButton(105, guiLeft + xSize + 37, this.guiTop + y, 22, 22, ""); + profileButton.rightSided = true; + profileButton.active = activeTab == 5; + profileButton.renderIconPosX = 80; + profileButton.renderResource = specialIcons; + addButton(profileButton); + } + y += 21; GuiMenuSideButton clientButton = new GuiMenuSideButton(103, guiLeft + xSize + 37, this.guiTop + y, 22, 22, ""); clientButton.rightSided = true; diff --git a/src/main/java/noppes/npcs/config/ConfigMain.java b/src/main/java/noppes/npcs/config/ConfigMain.java index 046b77da0..e3437c610 100644 --- a/src/main/java/noppes/npcs/config/ConfigMain.java +++ b/src/main/java/noppes/npcs/config/ConfigMain.java @@ -17,6 +17,7 @@ public class ConfigMain public final static String NPC = "NPC"; public final static String UPDATE = "Update"; public final static String PARTY = "PARTY"; + public final static String PROFILES = "Profile"; /** * General Main Properties @@ -79,6 +80,8 @@ public class ConfigMain public static Property DefaultMaxPartySizeProperty; public static int DefaultMaxPartySize = 4; + public static boolean EnableProfiles = true; + /** * General NPC Properties **/ @@ -216,6 +219,9 @@ public class ConfigMain TrackedQuestUpdateFrequencyProperty = config.get(UPDATE, "Tracked Quest Update Frequency", 5, "How often in seconds to update a players tracked quest. [Only applies to Item Quest currently]"); TrackedQuestUpdateFrequency = TrackedQuestUpdateFrequencyProperty.getInt(5); + // PROFILES + EnableProfiles = config.get(PROFILES, "Enable Profiles", true, "Allow the use of character Profiles").getBoolean(true); + // Convert to Legacy if(CustomNpcs.legacyExist){ EnableUpdateChecker = LegacyConfig.EnableUpdateChecker; diff --git a/src/main/java/noppes/npcs/constants/EnumPacketClient.java b/src/main/java/noppes/npcs/constants/EnumPacketClient.java index 85705569e..dc6ff6880 100644 --- a/src/main/java/noppes/npcs/constants/EnumPacketClient.java +++ b/src/main/java/noppes/npcs/constants/EnumPacketClient.java @@ -56,6 +56,7 @@ public enum EnumPacketClient { SYNC_WEAPON, MARK_DATA, SYNC_ADD, SYNC_END, SYNC_UPDATE, SYNC_REMOVE, SYNC_PLAYER, + SYNC_CONFIG, DBC_FORM, LARGE_NBT_PART, LARGE_NBT_END, PARTY_DATA diff --git a/src/main/java/noppes/npcs/controllers/SyncController.java b/src/main/java/noppes/npcs/controllers/SyncController.java index 94d9efe73..8ebf881e5 100644 --- a/src/main/java/noppes/npcs/controllers/SyncController.java +++ b/src/main/java/noppes/npcs/controllers/SyncController.java @@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import noppes.npcs.NoppesUtilServer; import noppes.npcs.Server; +import noppes.npcs.config.ConfigMain; import noppes.npcs.constants.EnumPacketClient; import noppes.npcs.constants.SyncType; import noppes.npcs.controllers.data.*; @@ -15,6 +16,16 @@ import java.util.HashMap; public class SyncController { + public static void syncConfigs(EntityPlayerMP player){ + NBTTagCompound nbtTagCompound = new NBTTagCompound(); + nbtTagCompound.setBoolean("Profiles", true); + Server.sendData(player, EnumPacketClient.SYNC_CONFIG, nbtTagCompound); + } + + public static void receiveConfigs(NBTTagCompound compound){ + ConfigMain.EnableProfiles = compound.getBoolean("Profiles"); + } + public static void syncPlayer(EntityPlayerMP player){ NBTTagList list = new NBTTagList(); NBTTagCompound compound = new NBTTagCompound();