From fecf07d9d3392dad4d8336b2de08ad3e3d08ef48 Mon Sep 17 00:00:00 2001 From: Xamora64 <49618907+Xamora64@users.noreply.github.com> Date: Sun, 11 Aug 2024 23:35:11 +0200 Subject: [PATCH] Bug patch --- build.gradle | 78 ++++++++++++++++++- src/main/java/xamora/gp_dbc/Main.java | 8 +- .../java/xamora/gp_dbc/proxy/ServerProxy.java | 1 + .../xamora/gp_dbc/system/GalacticPatrol.java | 25 ++++-- .../java/xamora/gp_dbc/system/Handcuff.java | 17 ++-- .../java/xamora/gp_dbc/system/Handcuffed.java | 4 + src/main/java/xamora/gp_dbc/system/Jail.java | 11 ++- .../java/xamora/gp_dbc/utils/InputUtils.java | 4 +- 8 files changed, 126 insertions(+), 22 deletions(-) diff --git a/build.gradle b/build.gradle index 22699f9..0c38149 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ targetCompatibility = 1.8 version = "0.0.1" group = "xamora.gp_dbc" // http://maven.apache.org/guides/mini/guide-naming-conventions.html -archivesBaseName = "gp" +archivesBaseName = "gp_dbc" minecraft { version = "1.7.10-10.13.4.1614-1.7.10" @@ -49,6 +49,40 @@ dependencies { } +sourceSets { + main { + java { + srcDir 'src/main/java' + } + resources { + srcDir "src/main/resources" + } + + } + /*server { + java { + srcDir 'src/server/java' + } + resources { + srcDir "src/server/resources" + } + + runtimeClasspath = sourceSets.main.runtimeClasspath + sourceSets.main.output + compileClasspath = sourceSets.main.compileClasspath + sourceSets.main.output + } + client { + java { + srcDir 'src/client/java' + } + resources { + srcDir "src/client/resources" + } + + runtimeClasspath = sourceSets.main.runtimeClasspath + sourceSets.main.output + compileClasspath = sourceSets.main.compileClasspath + sourceSets.main.output + }*/ +} + processResources { // this will ensure that this task is redone when the versions change. @@ -67,6 +101,32 @@ processResources from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } + + // replace stuff in mcmod.info, nothing else + /*from(sourceSets.server.resources.srcDirs) { + include 'mcmod.info' + + // replace version and mcversion + expand 'version':project.version, 'mcversion':project.minecraft.version + } + + // copy everything else, thats not the mcmod.info + from(sourceSets.server.resources.srcDirs) { + exclude 'mcmod.info' + } + + // replace stuff in mcmod.info, nothing else + from(sourceSets.client.resources.srcDirs) { + include 'mcmod.info' + + // replace version and mcversion + expand 'version':project.version, 'mcversion':project.minecraft.version + } + + // copy everything else, thats not the mcmod.info + from(sourceSets.client.resources.srcDirs) { + exclude 'mcmod.info' + }*/ } // Ensures that the encoding of source files is set to UTF-8, see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html @@ -78,12 +138,16 @@ tasks.withType(JavaCompile) { task sourcesJar(type: Jar, dependsOn: classes) { classifier = "sources" from sourceSets.main.allSource + //from sourceSets.server.allSource + //from sourceSets.client.allSource } // This task creates a .jar file containing a deobfuscated version of this mod, for other developers to use in a development environment. task devJar(type: Jar) { classifier = "dev" from sourceSets.main.output + //from sourceSets.server.output + //from sourceSets.client.output } // Creates the listed artifacts on building the mod. @@ -106,4 +170,16 @@ publishing.publications { builtBy devJar } } +} + +// Source set test separate client / server +task printSourceSetInformation(){ + doLast{ + sourceSets.each { srcSet -> + println "["+srcSet.name+"]" + print "-->Source directories: "+srcSet.allJava.srcDirs+"\n" + print "-->Output directories: "+srcSet.output.classesDirs.files+"\n" + println "" + } + } } \ No newline at end of file diff --git a/src/main/java/xamora/gp_dbc/Main.java b/src/main/java/xamora/gp_dbc/Main.java index 9cceb15..6f7d944 100644 --- a/src/main/java/xamora/gp_dbc/Main.java +++ b/src/main/java/xamora/gp_dbc/Main.java @@ -12,20 +12,20 @@ import xamora.gp_dbc.system.GalacticPatrol; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; -@Mod(modid = Main.MODID, version = Main.VERSION, guiFactory = "gp_dbc.config.GuiFactoryConfig", canBeDeactivated = true) +@Mod(modid = Main.MODID, version = Main.VERSION, guiFactory = "xamora.gp_dbc.config.GuiFactoryConfig", canBeDeactivated = true) public class Main { @Mod.Instance(Main.MODID) public static Main main = new Main(); - @SidedProxy(clientSide = "gp_dbc.proxy.ClientProxy", serverSide = "gp_dbc.proxy.ServerProxy") + @SidedProxy(clientSide = "xamora.gp_dbc.proxy.ClientProxy", serverSide = "xamora.gp_dbc.proxy.ServerProxy") public static CommonProxy proxy; public static GalacticPatrol gp = new GalacticPatrol(); - public static final String MODID = "xamora/gp_dbc"; - public static final String VERSION = "0.0.0"; + public static final String MODID = "gp_dbc"; + public static final String VERSION = "0.0.1"; @EventHandler public void preInit(FMLPreInitializationEvent e) { diff --git a/src/main/java/xamora/gp_dbc/proxy/ServerProxy.java b/src/main/java/xamora/gp_dbc/proxy/ServerProxy.java index cd09127..1faabec 100644 --- a/src/main/java/xamora/gp_dbc/proxy/ServerProxy.java +++ b/src/main/java/xamora/gp_dbc/proxy/ServerProxy.java @@ -19,6 +19,7 @@ public class ServerProxy extends CommonProxy{ FMLCommonHandler.instance().bus().register(new TimeJail()); FMLCommonHandler.instance().bus().register(Main.gp); + MinecraftForge.EVENT_BUS.register(Main.gp); Handcuff handcuff = new Handcuff(); FMLCommonHandler.instance().bus().register(handcuff); diff --git a/src/main/java/xamora/gp_dbc/system/GalacticPatrol.java b/src/main/java/xamora/gp_dbc/system/GalacticPatrol.java index 5a17f37..2e30e0c 100644 --- a/src/main/java/xamora/gp_dbc/system/GalacticPatrol.java +++ b/src/main/java/xamora/gp_dbc/system/GalacticPatrol.java @@ -152,27 +152,38 @@ public class GalacticPatrol { return; EntityPlayer source = (EntityPlayer) event.source.getSourceOfDamage(); - if (!isInGalacticPatrol(source)) - return; - EntityPlayer target = (EntityPlayer) event.entity; - if (isInGalacticPatrol(target)) + + if (isInGalacticPatrol(source) && isInGalacticPatrol(target)) + return; + if (!isInGalacticPatrol(source) && !isInGalacticPatrol(target)) return; - InFightWithPatrollers.put(source.getUniqueID(), System.currentTimeMillis()); + if (criminals.isCriminal(source.getUniqueID())) + InFightWithPatrollers.put(source.getUniqueID(), System.currentTimeMillis()); + else if (criminals.isCriminal(target.getUniqueID())) + InFightWithPatrollers.put(target.getUniqueID(), System.currentTimeMillis()); } @SubscribeEvent @SideOnly(Side.SERVER) public void checkFightLogOut(PlayerEvent.PlayerLoggedOutEvent event) { - if (ConfigManager.CRIMINAL_QUIT_IN_FIGHT_GO_TO_JAIL) + if (!ConfigManager.CRIMINAL_QUIT_IN_FIGHT_GO_TO_JAIL) return; + long currentTime = System.currentTimeMillis(); Long time = InFightWithPatrollers.get(event.player.getUniqueID()); - if (time == null || System.currentTimeMillis() - time <= ConfigManager.CRIMINAL_TIME_TO_QUIT_IN_FIGHT) + if (time == null || currentTime - time > ConfigManager.CRIMINAL_TIME_TO_QUIT_IN_FIGHT) return; + EntityPlayer jailer = null; + if (event.player.getLastAttacker() instanceof EntityPlayer) { + EntityPlayer attacker = (EntityPlayer) event.player.getLastAttacker(); + if (isInGalacticPatrol(attacker)) + jailer = attacker; + } + jail.putPlayerInJail(jailer, event.player); } } diff --git a/src/main/java/xamora/gp_dbc/system/Handcuff.java b/src/main/java/xamora/gp_dbc/system/Handcuff.java index c7e5f4e..354bf9f 100644 --- a/src/main/java/xamora/gp_dbc/system/Handcuff.java +++ b/src/main/java/xamora/gp_dbc/system/Handcuff.java @@ -6,9 +6,12 @@ import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import ibxm.Player; +import net.minecraft.entity.Entity; import xamora.gp_dbc.Main; import xamora.gp_dbc.network.client.NetworkHandcuffedC; import xamora.gp_dbc.proxy.CommonProxy; +import xamora.gp_dbc.utils.EntityUtils; import xamora.gp_dbc.utils.InputUtils; import xamora.gp_dbc.utils.PlayerUtils; import xamora.gp_dbc.utils.TextUtils; @@ -74,7 +77,7 @@ public class Handcuff { i--; EntityPlayer patrol = getPlayerFromUUID(uuid_patrol); - Main.gp.jail.putPlayerInJail(patrol, inmate, Main.gp.criminals.getCriminal(inmate.getUniqueID())); + Main.gp.jail.putPlayerInJail(patrol, inmate); } else hdfd.start_time = -1L; @@ -224,7 +227,7 @@ public class Handcuff { @SideOnly(Side.SERVER) @SubscribeEvent - public void RemoveHandcuff(EntityInteractEvent event) { + public void TryToRemoveHandcuff(EntityInteractEvent event) { if (event.target instanceof EntityPlayer) { EntityPlayer target = (EntityPlayer) event.target; EntityPlayer player = event.entityPlayer; @@ -254,13 +257,17 @@ public class Handcuff { Map.Entry entry = iterator.next(); String[] split = entry.getKey().split("~"); UUID liberator_uuid = UUID.fromString(split[0]); + UUID inmate_uuid = UUID.fromString(split[1]); EntityPlayer liberator = PlayerUtils.getPlayerFromUUID(liberator_uuid); - EntityPlayer inmate = PlayerUtils.getPlayerFromUUID(UUID.fromString(split[1])); + EntityPlayer inmate = PlayerUtils.getPlayerFromUUID(inmate_uuid); if (liberator == null || inmate == null) continue; + Entity target = EntityUtils.getEntityLookedAt(liberator, 5); + if ((InputUtils.useItemPressedPlayers.containsKey(liberator_uuid) && !InputUtils.useItemPressedPlayers.get(liberator_uuid)) - || !liberator.isSneaking()) { + || !liberator.isSneaking() + || !(target instanceof EntityPlayer) || !target.getUniqueID().equals(inmate_uuid)) { iterator.remove(); liberator.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + translateToLocal("msg.stop_unhandcuffing_someone"))); } @@ -293,6 +300,6 @@ public class Handcuff { EntityPlayer inmate = event.player; removeHandcuffed(inmate); - Main.gp.jail.putPlayerInJail(patrol, inmate, Main.gp.criminals.getCriminal(inmate.getUniqueID())); + Main.gp.jail.putPlayerInJail(patrol, inmate); } } diff --git a/src/main/java/xamora/gp_dbc/system/Handcuffed.java b/src/main/java/xamora/gp_dbc/system/Handcuffed.java index 88b28a9..717e925 100644 --- a/src/main/java/xamora/gp_dbc/system/Handcuffed.java +++ b/src/main/java/xamora/gp_dbc/system/Handcuffed.java @@ -15,6 +15,10 @@ public class Handcuffed { public static long timeToWait = ConfigManager.TIME_TO_GO_IN_JAIL; + public Handcuffed(UUID inmate, UUID jailer) { + this(inmate, jailer, System.currentTimeMillis(), false); + } + public Handcuffed(UUID inmate, long start_time) { this(inmate, null, start_time, false); } diff --git a/src/main/java/xamora/gp_dbc/system/Jail.java b/src/main/java/xamora/gp_dbc/system/Jail.java index dcb8302..7786c5d 100644 --- a/src/main/java/xamora/gp_dbc/system/Jail.java +++ b/src/main/java/xamora/gp_dbc/system/Jail.java @@ -14,6 +14,7 @@ import net.minecraft.util.MathHelper; import java.util.*; import static net.minecraft.util.StatCollector.translateToLocal; +import static xamora.gp_dbc.Main.gp; public class Jail { @@ -102,17 +103,21 @@ public class Jail { return cells; } - public Cell putPlayerInJail(ICommandSender sender, EntityPlayer inmate, Criminal criminal) { + public Cell putPlayerInJail(ICommandSender sender, EntityPlayer inmate) { + Criminal criminal = gp.criminals.getCriminal(inmate.getUniqueID()); if (criminal == null) return null; long sec = criminal.getTimeJail(); - Main.gp.criminals.removeCriminal(criminal.getUuid()); + gp.criminals.removeCriminal(criminal.getUuid()); return putPlayerInJail(sender, inmate, sec, sender != null); } public Cell putPlayerInJail(ICommandSender sender, EntityPlayer inmate, long sec, boolean chatMsg) { + if (inmate == null) + return null; + if (ConfigManager.pos_exit_jail == null) { if (chatMsg) sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + translateToLocal("error.definition_exit_pos"))); @@ -139,7 +144,7 @@ public class Jail { String timeString = displayTimeInJail(sec); - if (!translateToLocal("success.in_jail").isEmpty()) + if (!translateToLocal("success.in_jail").isEmpty() && sender != null) sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + translateToLocal("success.in_jail") + timeString)); if (!translateToLocal("msg.inmate_going_to_jail").isEmpty()) inmate.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + translateToLocal("msg.inmate_going_to_jail") + timeString)); diff --git a/src/main/java/xamora/gp_dbc/utils/InputUtils.java b/src/main/java/xamora/gp_dbc/utils/InputUtils.java index 21e2a22..b37df1d 100644 --- a/src/main/java/xamora/gp_dbc/utils/InputUtils.java +++ b/src/main/java/xamora/gp_dbc/utils/InputUtils.java @@ -21,14 +21,14 @@ public class InputUtils { @SubscribeEvent public void handleMouseInput (InputEvent.MouseInputEvent event) { GameSettings gameSettings = Minecraft.getMinecraft().gameSettings; - boolean pressed = gameSettings.keyBindUseItem.isPressed(); + boolean pressed = gameSettings.keyBindUseItem.getIsKeyPressed(); if (pressed == useItemPressed) return; useItemPressed = pressed; CommonProxy.network.sendToServer(new NetworkKeyManage("useItem~" + useItemPressed)); - //System.out.println(useItemPressed); + System.out.println(useItemPressed); } }