Skip to content

Commit

Permalink
Update to 5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
TheRockettek authored Nov 17, 2019
1 parent 23989c6 commit 48937a8
Show file tree
Hide file tree
Showing 9 changed files with 3,678 additions and 3,653 deletions.
433 changes: 219 additions & 214 deletions RockUtilities/ImRock/RockUtilities/Commands/HomeCommands.cs

Large diffs are not rendered by default.

528 changes: 267 additions & 261 deletions RockUtilities/ImRock/RockUtilities/Commands/UtilityCommands.cs

Large diffs are not rendered by default.

329 changes: 169 additions & 160 deletions RockUtilities/ImRock/RockUtilities/Commands/WarpCommands.cs
Original file line number Diff line number Diff line change
@@ -1,161 +1,170 @@
using Chatting;
using Pipliz;
using Pipliz.JSON;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace RockUtils.Commands
{
[ModLoader.ModManager]
public class WarpManager
{
public static Dictionary<string, UnityEngine.Vector3Int> warps = new Dictionary<string, UnityEngine.Vector3Int>();

// Load Warps when server starts
[ModLoader.ModCallback(ModLoader.EModCallbackType.AfterWorldLoad, "RockUtils.RockUtils.AfterWorldLoad")]
[ModLoader.ModDocumentation("Loads users homes that are set")]
private static void LoadHomes()
{
Log.Write("Loading warps...");
string jsonFilePath = "./gamedata/savegames/" + ServerManager.WorldName + "/warps.json";

if (!File.Exists(jsonFilePath))
{
Log.Write("Could not locate warps.json! Ignoring");
return;
}

JSONNode warpsJSON = JSON.Deserialize(jsonFilePath);

foreach (JSONNode v in warpsJSON.LoopArray())
{
UnityEngine.Vector3Int position = new UnityEngine.Vector3Int(v["x"].GetAs<int>(), v["y"].GetAs<int>(), v["z"].GetAs<int>());
warps.Add(v["n"].GetAs<string>(), position);
}

Log.Write("Loaded warps.");
}

// Save Warps
[ModLoader.ModCallback(ModLoader.EModCallbackType.OnAutoSaveWorld, "RockUtils.RockUtils.SaveOnAutoSave")]
[ModLoader.ModCallback(ModLoader.EModCallbackType.OnQuit, "RockUtils.RockUtils.SaveOnQuit")]
[ModLoader.ModDocumentation("Saves stored user warps set")]
private static void SaveHomes()
{
Log.Write("Saving warps...");
string jsonFilePath = "./gamedata/savegames/" + ServerManager.WorldName + "/warps.json";

if (File.Exists(jsonFilePath))
File.Delete(jsonFilePath);

JSONNode warpsJSON = new JSONNode(NodeType.Array);

foreach (var n in warps.Keys)
{
UnityEngine.Vector3Int v = warps[n];
JSONNode warpEntryJSON = new JSONNode().SetAs("x", v.x).SetAs("y", v.y).SetAs("z", v.z).SetAs("n", n);
warpsJSON.AddToArray(warpEntryJSON);
}

JSON.Serialize(jsonFilePath, warpsJSON);
Log.Write("Saved warps.");
}
}

[ChatCommandAutoLoader]
public class WarpCommands : IChatCommand
{
public bool TryDoCommand(Players.Player player, string chat, List<string> args)
{
if (args.Count < 1)
return false;

string warpName;

switch (args[0].ToLower())
{
case "/warp":
if (args.Count > 1)
{
warpName = string.Join(" ", args.Skip(1));
}
else
{
if (WarpManager.warps.Count == 0)
{
Chat.Send(player, "There are no warps you can teleport to");
}
else
{
Chat.Send(player, "Usage: /warp {name}");
}
return true;
}

if (!WarpManager.warps.ContainsKey(warpName))
{
Chat.Send(player, $"No such warp with the name: <color=cyan>{warpName}</color>");
return true;
}

UnityEngine.Vector3Int warp = WarpManager.warps[warpName];
Chat.Send(player, $"Sending you to <color=cyan>{warpName}</color>...");
Chatting.Commands.Teleport.TeleportTo(player, warp);

return true;
case "/warps":
Chat.Send(player, $"Warps ({WarpManager.warps.Keys.Count}): {string.Join(", ", WarpManager.warps.Keys)}");

return true;
case "/addwarp":
if (PermissionsManager.CheckAndWarnPermission(player, "warp.add"))
{
if (!(args.Count > 1))
{
Chat.Send(player, "Usage: /addwarp {name}");
return true;
}
warpName = string.Join(" ", args.Skip(1));

if (WarpManager.warps.ContainsKey(warpName))
{
Chat.Send(player, "A warp with this name already exists");
return true;
}

UnityEngine.Vector3Int intplayerPosition = new UnityEngine.Vector3Int(player.Position.x.ChangeType<int>(), player.Position.y.ChangeType<int>(), player.Position.z.ChangeType<int>());
WarpManager.warps.Add(warpName, intplayerPosition);

Chat.Send(player, $"Added warp <color=cyan>{warpName}</color> at position [{intplayerPosition.x}, {intplayerPosition.y}, {intplayerPosition.z}]");
}

return true;
case "/delwarp":
if (PermissionsManager.CheckAndWarnPermission(player, "warp.remove"))
{
if (!(args.Count > 1))
{
Chat.Send(player, "Usage: /delwarp {name}");
return true;
}
warpName = string.Join(" ", args.Skip(1));

if (!WarpManager.warps.ContainsKey(warpName))
{
Chat.Send(player, "No warp with this name exists");
return true;
}

WarpManager.warps.Remove(warpName);

Chat.Send(player, $"Removed warp <color=cyan>{warpName}</color>");
}

return true;
}

return false;
}
}
using Chatting;
using Pipliz;
using Pipliz.JSON;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace RockUtils.Commands
{
[ModLoader.ModManager]
public class WarpManager
{
public static Dictionary<string, UnityEngine.Vector3Int> warps = new Dictionary<string, UnityEngine.Vector3Int>();

// Load Warps when server starts
[ModLoader.ModCallback(ModLoader.EModCallbackType.AfterWorldLoad, "RockUtils.RockUtils.AfterWorldLoad")]
[ModLoader.ModDocumentation("Loads users homes that are set")]
private static void LoadHomes()
{
Log.Write("Loading warps...");
string jsonFilePath = "./gamedata/savegames/" + ServerManager.WorldName + "/warps.json";

if (!File.Exists(jsonFilePath))
{
Log.Write("Could not locate warps.json! Ignoring");
return;
}

JSONNode warpsJSON = JSON.Deserialize(jsonFilePath);

foreach (JSONNode v in warpsJSON.LoopArray())
{
UnityEngine.Vector3Int position = new UnityEngine.Vector3Int(v["x"].GetAs<int>(), v["y"].GetAs<int>(), v["z"].GetAs<int>());
warps.Add(v["n"].GetAs<string>(), position);
}

Log.Write("Loaded warps.");
}

// Save Warps
[ModLoader.ModCallback(ModLoader.EModCallbackType.OnAutoSaveWorld, "RockUtils.RockUtils.SaveOnAutoSave")]
[ModLoader.ModCallback(ModLoader.EModCallbackType.OnQuit, "RockUtils.RockUtils.SaveOnQuit")]
[ModLoader.ModDocumentation("Saves stored user warps set")]
private static void SaveHomes()
{
Log.Write("Saving warps...");
string jsonFilePath = "./gamedata/savegames/" + ServerManager.WorldName + "/warps.json";

if (File.Exists(jsonFilePath))
File.Delete(jsonFilePath);

JSONNode warpsJSON = new JSONNode(NodeType.Array);

foreach (var n in warps.Keys)
{
UnityEngine.Vector3Int v = warps[n];
JSONNode warpEntryJSON = new JSONNode().SetAs("x", v.x).SetAs("y", v.y).SetAs("z", v.z).SetAs("n", n);
warpsJSON.AddToArray(warpEntryJSON);
}

JSON.Serialize(jsonFilePath, warpsJSON);
Log.Write("Saved warps.");
}
}

[ChatCommandAutoLoader]
public class WarpCommands : IChatCommand
{
public bool TryDoCommand(Players.Player player, string chat, List<string> args)
{
if (args.Count < 1)
return false;

string warpName;

string command = args[0].ToLower().Remove(0, 1);
if (command.StartsWith("rockutils:"))
{
command = command.Remove(0, 10);
}
switch (command)
{
case "warp":
case "warpto":
if (args.Count > 1)
{
warpName = string.Join(" ", args.Skip(1));
}
else
{
if (WarpManager.warps.Count == 0)
{
Chat.Send(player, "There are no warps you can teleport to");
}
else
{
Chat.Send(player, "Usage: /warp {name}");
}
return true;
}

if (!WarpManager.warps.ContainsKey(warpName))
{
Chat.Send(player, $"No such warp with the name: <color=cyan>{warpName}</color>");
return true;
}

UnityEngine.Vector3Int warp = WarpManager.warps[warpName];
Chat.Send(player, $"Sending you to <color=cyan>{warpName}</color>...");
Chatting.Commands.Teleport.TeleportTo(player, warp);

return true;
case "warps":
case "warplist":
case "warpslist":
case "listwarps":
Chat.Send(player, $"Warps ({WarpManager.warps.Keys.Count}): {string.Join(", ", WarpManager.warps.Keys)}");

return true;
case "addwarp":
if (PermissionsManager.CheckAndWarnPermission(player, "warp.add"))
{
if (!(args.Count > 1))
{
Chat.Send(player, "Usage: /addwarp {name}");
return true;
}
warpName = string.Join(" ", args.Skip(1));

if (WarpManager.warps.ContainsKey(warpName))
{
Chat.Send(player, "A warp with this name already exists");
return true;
}

UnityEngine.Vector3Int intplayerPosition = new UnityEngine.Vector3Int(player.Position.x.ChangeType<int>(), player.Position.y.ChangeType<int>(), player.Position.z.ChangeType<int>());
WarpManager.warps.Add(warpName, intplayerPosition);

Chat.Send(player, $"Added warp <color=cyan>{warpName}</color> at position [{intplayerPosition.x}, {intplayerPosition.y}, {intplayerPosition.z}]");
}

return true;
case "delwarp":
if (PermissionsManager.CheckAndWarnPermission(player, "warp.remove"))
{
if (!(args.Count > 1))
{
Chat.Send(player, "Usage: /delwarp {name}");
return true;
}
warpName = string.Join(" ", args.Skip(1));

if (!WarpManager.warps.ContainsKey(warpName))
{
Chat.Send(player, "No warp with this name exists");
return true;
}

WarpManager.warps.Remove(warpName);

Chat.Send(player, $"Removed warp <color=cyan>{warpName}</color>");
}

return true;
}

return false;
}
}
}
Loading

0 comments on commit 48937a8

Please sign in to comment.