-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnewplugin.sh
More file actions
executable file
·66 lines (50 loc) · 2.04 KB
/
newplugin.sh
File metadata and controls
executable file
·66 lines (50 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env bash
read -rp "Plugin name: " pname
read -rp "Supported minecraft versions: " mcvers
read -rp "Who are you: " uname
read -rp "Description: " desc
read -rp "Package name: " pack
git clone https://github.com/john200410/example-plugin "$pname" -q
sed -i "s/^plugin_name =.*/plugin_name = $pname/" "$pname/gradle.properties"
sed -i "s/^java_version =.*/java_version = 21/" "$pname/gradle.properties"
mcfirst=${mcvers%%[ ,]*}
sed -i "s/^minecraft_version =.*/minecraft_version = $mcfirst/" "$pname/gradle.properties"
rm -rf "$pname/src/main/java/org" "$pname/src/main/resources/exampleplugin" "$pname/.git" "$pname/LICENSE"
mkdir -p "$pname/src/main/java/$uname/$pack"
json="$pname/src/main/resources/rusherhack-plugin.json"
url=""
classbase="PluginMain"
mcjson=$(echo "$mcvers" | tr ', ' '\n' | awk NF | sed 's/^/"/;s/$/"/' | paste -sd, -)
jq --arg name "$uname" \
--arg url "$url" \
--arg class "$uname.$pack.$classbase" \
--arg mcjson "[$mcjson]" \
'.Authors = [$name] |
.URL = $url |
."Plugin-Class" = $class |
."Minecraft-Versions" = ($mcjson|fromjson)' \
"$json" > "$json.tmp" && mv "$json.tmp" "$json"
jq --arg desc "$desc" '.Description = $desc' "$json" > "$json.tmp" && mv "$json.tmp" "$json"
mainfile="$pname/src/main/java/$uname/$pack/$classbase.java"
cat > "$mainfile" <<EOF
package $uname.$pack;
import org.rusherhack.client.api.RusherHackAPI;
import org.rusherhack.client.api.plugin.Plugin;
public class $classbase extends Plugin {
@Override
public void onLoad() {
this.getLogger().info("loaded $pname");
RusherHackAPI.getThingManager().registerFeature(new ClassThingy());
}
@Override
public void onUnload() {
this.getLogger().info("$pname unloaded!");
}
}
EOF
echo "# $pname
### $desc" > "$pname/README.md"
chmod +x "$pname"/gradlew
mkdir -p "$pname"/.github/workflows
wget -q https://raw.githubusercontent.com/tillay-rh-plugins/plugin-tools/refs/heads/main/release.yml -O "$pname"/.github/workflows/release.yml
echo -e "\nAll done! Project folder created at ./$pname.\nPlugin java file is at ./$mainfile"