Skip to content

Commit dc9fb65

Browse files
committed
Add support for Spigot 1.12-pre2
1 parent 6132d84 commit dc9fb65

File tree

10 files changed

+472
-5
lines changed

10 files changed

+472
-5
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ local.properties
8282
### Intellij ###
8383
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
8484
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
85+
.idea
8586

8687
# User-specific stuff:
8788
.idea/workspace.xml

Plugin/pom.xml

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.lishid</groupId>
66
<artifactId>orebfuscator</artifactId>
7-
<version>4.2.2-SNAPSHOT</version>
7+
<version>4.3.0-SNAPSHOT</version>
88
<packaging>jar</packaging>
99

1010
<name>Orebfuscator4</name>
@@ -81,6 +81,14 @@
8181
<scope>compile</scope>
8282
<optional>true</optional>
8383
</dependency>
84+
<dependency>
85+
<groupId>com.lishid</groupId>
86+
<artifactId>orebfuscator-v1_12_R1</artifactId>
87+
<version>v1_12_R1</version>
88+
<type>jar</type>
89+
<scope>compile</scope>
90+
<optional>true</optional>
91+
</dependency>
8492
</dependencies>
8593

8694
<build>

Plugin/src/main/java/com/lishid/orebfuscator/Orebfuscator.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,11 @@ public void reloadOrebfuscatorConfig() {
117117
private static INmsManager createNmsManager() {
118118

119119
String serverVersion = org.bukkit.Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
120-
121-
if(serverVersion.equals("v1_11_R1")) {
120+
121+
if(serverVersion.equals("v1_12_R1")) {
122+
return new com.lishid.orebfuscator.nms.v1_12_R1.NmsManager();
123+
}
124+
else if(serverVersion.equals("v1_11_R1")) {
122125
return new com.lishid.orebfuscator.nms.v1_11_R1.NmsManager();
123126
}
124127
else if(serverVersion.equals("v1_10_R1")) {

pom.xml

+7-2
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,19 @@
3030
</repositories>
3131

3232
<modules>
33-
<module>Plugin</module>
33+
<module>API</module>
3434
<module>v1_9_R1</module>
3535
<module>v1_9_R2</module>
3636
<module>v1_10_R1</module>
3737
<module>v1_11_R1</module>
38-
<module>API</module>
38+
<module>v1_12_R1</module>
39+
<module>Plugin</module>
3940
</modules>
4041

42+
<build>
43+
<defaultGoal>clean install</defaultGoal>
44+
</build>
45+
4146
<scm>
4247
<connection>scm:git:git://github.com/lishid/Orebfuscator.git</connection>
4348
<developerConnection>scm:git:git@github.com:lishid/Orebfuscator.git</developerConnection>

v1_12_R1/pom.xml

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.lishid</groupId>
5+
<artifactId>orebfuscator-v1_12_R1</artifactId>
6+
<version>v1_12_R1</version>
7+
<packaging>jar</packaging>
8+
<name>Orebfuscator4 v1_12_R1</name>
9+
10+
<parent>
11+
<groupId>com.lishid.parent</groupId>
12+
<artifactId>orebfuscator-parent</artifactId>
13+
<version>parent</version>
14+
</parent>
15+
16+
<build>
17+
<plugins>
18+
<plugin>
19+
<groupId>org.apache.maven.plugins</groupId>
20+
<artifactId>maven-compiler-plugin</artifactId>
21+
<version>3.1</version>
22+
<configuration>
23+
<source>1.7</source>
24+
<target>1.7</target>
25+
</configuration>
26+
</plugin>
27+
</plugins>
28+
</build>
29+
30+
<dependencies>
31+
<dependency>
32+
<groupId>org.spigotmc</groupId>
33+
<artifactId>spigot</artifactId>
34+
<version>1.12-pre2-SNAPSHOT</version>
35+
<scope>provided</scope>
36+
<optional>true</optional>
37+
</dependency>
38+
<dependency>
39+
<groupId>com.lishid</groupId>
40+
<artifactId>orebfuscator-api</artifactId>
41+
<version>API</version>
42+
<type>jar</type>
43+
</dependency>
44+
</dependencies>
45+
46+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/**
2+
* @author Aleksey Terzi
3+
*
4+
*/
5+
6+
package com.lishid.orebfuscator.nms.v1_12_R1;
7+
8+
import net.minecraft.server.v1_12_R1.Block;
9+
import net.minecraft.server.v1_12_R1.IBlockData;
10+
11+
import com.lishid.orebfuscator.nms.IBlockInfo;
12+
13+
public class BlockInfo implements IBlockInfo {
14+
private int x;
15+
private int y;
16+
private int z;
17+
private IBlockData blockData;
18+
19+
public BlockInfo(int x, int y, int z, IBlockData blockData) {
20+
this.x = x;
21+
this.y = y;
22+
this.z = z;
23+
this.blockData = blockData;
24+
}
25+
26+
public int getX() {
27+
return this.x;
28+
}
29+
30+
public int getY() {
31+
return this.y;
32+
}
33+
34+
public int getZ() {
35+
return this.z;
36+
}
37+
38+
public int getTypeId() {
39+
return Block.getId(this.blockData.getBlock());
40+
}
41+
42+
public IBlockData getBlockData() {
43+
return this.blockData;
44+
}
45+
46+
@Override
47+
public boolean equals(Object other) {
48+
if (other == null || !(other instanceof BlockInfo)) {
49+
return false;
50+
}
51+
BlockInfo object = (BlockInfo) other;
52+
53+
return this.x == object.x && this.y == object.y && this.z == object.z;
54+
}
55+
56+
@Override
57+
public int hashCode() {
58+
return this.x ^ this.y ^ this.z;
59+
}
60+
61+
@Override
62+
public String toString() {
63+
return this.x + " " + this.y + " " + this.z;
64+
}
65+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/**
2+
* @author lishid
3+
* @author Aleksey Terzi
4+
*
5+
*/
6+
7+
package com.lishid.orebfuscator.nms.v1_12_R1;
8+
9+
import java.io.DataInputStream;
10+
import java.io.DataOutputStream;
11+
import java.io.File;
12+
import java.util.HashMap;
13+
14+
import net.minecraft.server.v1_12_R1.RegionFile;
15+
16+
import com.lishid.orebfuscator.nms.IChunkCache;
17+
18+
public class ChunkCache implements IChunkCache {
19+
private static final HashMap<File, RegionFile> cachedRegionFiles = new HashMap<File, RegionFile>();
20+
21+
private int maxLoadedCacheFiles;
22+
23+
public ChunkCache(int maxLoadedCacheFiles) {
24+
this.maxLoadedCacheFiles = maxLoadedCacheFiles;
25+
}
26+
27+
public DataInputStream getInputStream(File folder, int x, int z) {
28+
RegionFile regionFile = getRegionFile(folder, x, z);
29+
return regionFile.a(x & 0x1F, z & 0x1F);
30+
}
31+
32+
public DataOutputStream getOutputStream(File folder, int x, int z) {
33+
RegionFile regionFile = getRegionFile(folder, x, z);
34+
return regionFile.b(x & 0x1F, z & 0x1F);
35+
}
36+
37+
public void closeCacheFiles() {
38+
closeCacheFilesInternal();
39+
}
40+
41+
private synchronized RegionFile getRegionFile(File folder, int x, int z) {
42+
File path = new File(folder, "region");
43+
File file = new File(path, "r." + (x >> 5) + "." + (z >> 5) + ".mcr");
44+
try {
45+
RegionFile regionFile = cachedRegionFiles.get(file);
46+
if (regionFile != null) {
47+
return regionFile;
48+
}
49+
50+
if (!path.exists()) {
51+
path.mkdirs();
52+
}
53+
54+
if (cachedRegionFiles.size() >= this.maxLoadedCacheFiles) {
55+
closeCacheFiles();
56+
}
57+
58+
regionFile = new RegionFile(file);
59+
cachedRegionFiles.put(file, regionFile);
60+
61+
return regionFile;
62+
}
63+
catch (Exception e) {
64+
try {
65+
file.delete();
66+
}
67+
catch (Exception e2) {
68+
}
69+
}
70+
return null;
71+
}
72+
73+
private synchronized void closeCacheFilesInternal() {
74+
for (RegionFile regionFile : cachedRegionFiles.values()) {
75+
try {
76+
if (regionFile != null)
77+
regionFile.c();
78+
}
79+
catch (Exception e) {
80+
e.printStackTrace();
81+
}
82+
}
83+
cachedRegionFiles.clear();
84+
}
85+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* @author Aleksey Terzi
3+
*
4+
*/
5+
6+
package com.lishid.orebfuscator.nms.v1_12_R1;
7+
8+
import java.util.HashSet;
9+
10+
import net.minecraft.server.v1_12_R1.EntityPlayer;
11+
import net.minecraft.server.v1_12_R1.PacketPlayOutMapChunk;
12+
import net.minecraft.server.v1_12_R1.PacketPlayOutUnloadChunk;
13+
import net.minecraft.server.v1_12_R1.PlayerChunk;
14+
import net.minecraft.server.v1_12_R1.PlayerChunkMap;
15+
16+
import org.bukkit.entity.Player;
17+
18+
import com.lishid.orebfuscator.nms.IChunkManager;
19+
20+
public class ChunkManager implements IChunkManager {
21+
private PlayerChunkMap chunkMap;
22+
23+
public ChunkManager(PlayerChunkMap chunkMap) {
24+
this.chunkMap = chunkMap;
25+
}
26+
27+
public boolean resendChunk(int chunkX, int chunkZ, HashSet<Player> affectedPlayers) {
28+
if(!this.chunkMap.isChunkInUse(chunkX, chunkZ)) return true;
29+
30+
PlayerChunk playerChunk = this.chunkMap.getChunk(chunkX, chunkZ);
31+
32+
if(playerChunk == null || playerChunk.chunk == null || !playerChunk.chunk.isReady()) return false;
33+
34+
for(EntityPlayer player : playerChunk.c) {
35+
player.playerConnection.sendPacket(new PacketPlayOutUnloadChunk(chunkX, chunkZ));
36+
player.playerConnection.sendPacket(new PacketPlayOutMapChunk(playerChunk.chunk, 0xffff));
37+
38+
affectedPlayers.add(player.getBukkitEntity());
39+
}
40+
41+
return true;
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/**
2+
* @author lishid
3+
* @author Aleksey Terzi
4+
*
5+
*/
6+
7+
package com.lishid.orebfuscator.nms.v1_12_R1;
8+
9+
import java.io.DataInput;
10+
import java.io.DataInputStream;
11+
import java.io.DataOutput;
12+
import java.io.IOException;
13+
14+
import net.minecraft.server.v1_12_R1.NBTCompressedStreamTools;
15+
import net.minecraft.server.v1_12_R1.NBTTagCompound;
16+
17+
import com.lishid.orebfuscator.nms.INBT;
18+
19+
public class NBT implements INBT {
20+
NBTTagCompound nbt = new NBTTagCompound();
21+
22+
public void reset() {
23+
nbt = new NBTTagCompound();
24+
}
25+
26+
public void setInt(String tag, int value) {
27+
nbt.setInt(tag, value);
28+
}
29+
30+
public void setLong(String tag, long value) {
31+
nbt.setLong(tag, value);
32+
}
33+
34+
public void setBoolean(String tag, boolean value) {
35+
nbt.setBoolean(tag, value);
36+
}
37+
38+
public void setByteArray(String tag, byte[] value) {
39+
nbt.setByteArray(tag, value);
40+
}
41+
42+
public void setIntArray(String tag, int[] value) {
43+
nbt.setIntArray(tag, value);
44+
}
45+
46+
public int getInt(String tag) {
47+
return nbt.getInt(tag);
48+
}
49+
50+
public long getLong(String tag) {
51+
return nbt.getLong(tag);
52+
}
53+
54+
public boolean getBoolean(String tag) {
55+
return nbt.getBoolean(tag);
56+
}
57+
58+
public byte[] getByteArray(String tag) {
59+
return nbt.getByteArray(tag);
60+
}
61+
62+
public int[] getIntArray(String tag) {
63+
return nbt.getIntArray(tag);
64+
}
65+
66+
public void Read(DataInput stream) throws IOException {
67+
nbt = NBTCompressedStreamTools.a((DataInputStream) stream);
68+
}
69+
70+
public void Write(DataOutput stream) throws IOException {
71+
NBTCompressedStreamTools.a(nbt, stream);
72+
}
73+
}

0 commit comments

Comments
 (0)