From 6398f4b99679efb68bf205976a95bb708c76366b Mon Sep 17 00:00:00 2001 From: Caedis Date: Wed, 31 Aug 2022 09:26:02 -0500 Subject: [PATCH 1/2] Initial changes --- .../client/gui/controls/PanelButtonQuest.java | 4 +-- .../blocks/TileSubmitStation.java | 3 ++- .../betterquesting/client/gui2/GuiHome.java | 2 -- .../commands/admin/QuestCommandDefaults.java | 6 ----- .../commands/admin/QuestCommandEdit.java | 10 +++++--- .../betterquesting/handlers/EventHandler.java | 4 +-- .../handlers/SaveLoadHandler.java | 3 ++- .../betterquesting/items/ItemLootChest.java | 4 ++- .../legacy/v0/LegacyLoader_v0.java | 1 - .../questing/QuestInstance.java | 4 +-- .../betterquesting/storage/QuestSettings.java | 25 +++++++++++++++++-- 11 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/main/java/betterquesting/api2/client/gui/controls/PanelButtonQuest.java b/src/main/java/betterquesting/api2/client/gui/controls/PanelButtonQuest.java index 2ab6f5ec1..d294181c2 100644 --- a/src/main/java/betterquesting/api2/client/gui/controls/PanelButtonQuest.java +++ b/src/main/java/betterquesting/api2/client/gui/controls/PanelButtonQuest.java @@ -89,7 +89,7 @@ public List getTooltip(int mx, int my) { private List getQuestTooltip(IQuest quest, EntityPlayer player, int qID) { List tooltip = getStandardTooltip(quest, player, qID); - if (Minecraft.getMinecraft().gameSettings.advancedItemTooltips && QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE)) { + if (Minecraft.getMinecraft().gameSettings.advancedItemTooltips && QuestSettings.INSTANCE.getEditMode(player)) { tooltip.add(""); tooltip.addAll(this.getAdvancedTooltip(quest, player, qID)); } @@ -130,7 +130,7 @@ private List getStandardTooltip(IQuest quest, EntityPlayer player, int q timeTxt += df.format(time % 60) + "s"; list.add(TextFormatting.GRAY + QuestTranslation.translate("betterquesting.tooltip.repeat", timeTxt)); - if (QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE)) { + if (QuestSettings.INSTANCE.getEditMode(player)) { list.add(TextFormatting.RED + QuestTranslation.translate("betterquesting.tooltip.repeat_with_edit_mode")); } } diff --git a/src/main/java/betterquesting/blocks/TileSubmitStation.java b/src/main/java/betterquesting/blocks/TileSubmitStation.java index 68981d348..e7f118c46 100644 --- a/src/main/java/betterquesting/blocks/TileSubmitStation.java +++ b/src/main/java/betterquesting/blocks/TileSubmitStation.java @@ -11,6 +11,7 @@ import betterquesting.core.BetterQuesting; import betterquesting.questing.QuestDatabase; import betterquesting.storage.QuestSettings; +import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.ISidedInventory; @@ -228,7 +229,7 @@ public IFluidTankProperties[] getTankProperties() { @Override public void update() { - if (world.isRemote || !isSetup() || QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE)) return; + if (world.isRemote || !isSetup() || QuestSettings.INSTANCE.getEditMode(Minecraft.getMinecraft().player)) return; long wtt = world.getTotalWorldTime(); if (wtt % 5 == 0 && owner != null) { diff --git a/src/main/java/betterquesting/client/gui2/GuiHome.java b/src/main/java/betterquesting/client/gui2/GuiHome.java index b0b48b1c3..3bd05f3a7 100644 --- a/src/main/java/betterquesting/client/gui2/GuiHome.java +++ b/src/main/java/betterquesting/client/gui2/GuiHome.java @@ -183,7 +183,6 @@ private void onButtonPress(PanelEvent event) { if (qFile.exists()) { FMLCommonHandler.instance().getMinecraftServerInstance().addScheduledTask(() -> { - boolean editMode = QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE); boolean hardMode = QuestSettings.INSTANCE.getProperty(NativeProps.HARDCORE); NBTTagList jsonP = QuestDatabase.INSTANCE.writeProgressToNBT(new NBTTagList(), null); @@ -193,7 +192,6 @@ private void onButtonPress(PanelEvent event) { QuestLineDatabase.INSTANCE.readFromNBT(j1.getTagList("questLines", 10), false); QuestDatabase.INSTANCE.readProgressFromNBT(jsonP, false); - QuestSettings.INSTANCE.setProperty(NativeProps.EDIT_MODE, editMode); QuestSettings.INSTANCE.setProperty(NativeProps.HARDCORE, hardMode); NetSettingSync.sendSync(null); diff --git a/src/main/java/betterquesting/commands/admin/QuestCommandDefaults.java b/src/main/java/betterquesting/commands/admin/QuestCommandDefaults.java index d41aeaf1a..4214ef203 100644 --- a/src/main/java/betterquesting/commands/admin/QuestCommandDefaults.java +++ b/src/main/java/betterquesting/commands/admin/QuestCommandDefaults.java @@ -67,13 +67,9 @@ public void runCommand(MinecraftServer server, CommandBase command, ICommandSend } if (args[1].equalsIgnoreCase("save")) { - boolean editMode = QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE); - NBTTagCompound base = new NBTTagCompound(); - QuestSettings.INSTANCE.setProperty(NativeProps.EDIT_MODE, false); base.setTag("questSettings", QuestSettings.INSTANCE.writeToNBT(new NBTTagCompound())); - QuestSettings.INSTANCE.setProperty(NativeProps.EDIT_MODE, editMode); base.setTag("questDatabase", QuestDatabase.INSTANCE.writeToNBT(new NBTTagList(), null)); base.setTag("questLines", QuestLineDatabase.INSTANCE.writeToNBT(new NBTTagList(), null)); base.setString("format", BetterQuesting.FORMAT); @@ -86,7 +82,6 @@ public void runCommand(MinecraftServer server, CommandBase command, ICommandSend } } else if (args[1].equalsIgnoreCase("load")) { if (qFile.exists()) { - boolean editMode = QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE); boolean hardMode = QuestSettings.INSTANCE.getProperty(NativeProps.HARDCORE); NBTTagList jsonP = QuestDatabase.INSTANCE.writeProgressToNBT(new NBTTagList(), null); @@ -106,7 +101,6 @@ public void runCommand(MinecraftServer server, CommandBase command, ICommandSend QuestDatabase.INSTANCE.readProgressFromNBT(jsonP, false); - QuestSettings.INSTANCE.setProperty(NativeProps.EDIT_MODE, editMode); QuestSettings.INSTANCE.setProperty(NativeProps.HARDCORE, hardMode); if (args.length == 3 && !args[2].equalsIgnoreCase("DefaultQuests")) { diff --git a/src/main/java/betterquesting/commands/admin/QuestCommandEdit.java b/src/main/java/betterquesting/commands/admin/QuestCommandEdit.java index 0d85029b4..4008623d7 100644 --- a/src/main/java/betterquesting/commands/admin/QuestCommandEdit.java +++ b/src/main/java/betterquesting/commands/admin/QuestCommandEdit.java @@ -5,9 +5,13 @@ import betterquesting.handlers.SaveLoadHandler; import betterquesting.network.handlers.NetSettingSync; import betterquesting.storage.QuestSettings; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.command.CommandBase; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.server.MinecraftServer; import net.minecraft.util.text.TextComponentTranslation; import net.minecraftforge.server.permission.DefaultPermissionLevel; @@ -38,7 +42,7 @@ public List autoComplete(MinecraftServer server, ICommandSender sender, @Override public void runCommand(MinecraftServer server, CommandBase command, ICommandSender sender, String[] args) throws CommandException { - boolean flag = !QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE); + boolean flag = !QuestSettings.INSTANCE.getEditMode((EntityPlayer) sender); if (args.length == 2) { try { @@ -54,9 +58,9 @@ public void runCommand(MinecraftServer server, CommandBase command, ICommandSend } } - QuestSettings.INSTANCE.setProperty(NativeProps.EDIT_MODE, flag); + QuestSettings.INSTANCE.setEditMode((EntityPlayer) sender, flag); - sender.sendMessage(new TextComponentTranslation("betterquesting.cmd.edit", new TextComponentTranslation(QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE) ? "options.on" : "options.off"))); + sender.sendMessage(new TextComponentTranslation("betterquesting.cmd.edit", new TextComponentTranslation(QuestSettings.INSTANCE.getEditMode((EntityPlayer) sender) ? "options.on" : "options.off"))); SaveLoadHandler.INSTANCE.markDirty(); NetSettingSync.sendSync(null); diff --git a/src/main/java/betterquesting/handlers/EventHandler.java b/src/main/java/betterquesting/handlers/EventHandler.java index 82ea55ea7..260673d98 100644 --- a/src/main/java/betterquesting/handlers/EventHandler.java +++ b/src/main/java/betterquesting/handlers/EventHandler.java @@ -128,7 +128,7 @@ public void onLivingUpdate(LivingUpdateEvent event) { EntityPlayerMP player = (EntityPlayerMP) event.getEntityLiving(); betterquesting.api2.cache.QuestCache qc = player.getCapability(CapabilityProviderQuestCache.CAP_QUEST_CACHE, null); - boolean editMode = QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE); + boolean editMode = QuestSettings.INSTANCE.getEditMode(player); if (qc == null) return; @@ -600,7 +600,7 @@ public void onBlockBreak(BlockEvent.BreakEvent event) { @SubscribeEvent public void onEntityLiving(LivingUpdateEvent event) { - if (!(event.getEntityLiving() instanceof EntityPlayer) || event.getEntityLiving().world.isRemote || event.getEntityLiving().ticksExisted % 20 != 0 || QuestingAPI.getAPI(ApiReference.SETTINGS).getProperty(NativeProps.EDIT_MODE)) + if (!(event.getEntityLiving() instanceof EntityPlayer) || event.getEntityLiving().world.isRemote || event.getEntityLiving().ticksExisted % 20 != 0 || QuestSettings.INSTANCE.getEditMode((EntityPlayer) event.getEntityLiving())) return; EntityPlayer player = (EntityPlayer) event.getEntityLiving(); diff --git a/src/main/java/betterquesting/handlers/SaveLoadHandler.java b/src/main/java/betterquesting/handlers/SaveLoadHandler.java index a7489bd02..2a022d265 100644 --- a/src/main/java/betterquesting/handlers/SaveLoadHandler.java +++ b/src/main/java/betterquesting/handlers/SaveLoadHandler.java @@ -21,6 +21,7 @@ import betterquesting.storage.QuestSettings; import com.google.gson.JsonObject; import io.netty.util.internal.ConcurrentSet; +import net.minecraft.client.Minecraft; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.server.MinecraftServer; @@ -121,7 +122,7 @@ public void loadDatabases(MinecraftServer server) { public void saveDatabases() { List> allFutures = new ArrayList<>(); - if (isDirty || QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE)) { + if (isDirty || QuestSettings.INSTANCE.getEditMode(Minecraft.getMinecraft().player)) { allFutures.add(saveConfig()); } diff --git a/src/main/java/betterquesting/items/ItemLootChest.java b/src/main/java/betterquesting/items/ItemLootChest.java index 2fd9122da..d732ac836 100644 --- a/src/main/java/betterquesting/items/ItemLootChest.java +++ b/src/main/java/betterquesting/items/ItemLootChest.java @@ -9,6 +9,8 @@ import betterquesting.network.handlers.NetLootClaim; import betterquesting.questing.rewards.loot.LootGroup; import betterquesting.questing.rewards.loot.LootRegistry; +import betterquesting.storage.QuestSettings; +import net.minecraft.client.Minecraft; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -228,7 +230,7 @@ public void addInformation(ItemStack stack, @Nullable World worldIn, List Date: Wed, 31 Aug 2022 21:49:24 -0700 Subject: [PATCH 2/2] Use PlayerMP in TileSubmitStation --- .../betterquesting/blocks/TileSubmitStation.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/betterquesting/blocks/TileSubmitStation.java b/src/main/java/betterquesting/blocks/TileSubmitStation.java index e7f118c46..da4bcdd89 100644 --- a/src/main/java/betterquesting/blocks/TileSubmitStation.java +++ b/src/main/java/betterquesting/blocks/TileSubmitStation.java @@ -229,15 +229,21 @@ public IFluidTankProperties[] getTankProperties() { @Override public void update() { - if (world.isRemote || !isSetup() || QuestSettings.INSTANCE.getEditMode(Minecraft.getMinecraft().player)) return; + + MinecraftServer server = world.getMinecraftServer(); + EntityPlayerMP player = null; + + if(owner != null) { + player = server == null ? null : server.getPlayerList().getPlayerByUUID(owner); + } + + if (world.isRemote || !isSetup() || (player != null && QuestSettings.INSTANCE.getEditMode(player))) return; long wtt = world.getTotalWorldTime(); if (wtt % 5 == 0 && owner != null) { if (wtt % 20 == 0) qCached = null; // Reset and lookup quest again once every second DBEntry q = getQuest(); IItemTask t = getItemTask(); - MinecraftServer server = world.getMinecraftServer(); - EntityPlayerMP player = server == null ? null : server.getPlayerList().getPlayerByUUID(owner); QuestCache qc = player == null ? null : player.getCapability(CapabilityProviderQuestCache.CAP_QUEST_CACHE, null); // Check quest & task is present. Check input is populated and output is clear.