Skip to content

Commit 3a749ba

Browse files
authored
🧾 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ini
2 parents aa142da + 09ee281 commit 3a749ba

File tree

4 files changed

+212
-13
lines changed

4 files changed

+212
-13
lines changed

β€ŽConfig.csβ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ I will make an ini config in future
88
DO NOT TOUCH ACCESS TOKEN AND WHAT'S BELOW IT
99
*/
1010

11-
public static string client_id = ""; // You can change it to your own
12-
public static string client_secret = ""; // You can change it to your own
13-
public static string redirect_URL = ""; // You can change it to your own
11+
public static string client_id = ""; // You can change it to your own
12+
public static string client_secret = ""; // You can change it to your own
13+
public static string redirect_URL = ""; // You can change it to your own
1414

1515
public static bool bDebug = false;
1616

17-
public static string authCode = ""; // Change it to your auth code
17+
public static string authCode = "";
1818
public static string access_token = "";
1919
public static string refresh_token = "";
2020

β€ŽIniFile.csβ€Ž

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
ο»Ώusing System;
2+
using System.IO;
3+
using System.Collections;
4+
5+
namespace DonationIntegration
6+
{
7+
public class IniParser
8+
{
9+
private Hashtable keyPairs = new Hashtable();
10+
private string iniFilePath;
11+
12+
private struct SectionPair
13+
{
14+
public string Section;
15+
public string Key;
16+
}
17+
18+
public IniParser(string iniPath)
19+
{
20+
TextReader iniFile = null;
21+
string strLine = null;
22+
string currentRoot = null;
23+
string[] keyPair = null;
24+
25+
iniFilePath = iniPath;
26+
27+
if (File.Exists(iniPath))
28+
{
29+
try
30+
{
31+
iniFile = new StreamReader(iniPath);
32+
33+
strLine = iniFile.ReadLine();
34+
35+
while (strLine != null)
36+
{
37+
strLine = strLine.Trim().ToUpper();
38+
39+
if (strLine != "")
40+
{
41+
if (strLine.StartsWith("[") && strLine.EndsWith("]"))
42+
{
43+
currentRoot = strLine.Substring(1, strLine.Length - 2);
44+
}
45+
else
46+
{
47+
keyPair = strLine.Split(new char[] { '=' }, 2);
48+
49+
SectionPair sectionPair;
50+
string value = null;
51+
52+
if (currentRoot == null)
53+
currentRoot = "ROOT";
54+
55+
sectionPair.Section = currentRoot;
56+
sectionPair.Key = keyPair[0];
57+
58+
if (keyPair.Length > 1)
59+
value = keyPair[1];
60+
61+
keyPairs.Add(sectionPair, value);
62+
}
63+
}
64+
65+
strLine = iniFile.ReadLine();
66+
}
67+
68+
}
69+
catch (Exception ex)
70+
{
71+
throw ex;
72+
}
73+
finally
74+
{
75+
if (iniFile != null)
76+
iniFile.Close();
77+
}
78+
}
79+
else
80+
throw new FileNotFoundException("Unable to locate " + iniPath);
81+
82+
}
83+
84+
public string GetSetting(string sectionName, string settingName)
85+
{
86+
SectionPair sectionPair;
87+
sectionPair.Section = sectionName.ToUpper();
88+
sectionPair.Key = settingName.ToUpper();
89+
90+
return (string)keyPairs[sectionPair];
91+
}
92+
93+
public string[] EnumSection(string sectionName)
94+
{
95+
ArrayList tmpArray = new ArrayList();
96+
97+
foreach (SectionPair pair in keyPairs.Keys)
98+
{
99+
if (pair.Section == sectionName.ToUpper())
100+
tmpArray.Add(pair.Key);
101+
}
102+
103+
return (string[])tmpArray.ToArray(typeof(string));
104+
}
105+
106+
public void AddSetting(string sectionName, string settingName, string settingValue)
107+
{
108+
SectionPair sectionPair;
109+
sectionPair.Section = sectionName.ToUpper();
110+
sectionPair.Key = settingName.ToUpper();
111+
112+
if (keyPairs.ContainsKey(sectionPair))
113+
keyPairs.Remove(sectionPair);
114+
115+
keyPairs.Add(sectionPair, settingValue);
116+
}
117+
118+
public void AddSetting(string sectionName, string settingName)
119+
{
120+
AddSetting(sectionName, settingName, null);
121+
}
122+
123+
public void DeleteSetting(string sectionName, string settingName)
124+
{
125+
SectionPair sectionPair;
126+
sectionPair.Section = sectionName.ToUpper();
127+
sectionPair.Key = settingName.ToUpper();
128+
129+
if (keyPairs.ContainsKey(sectionPair))
130+
keyPairs.Remove(sectionPair);
131+
}
132+
133+
public void SaveSettings(string newFilePath)
134+
{
135+
ArrayList sections = new ArrayList();
136+
string tmpValue = "";
137+
string strToSave = "";
138+
139+
foreach (SectionPair sectionPair in keyPairs.Keys)
140+
{
141+
if (!sections.Contains(sectionPair.Section))
142+
sections.Add(sectionPair.Section);
143+
}
144+
145+
foreach (string section in sections)
146+
{
147+
strToSave += ("[" + section + "]\r\n");
148+
149+
foreach (SectionPair sectionPair in keyPairs.Keys)
150+
{
151+
if (sectionPair.Section == section)
152+
{
153+
tmpValue = (string)keyPairs[sectionPair];
154+
155+
if (tmpValue != null)
156+
tmpValue = "=" + tmpValue;
157+
158+
strToSave += (sectionPair.Key + tmpValue + "\r\n");
159+
}
160+
}
161+
162+
strToSave += "\r\n";
163+
}
164+
165+
try
166+
{
167+
TextWriter tw = new StreamWriter(newFilePath);
168+
tw.Write(strToSave);
169+
tw.Close();
170+
}
171+
catch (Exception ex)
172+
{
173+
throw ex;
174+
}
175+
}
176+
177+
public void SaveSettings()
178+
{
179+
SaveSettings(iniFilePath);
180+
}
181+
}
182+
}

β€ŽPlugin.csβ€Ž

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
ο»Ώusing System;
2+
using System.IO;
23
using Terraria;
34
using TerrariaApi.Server;
45
using TShockAPI;
@@ -22,13 +23,24 @@ public class Plugin : TerrariaPlugin
2223

2324
private static Random random;
2425

26+
/* Getting directory of config.ini file */
27+
public static string DirectoryPath = Path.Combine(Directory.GetCurrentDirectory(), "ServerPlugins");
28+
public static string FolderPath = Path.Combine(DirectoryPath, "DAIntegration");
29+
public static string FilePath = Path.Combine(FolderPath, "config.ini");
30+
/* =================================== */
31+
2532
public Plugin(Main game) : base(game)
2633
{
2734

2835
}
2936

3037
public override void Initialize()
3138
{
39+
/* Gets the ini config with auth code */
40+
IniParser parser = new IniParser(@FilePath);
41+
Config.authCode = parser.GetSetting("authconfig", "authcode");
42+
/* ================================== */
43+
3244
DAPI donateAPI = new DAPI(); // Initilization of the DonationAlerts API
3345
random = new Random();
3446
}

β€ŽREADME.mdβ€Ž

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,19 @@
1111
![alt-тСкст](https://i.imgur.com/6yuSXeT.gif "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄ΠΎΠ½Π°Ρ‚Π° Π² Ρ‡Π°Ρ‚")
1212

1313

14-
# πŸ’Ύ Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Π³ΠΈΠ½Π°
15-
* ВрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ **Visual Studio**
16-
* Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ "Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° классов C#"
17-
* Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь исходный ΠΊΠΎΠ΄ скачанный с Github Π² ΠΏΠ°ΠΏΠΊΡƒ созданного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
18-
* ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ **websocket-sharp (Из ΠΏΠ°ΠΏΠΊΠΈ libs)**
19-
* Π’ классС **Config.cs** ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ: **client_id, client_secret, redirect_URL, authCode** Π½Π° свой
20-
* Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½
21-
* Π‘ΠΎΠ±Ρ€Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ **ServerPlugins** Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ сСрвСра
14+
# πŸ’Ύ Установка ΠΏΠ»Π°Π³ΠΈΠ½Π°
15+
* ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ `Releases`, скачайтС **послСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π°**
16+
* РаспакуйтС скачанныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π° Π² ΠΏΠ°ΠΏΠΊΡƒ `ServerPlugins` Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ сСрвСра
17+
* ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ `ServerPlugins\DAIntegration` Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ сСрвСра
18+
* Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» `config.ini`, ΠΈ послС Π·Π½Π°ΠΊΠ° Ρ€Π°Π²Π½ΠΎ Π² строкС `authcode` Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ваш ΠΊΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
19+
20+
**Для ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:**
21+
* [ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этой ссылкС](https://donationalerts.com/oauth/authorize?client_id=9485&redirect_url=https://example.com/&response_type=code&scope=oauth-user-show%20oauth-donation-subscribe%20oauth-donation-index%20oauth-custom_alert-store)
22+
* НаТмитС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, вас пСрСадрСсуСт Π½Π° сайт `example.com`
23+
* Π’Π°ΠΌ трСбуСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ послС Π·Π½Π°ΠΊΠ° Ρ€Π°Π²Π½ΠΎ ΠΈΠ· адрСсной строки Π±Π΅Π· ссылки
24+
![alt-тСкст](https://i.imgur.com/kAZdV9m.png "Π“Π΄Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ΄")
25+
26+
**Π’ΠΠ–ΠΠž:** Код Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пСрСзапуска сСрвСра
2227

2328
# β˜• ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°
24-
[Бпасибки, Ссли заглянСшь ΠΊΠΎ ΠΌΠ½Π΅ Π½Π° стрим :)](https://www.youtube.com/channel/UCgWZ8m2ag5WpMT76HE7Kw5w)
29+
[**Бпасибки, Ссли заглянСшь ΠΊΠΎ ΠΌΠ½Π΅ Π½Π° стрим :)**](https://www.youtube.com/channel/UCgWZ8m2ag5WpMT76HE7Kw5w)

0 commit comments

Comments
Β (0)