Hallo, Leute!
Ich versuche derzeit ein Programm zu schreiben, dass den Admins meines "Clans" im Spiel COunter-Strike: Source das einstellen der User mit administrativen Rechten auf den Spiele Servern einzustellen.
Das Speichern und Abrufen der Daten in txt-Form an sich funktioniert, jedoch müssen diese Daten auch als "clients.txt" in verschiedenen Ordner auf einem FTP mit entsprechendem Inhalt gespeichert werden.
Der Syntax dieser Dateien sieht so aus:
"clients.txt"
{
"version" "1"
"players"
//Clients.txt generiert mit ClientCreator v.1.0.0.1 by 7272 Momo
//Hier kommen die Admins
"user"
{
"steam" "Usernummer"
"groups"
{
"Admin" "Rechte-Einstufung"
"Immunity"""
}
}
//Hier kommen die Admingruppen
"groups"
{
"Immunity"
{
"Serveradmin""a b c d e f h i j k l m n o p q r s t u v x y afk ping autojoin grav Immunity"
}
"Admin"
{
"Serveradmin" "k r q e m b s o a c p w z x y i l f t d g j R v V Q C A B D E F G H I J K L M N O T U W X Y admin grav pban spray"
"Hauptadmin" "k r q e m b s o a c p w z x y i l f t d g j R v V Q C A B D E F G H I J K L M N O T U W X Y admin grav pban spray"
"Coadmin" "k q e m b s c p y i l f t d g j v V C B D E F G I T U W Y admin"
"Basis" "k c g E s admin"
}
}
}
DAS muss im Endeffekt in den Dateien drinstehen. Wie genau ich User-Name und -Nummern auslese, habe ich schon per For-Schelife in einem früheren Projekt gelöst.
Das neue Problem: Ich muss diese For-Schleife ("pro User") in einer weiteren For-Schleife ("pro Server") ausführen lassen.
Mein Code bis jetzt: (Ich HOFFE, dass der Code richtig angezeigt wird, da er komischerweise bei meinen Posts nie richtig angezeigt wird :()
Die For-Schleife ("pro Server") erledigt er ohne Probleme. Er schreibt auch alle StreamWriter-Einträge VOR und NACH der zweiten/eingeschlossenen For-Schleife ("pro User") in die Dateien und lädt diese Dateien auch korrekt hoch. Der Inhalt ist auch korrekt, jedoch fehlt der Inhalt der zweiten For-Schleife.
Ich hoffe wirklich, dass mir hier jemand helfen kann, weil ich langsam daran verzweifle :(.
MfG,
X-Zat / Momo
/Edit: Ich bekomme den Code nicht umformatiert, deswegen habe ich hier ein paar Screenshots:
Ich versuche derzeit ein Programm zu schreiben, dass den Admins meines "Clans" im Spiel COunter-Strike: Source das einstellen der User mit administrativen Rechten auf den Spiele Servern einzustellen.
Das Speichern und Abrufen der Daten in txt-Form an sich funktioniert, jedoch müssen diese Daten auch als "clients.txt" in verschiedenen Ordner auf einem FTP mit entsprechendem Inhalt gespeichert werden.
Der Syntax dieser Dateien sieht so aus:
"clients.txt"
{
"version" "1"
"players"
//Clients.txt generiert mit ClientCreator v.1.0.0.1 by 7272 Momo
//Hier kommen die Admins
"user"
{
"steam" "Usernummer"
"groups"
{
"Admin" "Rechte-Einstufung"
"Immunity"""
}
}
//Hier kommen die Admingruppen
"groups"
{
"Immunity"
{
"Serveradmin""a b c d e f h i j k l m n o p q r s t u v x y afk ping autojoin grav Immunity"
}
"Admin"
{
"Serveradmin" "k r q e m b s o a c p w z x y i l f t d g j R v V Q C A B D E F G H I J K L M N O T U W X Y admin grav pban spray"
"Hauptadmin" "k r q e m b s o a c p w z x y i l f t d g j R v V Q C A B D E F G H I J K L M N O T U W X Y admin grav pban spray"
"Coadmin" "k q e m b s c p y i l f t d g j v V C B D E F G I T U W Y admin"
"Basis" "k c g E s admin"
}
}
}
DAS muss im Endeffekt in den Dateien drinstehen. Wie genau ich User-Name und -Nummern auslese, habe ich schon per For-Schelife in einem früheren Projekt gelöst.
Das neue Problem: Ich muss diese For-Schleife ("pro User") in einer weiteren For-Schleife ("pro Server") ausführen lassen.
Mein Code bis jetzt: (Ich HOFFE, dass der Code richtig angezeigt wird, da er komischerweise bei meinen Posts nie richtig angezeigt wird :()
VB.NET-Quellcode
- Public Class Fortschritt
- 'Dim server As String = ""
- Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork 'Exportiere Server-Clients.txt Dim Success As Boolean = True Dim Count As Integer = 1 Dim Servers() As String = {"assault", "buzzkill", "deathmatch", "glass", "gungame", "minigame", "naps", "pool", "rats", "seek", "surf", "zombiemod"} For Each server In Servers Debug.WriteLine(server) System.IO.File.WriteAllText("clients.txt", "") Dim sw As New System.IO.StreamWriter("clients.txt") sw.Write( _ Chr(34) & "clients.txt" & Chr(34) & vbCrLf & _ "{" & vbCrLf & _ vbTab & Chr(34) & "version" & Chr(34) & " " & Chr(34) & "1" & Chr(34) & vbCrLf & _ vbTab & Chr(34) & "players" & Chr(34) & vbCrLf & _ vbCrLf & _ vbTab & "{" & vbCrLf & _ vbCrLf & _ vbTab & vbTab & "//Clients.txt generiert mit GGP-Userbase v." & My.Application.Info.Version.ToString & " by 727 Momo" & vbCrLf & _ vbCrLf & _ vbTab & vbTab & "//---> Generiert: " & My.Computer.Clock.LocalTime.Date.ToString & vbCrLf & _ vbTab & vbTab & "//Clients.txt des Servers: " & server & vbCrLf & _ vbCrLf & _ vbTab & vbTab & "//Hier kommen die Admins" & vbCrLf & _ vbCrLf) For i As Integer = 0 To Form1.Admin.Rows.GetLastRow(DataGridViewElementStates.Visible) Dim Name As String = Form1.Admin.Item(0, Form1.Admin.Rows.Item(i).Index).Value Dim SteamID As String = Form1.Base.Item(5, Form1.Base.Rows.Item(i).Index).Value Dim Admin As String = Form1.Admin.Item(Count, Form1.Admin.Rows.Item(i).Index).Value sw.Write( _ vbTab & vbTab & Chr(34) & Name & Chr(34) & vbCrLf & _ vbCrLf & _ vbTab & vbTab & "{" & vbCrLf & _ vbCrLf & _ vbTab & vbTab & vbTab & Chr(34) & "name" & Chr(34) & vbTab & Chr(34) & Name & Chr(34) & vbCrLf & _ vbTab & vbTab & vbTab & Chr(34) & "steam" & Chr(34) & vbTab & Chr(34) & SteamID & Chr(34) & vbCrLf & _ vbTab & vbTab & vbTab & Chr(34) & "nick" & Chr(34) & vbTab & Chr(34) & Name & Chr(34) & vbCrLf & _ vbCrLf & _ vbTab & vbTab & vbTab & Chr(34) & "flags" & Chr(34) & vbCrLf & _ vbCrLf & _ vbTab & vbTab & vbTab & "{" & vbCrLf & _ vbCrLf) If Admin = "4" Then sw.Write(vbTab & vbTab & vbTab & vbTab & Chr(34) & "Admin" & Chr(34) & vbTab & Chr(34) & Form1.Priv_4.Text & Chr(34) & vbCrLf) End If If Admin = "3" Then sw.Write(vbTab & vbTab & vbTab & vbTab & Chr(34) & "Admin" & Chr(34) & vbTab & Chr(34) & Form1.Priv_3.Text & Chr(34) & vbCrLf) End If If Admin = "2" Then sw.Write(vbTab & vbTab & vbTab & vbTab & Chr(34) & "Admin" & Chr(34) & vbTab & Chr(34) & Form1.Priv_2.Text & Chr(34) & vbCrLf) End If If Admin = "1" Then sw.Write(vbTab & vbTab & vbTab & vbTab & Chr(34) & "Admin" & Chr(34) & vbTab & Chr(34) & Form1.Priv_1.Text & Chr(34) & vbCrLf) End If If Admin = "0" Then sw.Write(vbTab & vbTab & vbTab & vbTab & Chr(34) & "Admin" & Chr(34) & vbTab & Chr(34) & Form1.Priv_0.Text & Chr(34) & vbCrLf) End If sw.Write( _ vbTab & vbTab & vbTab & vbTab & Chr(34) & "Immunity" & Chr(34) & vbTab & Chr(34) & Chr(34) & vbCrLf & _ vbCrLf & _ vbTab & vbTab & vbTab & "}" & vbCrLf & _ vbCrLf & _ vbTab & vbTab & "}" & vbCrLf & _ vbCrLf) sw.Close() Next sw.Write( _ vbTab & "}" & vbCrLf & _ "}") sw.Close() 'Lade zum Server hoch Dim Client As New Net.WebClient Dim Cred As New Net.NetworkCredential("***", "***") Client.Credentials = Cred Client.UploadFile(New Uri("ftp://***/server/" & server & "/clients.txt"), "clients.txt") BackgroundWorker1.ReportProgress(100 / 12 * Count) Client.Dispose() Count += 1 Next If Success Then MsgBox("Alle clients.txt's erfolgreich gespeichert!", MsgBoxStyle.OkOnly, "Erfolg!") End If End Sub
- Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged ProgressBar1.Value = e.ProgressPercentage End Sub
- Private Sub Fortschritt_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load BackgroundWorker1.RunWorkerAsync() End SubEnd Class
Die For-Schleife ("pro Server") erledigt er ohne Probleme. Er schreibt auch alle StreamWriter-Einträge VOR und NACH der zweiten/eingeschlossenen For-Schleife ("pro User") in die Dateien und lädt diese Dateien auch korrekt hoch. Der Inhalt ist auch korrekt, jedoch fehlt der Inhalt der zweiten For-Schleife.
Ich hoffe wirklich, dass mir hier jemand helfen kann, weil ich langsam daran verzweifle :(.
MfG,
X-Zat / Momo
/Edit: Ich bekomme den Code nicht umformatiert, deswegen habe ich hier ein paar Screenshots:
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „X-Zat“ ()