Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System;
- using System.Collections.Generic;
- using System.Reflection;
- using System.ComponentModel;
- using Terraria;
- using TShockAPI;
- using Hooks;
- namespace Butterfingers
- {
- [APIVersion(1, 11)]
- public class Butterfingers : TerrariaPlugin
- {
- Random rnd = new Random();
- public static List<Player> Players = new List<Player>();
- public override Version Version
- {
- get { return new Version(0, 9, 0); }
- }
- public override string Name
- {
- get { return "SmarterFingers"; }
- }
- public override string Author
- {
- get { return "Based on Erik's Butterfingers by Spectrewiz"; }
- }
- public override string Description
- {
- get { return ""; }
- }
- public Butterfingers(Main game)
- : base(game)
- {
- Order = -1;
- }
- public override void Initialize()
- {
- GameHooks.Update += OnUpdate;
- NetHooks.GreetPlayer += OnGreetPlayer;
- ServerHooks.Chat += OnChat;
- }
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- GameHooks.Update -= OnUpdate;
- NetHooks.GreetPlayer -= OnGreetPlayer;
- ServerHooks.Chat -= OnChat;
- }
- base.Dispose(disposing);
- }
- private void OnUpdate()
- {
- Load();
- }
- public static string randomString(params string[] args)
- {
- Random rnd = new Random();
- return args[rnd.Next(args.Length + 1)];
- }
- public static void Load()
- {
- Commands.ChatCommands.Add(new Command("smartize", Smartize, "smartize"));
- }
- public void OnGreetPlayer(int ply, HandledEventArgs e)
- {
- lock (Players)
- Players.Add(new Player(ply));
- }
- public class Player
- {
- public int Index { get; set; }
- public TSPlayer TSPlayer { get { return TShock.Players[Index]; } }
- public bool smartized { get; set; }
- public Player(int index)
- {
- Index = index;
- smartized = false;
- }
- }
- private static int GetPlayerIndex(int ply)
- {
- lock (Players)
- {
- int index = -1;
- for (int i = 0; i < Players.Count; i++)
- {
- if (Players[i].Index == ply)
- index = i;
- }
- return index;
- }
- }
- public static TSPlayer GetTSPlayerByIndex(int index)
- {
- foreach (TSPlayer player in TShock.Players)
- {
- if (player != null && player.Index == index)
- return player;
- }
- return null;
- }
- public static void Smartize(CommandArgs args)
- {
- if (args.Parameters.Count < 1)
- {
- args.Player.SendMessage("Invalid syntax! Syntax: /smartize <player>", Color.Red);
- return;
- }
- var foundplr = TShock.Utils.FindPlayer(args.Parameters[0]);
- if (foundplr.Count == 0)
- {
- args.Player.SendMessage("Invalid player!", Color.Red);
- return;
- }
- else if (foundplr.Count > 1)
- {
- args.Player.SendMessage(string.Format("More than one ({0}) player matched!", args.Parameters.Count), Color.Red);
- return;
- }
- var plr = foundplr[0];
- if (Players[GetPlayerIndex(plr.Index)].smartized)
- {
- Players[GetPlayerIndex(plr.Index)].smartized = false;
- args.Player.SendMessage("Player is no longer smart (uh oh).", 30, 144, 255);
- return;
- }
- else
- {
- Players[GetPlayerIndex(plr.Index)].smartized = true;
- args.Player.SendMessage("Smartized " + plr.Name + "!", 30, 144, 255);
- return;
- }
- }
- public string finder(string originalText, string replacementText)
- {
- string text2 = replacementText;
- try
- {
- foreach (char var in originalText)
- {
- if (var == ',')
- text2 = replacementText + ',';
- else if (var == '.')
- text2 = replacementText + '.';
- else if (var == '?')
- text2 = replacementText + '?';
- else if (var == '!')
- text2 = replacementText + '!';
- }
- }
- catch (Exception e) { Log.Error(e.Message); }
- return text2;
- }
- public void OnChat(messageBuffer msg, int ply, string text, HandledEventArgs e)
- {
- char[] text2 = text.ToCharArray();
- if (text2[0] == '/')
- {
- return;
- }
- TSPlayer player = GetTSPlayerByIndex(ply);
- if (Players[GetPlayerIndex(ply)].smartized)
- {
- string[] words = text.ToLower().Split(' ');
- for (int i = 0; i < words.Length; i++)
- {
- if (finder(words[i], "hullo") == words[i] || finder(words[i], "ello") == words[i] || finder(words[i], "hallo") == words[i] || finder(words[i], "halo") == words[i] || finder(words[i], "hai") == words[i])
- {
- words[i] = finder(words[i], randomString("hi", "greetings", "hello"));
- }
- if (finder(words[i], "ur") == words[i] || finder(words[i], "yur") == words[i] || finder(words[i], "yer") == words[i] || finder(words[i], "er") == words[i] || finder(words[i], "u") == words[i] || finder(words[i], "you'r") == words[i])
- {
- if (words.Length - 1 > i && (words[i + 1] == "are" || words[i + 1] == "r"))
- {
- words[i] = finder(words[i], "your");
- }
- else
- {
- words[i] = finder(words[i], "you");
- }
- }
- if (finder(words[i], "em") == words[i])
- words[i] = finder(words[i], "am");
- if (finder(words[i], "y") == words[i] || finder(words[i], "wy") == words[i] || finder(words[i], "wai") == words[i])
- words[i] = finder(words[i], "why");
- if (finder(words[i], "putter") == words[i] || finder(words[i], "pooter") == words[i] || finder(words[i], "comp") == words[i] || finder(words[i], "comptooter") == words[i] || finder(words[i], "macintosh") == words[i])
- words[i] = finder(words[i], "computer");
- if (finder(words[i], "hw") == words[i])
- {
- if (words.Length - 1 > i && (words[i + 1] == "?" || words[i + 1] == "are" || words[i + 1] == "can" || words[i + 1] == "r"))
- words[i] = finder(words[i], "how");
- else
- words[i] = finder(words[i], "homework");
- }
- if (finder(words[i], "r") == words[i])
- words[i] = finder(words[i], "are");
- if (finder(words[i], "teh") == words[i] || finder(words[i], "tuh") == words[i] || finder(words[i], "duh") == words[i] || finder(words[i], "d") == words[i] || finder(words[i], "de") == words[i])
- words[i] = finder(words[i], "the");
- if (finder(words[i], "donot") == words[i] || finder(words[i], "dont") == words[i] || finder(words[i], "dnt") == words[i])
- words[i] = finder(words[i], "don't");
- if (finder(words[i], "do") == words[i])
- if (words.Length - 1 > i && words[i + 1] == "not")
- {
- words[i + 1] = "";
- words[i] = finder(words[i], "don't");
- }
- if (finder(words[i], "yea") == words[i] || finder(words[i], "yep") == words[i] || finder(words[i], "yeh") == words[i] || finder(words[i], "yuh") == words[i] || finder(words[i], "yah") == words[i] || finder(words[i], "ya") == words[i])
- words[i] = finder(words[i], "yes");
- if (finder(words[i], "wut") == words[i] || finder(words[i], "whut") == words[i] || finder(words[i], "wat") == words[i] || finder(words[i], "wt") == words[i])
- words[i] = finder(words[i], "what");
- if (finder(words[i], "wuts") == words[i] || finder(words[i], "whuts") == words[i] || finder(words[i], "wats") == words[i] || finder(words[i], "wts") == words[i])
- words[i] = finder(words[i], "what's");
- if (finder(words[i], "dis") == words[i])
- words[i] = finder(words[i], "this");
- if (finder(words[i], "meh") == words[i])
- words[i] = finder(words[i], "me");
- }
- string textR = string.Join(" ", words);
- TShock.Utils.Broadcast(
- string.Format(TShock.Config.ChatFormat, player.Group.Name, player.Group.Prefix, player.Name, player.Group.Suffix, textR),
- player.Group.R, player.Group.G, player.Group.B);
- e.Handled = true;
- return;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement