Skip to content
This repository was archived by the owner on Dec 23, 2024. It is now read-only.

Commit 8785c2a

Browse files
Initial commit
0 parents  commit 8785c2a

File tree

5 files changed

+451
-0
lines changed

5 files changed

+451
-0
lines changed

.gitignore

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
## Ignore Visual Studio temporary files, build results, and
2+
## files generated by popular Visual Studio add-ons.
3+
4+
# User-specific files
5+
*.suo
6+
*.user
7+
*.userosscache
8+
*.sln.docstates
9+
10+
# User-specific files (MonoDevelop/Xamarin Studio)
11+
*.userprefs
12+
13+
# Build results
14+
[Dd]ebug/
15+
[Dd]ebugPublic/
16+
[Rr]elease/
17+
[Rr]eleases/
18+
x64/
19+
x86/
20+
bld/
21+
[Bb]in/
22+
[Oo]bj/
23+
[Ll]og/
24+
25+
# Visual Studio 2015 cache/options directory
26+
.vs/
27+
# Uncomment if you have tasks that create the project's static files in wwwroot
28+
#wwwroot/
29+
30+
# MSTest test Results
31+
[Tt]est[Rr]esult*/
32+
[Bb]uild[Ll]og.*
33+
34+
# NUNIT
35+
*.VisualState.xml
36+
TestResult.xml
37+
38+
# Build Results of an ATL Project
39+
[Dd]ebugPS/
40+
[Rr]eleasePS/
41+
dlldata.c
42+
43+
# DNX
44+
project.lock.json
45+
artifacts/
46+
47+
*_i.c
48+
*_p.c
49+
*_i.h
50+
*.ilk
51+
*.meta
52+
*.obj
53+
*.pch
54+
*.pdb
55+
*.pgc
56+
*.pgd
57+
*.rsp
58+
*.sbr
59+
*.tlb
60+
*.tli
61+
*.tlh
62+
*.tmp
63+
*.tmp_proj
64+
*.log
65+
*.vspscc
66+
*.vssscc
67+
.builds
68+
*.pidb
69+
*.svclog
70+
*.scc
71+
72+
# Chutzpah Test files
73+
_Chutzpah*
74+
75+
# Visual C++ cache files
76+
ipch/
77+
*.aps
78+
*.ncb
79+
*.opendb
80+
*.opensdf
81+
*.sdf
82+
*.cachefile
83+
*.VC.db
84+
*.VC.VC.opendb
85+
86+
# Visual Studio profiler
87+
*.psess
88+
*.vsp
89+
*.vspx
90+
*.sap
91+
92+
# TFS 2012 Local Workspace
93+
$tf/
94+
95+
# Guidance Automation Toolkit
96+
*.gpState
97+
98+
# ReSharper is a .NET coding add-in
99+
_ReSharper*/
100+
*.[Rr]e[Ss]harper
101+
*.DotSettings.user
102+
103+
# JustCode is a .NET coding add-in
104+
.JustCode
105+
106+
# TeamCity is a build add-in
107+
_TeamCity*
108+
109+
# DotCover is a Code Coverage Tool
110+
*.dotCover
111+
112+
# NCrunch
113+
_NCrunch_*
114+
.*crunch*.local.xml
115+
nCrunchTemp_*
116+
117+
# MightyMoose
118+
*.mm.*
119+
AutoTest.Net/
120+
121+
# Web workbench (sass)
122+
.sass-cache/
123+
124+
# Installshield output folder
125+
[Ee]xpress/
126+
127+
# DocProject is a documentation generator add-in
128+
DocProject/buildhelp/
129+
DocProject/Help/*.HxT
130+
DocProject/Help/*.HxC
131+
DocProject/Help/*.hhc
132+
DocProject/Help/*.hhk
133+
DocProject/Help/*.hhp
134+
DocProject/Help/Html2
135+
DocProject/Help/html
136+
137+
# Click-Once directory
138+
publish/
139+
140+
# Publish Web Output
141+
*.[Pp]ublish.xml
142+
*.azurePubxml
143+
# TODO: Comment the next line if you want to checkin your web deploy settings
144+
# but database connection strings (with potential passwords) will be unencrypted
145+
*.pubxml
146+
*.publishproj
147+
148+
# Microsoft Azure Web App publish settings. Comment the next line if you want to
149+
# checkin your Azure Web App publish settings, but sensitive information contained
150+
# in these scripts will be unencrypted
151+
PublishScripts/
152+
153+
# NuGet Packages
154+
*.nupkg
155+
# The packages folder can be ignored because of Package Restore
156+
**/packages/*
157+
# except build/, which is used as an MSBuild target.
158+
!**/packages/build/
159+
# Uncomment if necessary however generally it will be regenerated when needed
160+
#!**/packages/repositories.config
161+
# NuGet v3's project.json files produces more ignoreable files
162+
*.nuget.props
163+
*.nuget.targets
164+
165+
# Microsoft Azure Build Output
166+
csx/
167+
*.build.csdef
168+
169+
# Microsoft Azure Emulator
170+
ecf/
171+
rcf/
172+
173+
# Windows Store app package directories and files
174+
AppPackages/
175+
BundleArtifacts/
176+
Package.StoreAssociation.xml
177+
_pkginfo.txt
178+
179+
# Visual Studio cache files
180+
# files ending in .cache can be ignored
181+
*.[Cc]ache
182+
# but keep track of directories ending in .cache
183+
!*.[Cc]ache/
184+
185+
# Others
186+
ClientBin/
187+
~$*
188+
*~
189+
*.dbmdl
190+
*.dbproj.schemaview
191+
*.pfx
192+
*.publishsettings
193+
node_modules/
194+
orleans.codegen.cs
195+
196+
# Since there are multiple workflows, uncomment next line to ignore bower_components
197+
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
198+
#bower_components/
199+
200+
# RIA/Silverlight projects
201+
Generated_Code/
202+
203+
# Backup & report files from converting an old project file
204+
# to a newer Visual Studio version. Backup files are not needed,
205+
# because we have git ;-)
206+
_UpgradeReport_Files/
207+
Backup*/
208+
UpgradeLog*.XML
209+
UpgradeLog*.htm
210+
211+
# SQL Server files
212+
*.mdf
213+
*.ldf
214+
215+
# Business Intelligence projects
216+
*.rdl.data
217+
*.bim.layout
218+
*.bim_*.settings
219+
220+
# Microsoft Fakes
221+
FakesAssemblies/
222+
223+
# GhostDoc plugin setting file
224+
*.GhostDoc.xml
225+
226+
# Node.js Tools for Visual Studio
227+
.ntvs_analysis.dat
228+
229+
# Visual Studio 6 build log
230+
*.plg
231+
232+
# Visual Studio 6 workspace options file
233+
*.opt
234+
235+
# Visual Studio LightSwitch build output
236+
**/*.HTMLClient/GeneratedArtifacts
237+
**/*.DesktopClient/GeneratedArtifacts
238+
**/*.DesktopClient/ModelManifest.xml
239+
**/*.Server/GeneratedArtifacts
240+
**/*.Server/ModelManifest.xml
241+
_Pvt_Extensions
242+
243+
# Paket dependency manager
244+
.paket/paket.exe
245+
paket-files/
246+
247+
# FAKE - F# Make
248+
.fake/
249+
250+
# JetBrains Rider
251+
.idea/
252+
*.sln.iml

NamePlugin.sln

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 14
4+
VisualStudioVersion = 14.0.25420.1
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NamePlugin", "NamePlugin\NamePlugin.csproj", "{22F790FF-F9C0-4991-90C9-46AD75D16D53}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{22F790FF-F9C0-4991-90C9-46AD75D16D53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{22F790FF-F9C0-4991-90C9-46AD75D16D53}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{22F790FF-F9C0-4991-90C9-46AD75D16D53}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{22F790FF-F9C0-4991-90C9-46AD75D16D53}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
EndGlobal

NamePlugin/Class1.cs

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
using System;
2+
using Spectrum.API;
3+
using Spectrum.API.Interfaces.Plugins;
4+
using Spectrum.API.Interfaces.Systems;
5+
6+
namespace NamePlugin {
7+
public class Entry : IPlugin {
8+
public string FriendlyName => "Name Colorizer";
9+
public string Author => "timawesomeness";
10+
public string Contact => "[email protected]";
11+
public APILevel CompatibleAPILevel => APILevel.InfraRed;
12+
13+
private string username;
14+
private float[] colorData;
15+
16+
private bool alreadySet = false;
17+
private ClientLogic cl;
18+
19+
public void Initialize(IManager manager) {
20+
FileSystem fs = new FileSystem(typeof(Entry));
21+
try {
22+
System.IO.StreamReader sr = new System.IO.StreamReader(fs.OpenFile("name.txt"));
23+
colorData = new float[] { Convert.ToSingle(sr.ReadLine().Split(new string[] { "hue start: " }, StringSplitOptions.None)[1]) / 360f, Convert.ToSingle(sr.ReadLine().Split(new string[] { "hue end: " }, StringSplitOptions.None)[1]) / 360f, Convert.ToSingle(sr.ReadLine().Split(new string[] { "saturation: " }, StringSplitOptions.None)[1]) / 100, Convert.ToSingle(sr.ReadLine().Split(new string[] { "value: " }, StringSplitOptions.None)[1]) / 100 };
24+
sr.Dispose();
25+
} catch (Exception ex) {
26+
fs.CreateFile("name.txt");
27+
System.IO.StreamWriter sw = new System.IO.StreamWriter(fs.OpenFile("name.txt"));
28+
sw.WriteLine("hue start: 0");
29+
sw.WriteLine("hue end: 360");
30+
sw.WriteLine("saturation: 100");
31+
sw.WriteLine("value: 100");
32+
sw.WriteLine("Instructions: Change hue start and hue end to a hue value between 0 and 360. Change saturation and value to a value between 0 and 100.");
33+
sw.Dispose();
34+
35+
colorData = new float[] { 0f, 1f, 1f, 1f };
36+
}
37+
38+
cl = G.Sys.PlayerManager_.GetComponent<ClientLogic>();
39+
username = G.Sys.GameManager_.GetOnlineProfileName(0);
40+
41+
Events.ChatWindow.ChatVisibilityChanged.Subscribe(data => {
42+
if (!data.isShowing_) {
43+
cl.GetLocalPlayerInfo().GetType().GetField("username_", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(cl.GetLocalPlayerInfo(), username);
44+
alreadySet = false;
45+
} else if (data.isShowing_) {
46+
UpdateName();
47+
}
48+
});
49+
Events.Network.DisconnectedFromServer.Subscribe(data => {
50+
alreadySet = false;
51+
});
52+
}
53+
54+
private void UpdateName() {
55+
if (!alreadySet) {
56+
try {
57+
cl.GetLocalPlayerInfo().GetType().GetField("username_", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(cl.GetLocalPlayerInfo(), Colorize(username, colorData[0], colorData[1], colorData[2], colorData[3]));
58+
alreadySet = true;
59+
} catch (Exception ex) {
60+
Console.WriteLine(ex.ToString());
61+
}
62+
}
63+
}
64+
65+
private string Colorize(string str, float hueStart, float hueEnd, float sat, float val) {
66+
string newStr = "";
67+
for (int i = 0; i < str.Length; i++) {
68+
newStr += "[" + ColorEx.ColorToHexNGUI(new ColorHSB(((hueEnd - hueStart) / str.Length) * i + hueStart, sat, val, 1f).ToColor()) + "]" + str[i] + "[-]";
69+
}
70+
return newStr;
71+
}
72+
73+
public void Shutdown() {
74+
75+
}
76+
}
77+
}
78+

0 commit comments

Comments
 (0)