Skip to content

Commit a0cebf4

Browse files
Kleadronhalotroop2288
authored andcommitted
Reforged: IReachEntity related stuff, version check and Reforged version
1 parent cedd1c3 commit a0cebf4

File tree

6 files changed

+210
-27
lines changed

6 files changed

+210
-27
lines changed

forge_common/net/minecraft/src/forge/ForgeHooks.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ static void initTools() {
8989
if(toolInit) return;
9090
toolInit=true;
9191

92+
// This is wacky
93+
9294
MinecraftForge.setToolClass(Item.pickaxeWood,"pickaxe",0);
9395
MinecraftForge.setToolClass(Item.pickaxeStone,"pickaxe",1);
9496
MinecraftForge.setToolClass(Item.pickaxeSteel,"pickaxe",2);
@@ -137,6 +139,10 @@ static void initTools() {
137139
// TODO: add other tool tables.
138140
}
139141

142+
public static void touch() {
143+
// touch :)
144+
}
145+
140146
public static final int majorVersion=1;
141147
public static final int minorVersion=0;
142148
public static final int revisionVersion=6;

forge_common/net/minecraft/src/forge/MinecraftForge.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.minecraft.src.Item;
99
import net.minecraft.src.ItemStack;
1010
import net.minecraft.src.World;
11+
import net.minecraft.src.reforged.ReforgedHooks;
1112

1213
import java.util.*;
1314

@@ -171,6 +172,8 @@ public static void killMinecraft(String modname, String msg) {
171172
throw new RuntimeException(modname+": "+msg);
172173
}
173174

175+
public static boolean disableVersionCheckCrash = false;
176+
174177
/**
175178
* Version checking. Ensures that a sufficiently recent version of Forge
176179
* is installed. Will result in a fatal error if the major versions
@@ -179,6 +182,14 @@ public static void killMinecraft(String modname, String msg) {
179182
*/
180183
public static void versionDetect(String modname,
181184
int major, int minor, int revision) {
185+
186+
if (disableVersionCheckCrash) {
187+
// invoke static constructor for forgehooks
188+
ReforgedHooks.touch();
189+
System.out.println(modname + ": Forge version detect was called, but strict crashing is disabled. Expected version "+major+"."+minor+"."+revision);
190+
return;
191+
}
192+
182193
if(major!=ForgeHooks.majorVersion) {
183194
killMinecraft(modname,"MinecraftForge Major Version Mismatch, expecting "+major+".x.x");
184195
} else if(minor!=ForgeHooks.minorVersion) {
@@ -201,6 +212,14 @@ public static void versionDetect(String modname,
201212
*/
202213
public static void versionDetectStrict(String modname,
203214
int major, int minor, int revision) {
215+
216+
if (disableVersionCheckCrash) {
217+
// invoke static constructor for forgehooks
218+
ReforgedHooks.touch();
219+
System.out.println(modname + ": Forge version detect was called, but strict crashing is disabled. Expected version "+major+"."+minor+"."+revision);
220+
return;
221+
}
222+
204223
if(major!=ForgeHooks.majorVersion) {
205224
killMinecraft(modname,"MinecraftForge Major Version Mismatch, expecting "+major+".x.x");
206225
} else if(minor!=ForgeHooks.minorVersion) {
@@ -213,23 +232,8 @@ public static void versionDetectStrict(String modname,
213232
killMinecraft(modname,"MinecraftForge Too Old, need at least "+major+"."+minor+"."+revision);
214233
}
215234
}
216-
217-
218-
219-
220-
221-
222-
223-
224-
225-
226-
227-
228-
229-
230-
231-
232-
235+
236+
233237
// Ore Dictionary
234238
// ------------------------------------------------------------
235239
private static LinkedList<IOreHandler> oreHandlers = new LinkedList<IOreHandler>();

forge_common/net/minecraft/src/reforged/IReachEntity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
public interface IReachEntity
1010
{
11+
// If this item is applicable to a custom range
1112
public abstract boolean reachEntityItemMatches(ItemStack itemstack);
1213

14+
// The maximum distance in meters/blocks
1315
public abstract float getReachEntity(ItemStack itemstack);
1416
}
Lines changed: 76 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,37 @@
1+
/**
2+
* This software is provided under the terms of the Minecraft Forge Public
3+
* License v1.1.
4+
*/
15
package net.minecraft.src.reforged;
26

37
import java.util.ArrayList;
48
import java.util.Iterator;
59

610
import net.minecraft.src.EntityPlayer;
711
import net.minecraft.src.ItemStack;
12+
import net.minecraft.src.forge.MinecraftForge;
813

914
public class Reforged {
1015

11-
private static ArrayList<IReachEntity> reachesEntity = new ArrayList<IReachEntity>();
16+
private static ArrayList<IReachEntity> reachesEntity = new ArrayList<IReachEntity>();
1217

13-
/* Entity Reach - reachAdd
14-
* Registers an IReachEntity interface provider to the list to be used when
15-
* reachGetEntityPlayer is called
16-
*/
18+
/* Entity Reach - reachAdd
19+
* Registers an IReachEntity interface provider to the list to be used when
20+
* reachGetEntityPlayer is called
21+
*/
1722
public static void reachAdd(IReachEntity ireachentity)
1823
{
1924
reachesEntity.add(ireachentity);
2025
}
2126

2227
/* Entity Reach - reachGetEntityPlayer
23-
* Returns the max reach distance provided by an interface provider
24-
* added by reachAdd
25-
*/
28+
* Returns the max reach distance provided by an interface provider
29+
* added by reachAdd
30+
*/
2631
public static float reachGetEntityPlayer(EntityPlayer player)
2732
{
2833
ItemStack itemstack = player.inventory.getCurrentItem();
29-
34+
3035
for(Iterator<IReachEntity> iterator = reachesEntity.iterator(); iterator.hasNext();)
3136
{
3237
IReachEntity ireachentity = iterator.next();
@@ -35,7 +40,68 @@ public static float reachGetEntityPlayer(EntityPlayer player)
3540
return ireachentity.getReachEntity(itemstack);
3641
}
3742
}
38-
43+
3944
return 3F;
4045
}
46+
47+
public static boolean disableVersionCheckCrash = false;
48+
49+
/**
50+
* Version checking. Ensures that a sufficiently recent version of Reforged
51+
* is installed. Will result in a fatal error if the major versions
52+
* mismatch or if the version is too old. Will print a warning message if
53+
* the minor versions don't match.
54+
*/
55+
public static void versionDetect(String modname,
56+
int major, int minor, int revision) {
57+
58+
if (disableVersionCheckCrash) {
59+
// invoke static constructor for reforgedhooks
60+
ReforgedHooks.touch();
61+
System.out.println(modname + ": Reforged version detect was called, but strict crashing is disabled. Expected version "+major+"."+minor+"."+revision);
62+
return;
63+
}
64+
65+
if(major!=ReforgedHooks.majorVersion) {
66+
MinecraftForge.killMinecraft(modname,"Reforged Major Version Mismatch, expecting "+major+".x.x");
67+
} else if(minor!=ReforgedHooks.minorVersion) {
68+
if(minor>ReforgedHooks.minorVersion) {
69+
MinecraftForge.killMinecraft(modname,"Reforged Too Old, need at least "+major+"."+minor+"."+revision);
70+
} else {
71+
System.out.println(modname + ": Reforged minor version mismatch, expecting "+major+"."+minor+".x, may lead to unexpected behavior");
72+
}
73+
} else if(revision>ReforgedHooks.revisionVersion) {
74+
MinecraftForge.killMinecraft(modname,"Reforged Too Old, need at least "+major+"."+minor+"."+revision);
75+
}
76+
}
77+
78+
/**
79+
* Strict version checking. Ensures that a sufficiently recent version of
80+
* Reforged is installed. Will result in a fatal error if the major or minor
81+
* versions mismatch or if the version is too old. Use this function for
82+
* mods that use recent, new, or unstable APIs to prevent
83+
* incompatibilities.
84+
*/
85+
public static void versionDetectStrict(String modname,
86+
int major, int minor, int revision) {
87+
88+
if (disableVersionCheckCrash) {
89+
// invoke static constructor for reforgedhooks
90+
ReforgedHooks.touch();
91+
System.out.println(modname + ": Reforged version detect was called, but strict crashing is disabled. Expected version "+major+"."+minor+"."+revision);
92+
return;
93+
}
94+
95+
if(major!=ReforgedHooks.majorVersion) {
96+
MinecraftForge.killMinecraft(modname,"Reforged Major Version Mismatch, expecting "+major+".x.x");
97+
} else if(minor!=ReforgedHooks.minorVersion) {
98+
if(minor>ReforgedHooks.minorVersion) {
99+
MinecraftForge.killMinecraft(modname,"Reforged Too Old, need at least "+major+"."+minor+"."+revision);
100+
} else {
101+
MinecraftForge.killMinecraft(modname,"Reforged minor version mismatch, expecting "+major+"."+minor+".x");
102+
}
103+
} else if(revision>ReforgedHooks.revisionVersion) {
104+
MinecraftForge.killMinecraft(modname,"Reforged Too Old, need at least "+major+"."+minor+"."+revision);
105+
}
106+
}
41107
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* This software is provided under the terms of the Minecraft Forge Public
3+
* License v1.1.
4+
*/
5+
package net.minecraft.src.reforged;
6+
7+
public class ReforgedHooks {
8+
9+
public static void touch() {
10+
// touch :)
11+
}
12+
13+
public static final int majorVersion=1;
14+
public static final int minorVersion=0;
15+
public static final int revisionVersion=0;
16+
static {
17+
System.out.printf("Reforged V%d.%d.%d Initialized\n",majorVersion,minorVersion,revisionVersion);
18+
}
19+
}

minecraft.patch

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,6 +1410,49 @@ diff -rN -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/WorldRen
14101410
< {
14111411
< tessellator = Tessellator.instance;
14121412
< }
1413+
diff -rN -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/mod_Reforged.java ../src_work/minecraft/net/minecraft/src/mod_Reforged.java
1414+
0a1,40
1415+
> /**
1416+
> * This software is provided under the terms of the Minecraft Forge Public
1417+
> * License v1.1.
1418+
> */
1419+
>
1420+
> package net.minecraft.src;
1421+
>
1422+
> import net.minecraft.src.forge.ForgeHooks;
1423+
> import net.minecraft.src.reforged.IReachEntity;
1424+
> import net.minecraft.src.reforged.Reforged;
1425+
> import net.minecraft.src.reforged.ReforgedHooks;
1426+
>
1427+
> public class mod_Reforged extends BaseModMp implements IReachEntity {
1428+
>
1429+
> final boolean testEnabled = false;
1430+
>
1431+
> public mod_Reforged() {
1432+
> if (testEnabled)
1433+
> Reforged.reachAdd(this);
1434+
> }
1435+
>
1436+
> @Override
1437+
> public String Version() {
1438+
> return String.format("[Forge %d.%d.%d, Reforged %d.%d.%d]",
1439+
> ForgeHooks.majorVersion, ForgeHooks.minorVersion, ForgeHooks.revisionVersion,
1440+
> ReforgedHooks.majorVersion, ReforgedHooks.minorVersion, ReforgedHooks.revisionVersion
1441+
> );
1442+
> }
1443+
>
1444+
> @Override
1445+
> public boolean reachEntityItemMatches(ItemStack itemstack) {
1446+
> return testEnabled;
1447+
> }
1448+
>
1449+
> @Override
1450+
> public float getReachEntity(ItemStack itemstack) {
1451+
> return 100f;
1452+
> }
1453+
>
1454+
> }
1455+
\ No newline at end of file
14131456
diff -rN -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/server/MinecraftServ# ../src_work/minecraft_server/net/minecraft/server/MinecraftServ#
14141457
2c2,20
14151458
< *** 332,369 ****
@@ -2461,3 +2504,46 @@ diff -rN -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/W
24612504
< protected int autosavePeriod;
24622505
---
24632506
> public int autosavePeriod;
2507+
diff -rN -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/mod_Reforged.java ../src_work/minecraft_server/net/minecraft/src/mod_Reforged.java
2508+
0a1,40
2509+
> /**
2510+
> * This software is provided under the terms of the Minecraft Forge Public
2511+
> * License v1.1.
2512+
> */
2513+
>
2514+
> package net.minecraft.src;
2515+
>
2516+
> import net.minecraft.src.forge.ForgeHooks;
2517+
> import net.minecraft.src.reforged.IReachEntity;
2518+
> import net.minecraft.src.reforged.Reforged;
2519+
> import net.minecraft.src.reforged.ReforgedHooks;
2520+
>
2521+
> public class mod_Reforged extends BaseModMp implements IReachEntity {
2522+
>
2523+
> final boolean testEnabled = false;
2524+
>
2525+
> public mod_Reforged() {
2526+
> if (testEnabled)
2527+
> Reforged.reachAdd(this);
2528+
> }
2529+
>
2530+
> @Override
2531+
> public String Version() {
2532+
> return String.format("[Forge %d.%d.%d, Reforged %d.%d.%d]",
2533+
> ForgeHooks.majorVersion, ForgeHooks.minorVersion, ForgeHooks.revisionVersion,
2534+
> ReforgedHooks.majorVersion, ReforgedHooks.minorVersion, ReforgedHooks.revisionVersion
2535+
> );
2536+
> }
2537+
>
2538+
> @Override
2539+
> public boolean reachEntityItemMatches(ItemStack itemstack) {
2540+
> return testEnabled;
2541+
> }
2542+
>
2543+
> @Override
2544+
> public float getReachEntity(ItemStack itemstack) {
2545+
> return 100f;
2546+
> }
2547+
>
2548+
> }
2549+
\ No newline at end of file

0 commit comments

Comments
 (0)