| 
									
										
										
										
											2016-04-01 22:55:54 -05:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-03 02:23:19 -05:00
										 |  |  | ( | 
					
						
							|  |  |  | set -e | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  | PS1="$" | 
					
						
							| 
									
										
										
										
											2016-04-03 03:35:51 -05:00
										 |  |  | basedir="$(cd "$1" && pwd -P)" | 
					
						
							| 
									
										
										
										
											2016-03-30 21:27:13 -04:00
										 |  |  | workdir="$basedir/work" | 
					
						
							| 
									
										
										
										
											2016-04-01 22:55:54 -05:00
										 |  |  | minecraftversion=$(cat "$workdir/BuildData/info.json"  | grep minecraftVersion | cut -d '"' -f 4) | 
					
						
							| 
									
										
										
										
											2017-08-12 18:56:59 -05:00
										 |  |  | decompiledir="$workdir/Minecraft/$minecraftversion" | 
					
						
							| 
									
										
										
										
											2016-03-30 21:27:13 -04:00
										 |  |  | nms="$decompiledir/net/minecraft/server" | 
					
						
							| 
									
										
										
										
											2016-04-01 22:55:54 -05:00
										 |  |  | cb="src/main/java/net/minecraft/server" | 
					
						
							| 
									
										
										
										
											2018-05-24 13:41:50 -05:00
										 |  |  | gitcmd="git -c commit.gpgsign=false" | 
					
						
							| 
									
										
										
										
											2016-03-30 21:27:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  | patch=$(which patch 2>/dev/null) | 
					
						
							|  |  |  | if [ "x$patch" == "x" ]; then | 
					
						
							| 
									
										
										
										
											2016-04-01 22:55:54 -05:00
										 |  |  |     patch="$basedir/hctap.exe" | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "Applying CraftBukkit patches to NMS..." | 
					
						
							| 
									
										
										
										
											2016-04-01 22:55:54 -05:00
										 |  |  | cd "$workdir/CraftBukkit" | 
					
						
							| 
									
										
										
										
											2018-05-24 13:41:50 -05:00
										 |  |  | $gitcmd checkout -B patched HEAD >/dev/null 2>&1 | 
					
						
							| 
									
										
										
										
											2016-04-01 22:55:54 -05:00
										 |  |  | rm -rf "$cb" | 
					
						
							|  |  |  | mkdir -p "$cb" | 
					
						
							| 
									
										
										
										
											2018-07-18 00:45:27 -04:00
										 |  |  | # create baseline NMS import so we can see diff of what CB changed | 
					
						
							|  |  |  | for file in $(ls nms-patches) | 
					
						
							|  |  |  | do | 
					
						
							|  |  |  |     patchFile="nms-patches/$file" | 
					
						
							|  |  |  |     file="$(echo "$file" | cut -d. -f1).java" | 
					
						
							|  |  |  |     cp "$nms/$file" "$cb/$file" | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | $gitcmd add src | 
					
						
							|  |  |  | $gitcmd commit -m "Minecraft $ $(date)" --author="Auto <auto@mated.null>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # apply patches | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  | for file in $(ls nms-patches) | 
					
						
							|  |  |  | do | 
					
						
							|  |  |  |     patchFile="nms-patches/$file" | 
					
						
							| 
									
										
										
										
											2016-04-01 22:55:54 -05:00
										 |  |  |     file="$(echo "$file" | cut -d. -f1).java" | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     echo "Patching $file < $patchFile" | 
					
						
							| 
									
										
										
										
											2016-04-03 02:23:19 -05:00
										 |  |  |     set +e | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  |     sed -i 's/\r//' "$nms/$file" > /dev/null | 
					
						
							| 
									
										
										
										
											2016-04-03 02:23:19 -05:00
										 |  |  |     set -e | 
					
						
							| 
									
										
										
										
											2015-12-29 20:40:32 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     "$patch" -s -d src/main/java/ "net/minecraft/server/$file" < "$patchFile" | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-24 13:41:50 -05:00
										 |  |  | $gitcmd add src | 
					
						
							|  |  |  | $gitcmd commit -m "CraftBukkit $ $(date)" --author="Auto <auto@mated.null>" | 
					
						
							| 
									
										
										
										
											2018-07-18 00:45:27 -04:00
										 |  |  | $gitcmd checkout -f HEAD~2 | 
					
						
							| 
									
										
										
										
											2016-04-03 02:23:19 -05:00
										 |  |  | ) |