Skip to content
This repository has been archived by the owner on May 3, 2024. It is now read-only.

Commit

Permalink
include servername and channel name in json string from discord when …
Browse files Browse the repository at this point in the history
…linking with teamspeak
  • Loading branch information
Kleinrotti committed Aug 29, 2021
1 parent a857fa9 commit 0df4b65
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 7 deletions.
9 changes: 5 additions & 4 deletions TeamCord.Core/GUI/ChannelConnector.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ namespace TeamCord.GUI
public partial class ChannelConnector : Window
{
private IList<TCServer> _servers;
private Action<ulong> _resultCallback;
private Action<string, TCChannel> _resultCallback;

public ChannelConnector(IList<TCServer> servers, Action<ulong> resultCallback)
public ChannelConnector(IList<TCServer> servers, Action<string, TCChannel> resultCallback)
{
_servers = servers;
_resultCallback = resultCallback;
Expand All @@ -28,6 +28,7 @@ private void LoadItems()
{
var mItem = new TreeViewItem();
mItem.Header = v.Name;
mItem.DataContext = v;
foreach (var x in v.VoiceChannels)
{
var subItem = new RadioButton
Expand All @@ -52,8 +53,8 @@ private void button_Apply_Click(object sender, RoutedEventArgs e)
{
if (x.IsChecked ?? false)
{
var id = ((TCChannel)x.DataContext).Id;
_resultCallback(id);
//var id = ((TCChannel)x.DataContext).Id;
_resultCallback(((TCServer)v.DataContext).Name, (TCChannel)x.DataContext);
Close();
return;
}
Expand Down
19 changes: 19 additions & 0 deletions TeamCord.Plugin/Helpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,13 +106,32 @@ public static string RemoveClientID(string clientDescription)
return clientDescription;
}

/// <summary>
/// Build a json string for a Teamspeak channel desciption to a linked Discord channel
/// </summary>
/// <param name="channelID"></param>
/// <returns></returns>
public static string ChannelIDToJsonString(ulong channelID)
{
var val = new TS3Json<TS3ChannelJson>(new TS3ChannelJson(channelID));
var json = JsonConvert.SerializeObject(val);
return json;
}

/// <summary>
/// Build a json string for a Teamspeak channel desciption to a linked Discord channel
/// </summary>
/// <param name="channelID"></param>
/// <param name="serverName"></param>
/// <param name="channelName"></param>
/// <returns></returns>
public static string ChannelIDToJsonString(ulong channelID, string serverName, string channelName)
{
var val = new TS3Json<TS3ChannelJson>(new TS3ChannelJson(channelID, serverName, channelName));
var json = JsonConvert.SerializeObject(val);
return json;
}

public static string DiscordIDToJsonString(ulong discordID)
{
var val = new TS3Json<TS3ClientJson>(new TS3ClientJson(discordID));
Expand Down
8 changes: 7 additions & 1 deletion TeamCord.Plugin/TS3Json.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,15 @@ internal class TS3ChannelJson
[JsonProperty("Channel")]
public virtual ulong ChannelID { get; set; }

public TS3ChannelJson(ulong channelID)
public virtual string ServerName { get; set; }

public virtual string ChannelName { get; set; }

public TS3ChannelJson(ulong channelID, string serverName = null, string channelName = null)
{
ChannelID = channelID;
ServerName = serverName;
ChannelName = channelName;
}
}

Expand Down
9 changes: 7 additions & 2 deletions TeamCord.Plugin/TSPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -242,9 +242,9 @@ public void LinkDiscordChannel(ulong serverConnectionHandlerID, ulong ts3Channel
var list = ConnectionHandler.GetServerVoiceChannelList();
ChannelConnector c = new ChannelConnector(list, callback);
c.ShowDialog();
void callback(ulong channelID)
void callback(string serverName, TCChannel channel)
{
var jsonString = Helpers.ChannelIDToJsonString(channelID);
var jsonString = Helpers.ChannelIDToJsonString(channel.Id, serverName, channel.Name);
var err = Functions.getChannelVariableAsString(serverConnectionHandlerID, ts3ChannelID, ChannelProperties.CHANNEL_DESCRIPTION, out var currentDescription);
//first remove all channelIDs which were set before in the description
currentDescription = Helpers.RemoveChannelID(currentDescription).TrimEnd(null);
Expand Down Expand Up @@ -323,6 +323,11 @@ public void Ts3ServerChanged(ulong serverConnectionHandler)
Functions.getCurrentPlaybackDeviceName(serverConnectionHandler, out string currentPlaybackDevice, out bool defaultDevice);

Functions.getCurrentPlayBackMode(serverConnectionHandler, out string mode);
//if the teamspeak speakers set to windows default abort
if (mode == null)
{
return;
}
Functions.getPlaybackDeviceList(mode, out IntPtr ptr);
unsafe
{
Expand Down

0 comments on commit 0df4b65

Please sign in to comment.