Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 11 13:04
    Likqez closed #343
  • Nov 11 13:04
    Likqez commented #343
  • Nov 10 22:56
    rogermb commented #340
  • Nov 10 22:56
    rogermb labeled #340
  • Nov 10 22:51
    rogermb commented #343
  • Nov 10 22:48
    Likqez commented #340
  • Nov 10 22:47
    Likqez edited #343
  • Nov 10 22:47
    Likqez edited #343
  • Nov 10 22:47
    Likqez edited #343
  • Nov 10 22:46
    Likqez edited #343
  • Nov 10 22:46
    Likqez opened #343
  • Nov 10 15:05
    Rindula closed #339
  • Nov 07 14:38
    LUF3N commented #284
  • Nov 07 13:09
    LUF3N commented #284
  • Oct 13 21:03
    rogermb commented #342
  • Oct 13 21:01
    DanielAlves123 commented #342
  • Oct 13 20:55
    DanielAlves123 closed #342
  • Oct 13 20:55
    DanielAlves123 commented #342
  • Oct 13 17:17
    rogermb commented #342
  • Oct 13 17:17
    rogermb labeled #342
Roger Baumgartner
@rogermb
For the former, look it up in the TS3 manual. The latter: Read through the README file of our API.
JenkePlays
@JenkePlays_twitter
How can I find tge IO of my Server Query ?
Roger Baumgartner
@rogermb
Run this from the computer you run your query from
Or if you run the query on the same machine as your server, you don't need to whitelist it
JenkePlays
@JenkePlays_twitter
How can I make the FloodRate Unlimited ?
Roger Baumgartner
@rogermb
TS3Config#setFloodRate
JenkePlays
@JenkePlays_twitter
Thank You its work.
JenkePlays
@JenkePlays_twitter
I become a Error: Exception in thread "[TeamSpeak-3-Java-API] SocketWriter" java.lang.NullPointerException
at com.github.theholywaffle.teamspeak3.commands.CommandEncoding.encode(CommandEncoding.java:34)
at com.github.theholywaffle.teamspeak3.commands.parameter.KeyValueParam.build(KeyValueParam.java:55)
at com.github.theholywaffle.teamspeak3.commands.parameter.Parameter.toString(Parameter.java:35)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at com.github.theholywaffle.teamspeak3.commands.Command.toString(Command.java:120)
at com.github.theholywaffle.teamspeak3.SocketWriter.run(SocketWriter.java:58)
Does anyone know why this is ?
Roger Baumgartner
@rogermb
One of your arguments to an API call was null
JenkePlays
@JenkePlays_twitter
                        api.editChannel(36, Collections.singletonMap(ChannelProperty.CHANNEL_PASSWORD, null));
Is this the Error ?
Roger Baumgartner
@rogermb
Yeah
Why would you do this??
JenkePlays
@JenkePlays_twitter
I will set the Password off.
How can i set the password off =
Roger Baumgartner
@rogermb
""
If the empty string doesn't work, you most likely can't change the password from a server query anyways
JenkePlays
@JenkePlays_twitter
ohhh, iam stupid :D
JenkePlays
@JenkePlays_twitter
How can i get the idle time of a player ?
OVer the Clientinfo ?
Roger Baumgartner
@rogermb
Dude, you're really starting to stretch it. I'm not your personal "google" - use your own brain.
If you're using an IDE, type "idle" and look for any suggestions. If you don't have an IDE, open the file ClientInfo.java and use a search function to look for "idle"
JenkePlays
@JenkePlays_twitter
Thx
Henny022
@Henny022
if you want to work with command args, this is a very nice solution
´´´String args[] = message.split(" ");´´´
String args[] = message.split(" ");
kreidlerflorett
@kreidlerflorett

@rogermb

This wouldn't happen if the API just set overwrite=1 instead of 0. However, I was (probably being overly cautious) afraid of a CRC32 hash collision happening. Basically, I wanted to exclude the possibility of people uploading an icon to the TS3 server which didn't already exist on there and it removing / changing an existing icon to that uploaded icon. At least this way you know that a "collision" has happened and can take the appropriate steps to resolve it

Hmmm, I have sometime problems with the CRC32. How do you mean that with overwrite=1?

How could I do that?
Roger Baumgartner
@rogermb
If you get a collision, you're most likely trying to upload the same icon twice.
Overwriting is in almost every situation the wrong response
JoKer96 | 😴
@JoKer96__twitter

Hey there, i have another Problem.
I try to create a Subchannel, move a client, from the channel above in the subchannel, change the channel to a temporary one and give the client a specific channel group.
But it won't work, the channel is created, and modified to a temporary one, but noething more...
Here is my Code:

// ---- Channel Creation ----
System.out.println("Create Channel");
// Let's customize our channel
final HashMap<ChannelProperty, String> properties = new HashMap<ChannelProperty, String>();
// Make it a permanent channel
properties.put(ChannelProperty.CHANNEL_FLAG_PERMANENT, "1");
// Make it a subchannel of the channel, the user joint.
int mainChannel = headChannelId;
properties.put(ChannelProperty.CPID, String.valueOf(mainChannel));

// Create the (sub-)channel
String name = "";
try {
    name = Core.asyncApi.getChannelInfo(headChannelId).get().getName() + " Ch1";
} catch (InterruptedException ex) {
    ex.printStackTrace();
}

Core.asyncApi.createChannel(name, properties);

// ---- Move user to the created (sub-)channel ----
System.out.println("Move User");
int newChannelId = -1;
try {
newChannelId = Core.asyncApi.getChannelByNameExact(name, false).get().getId();
} catch (InterruptedException ex) {
ex.printStackTrace();
}

if (newChannelId != -1) {
    Core.asyncApi.moveClient(clientId, newChannelId);
}

// ---- Make the channel temporary ----
System.out.println("Make Channel temporary");
HashMap<ChannelProperty, String> newProperties = new HashMap<ChannelProperty, String>();

newProperties.put(ChannelProperty.CHANNEL_FLAG_PERMANENT, "0");
newProperties.put(ChannelProperty.CHANNEL_FLAG_TEMPORARY, "1");

Core.asyncApi.editChannel(newChannelId, newProperties);

// ---- Set the channel-group for the user ----
System.out.println("Set the Channelgroup");
int channelGroupId = 28;
int channelId = newChannelId;
int clientDBId = clientId;

Core.asyncApi.setClientChannelGroup(channelGroupId, channelId, clientDBId);

// ---- Done ----

Maybe you can help me out?

The code again, this time on hastebin... https://hastebin.com/ekapusibik.cs
Roger Baumgartner
@rogermb
Dude, why are you using the asynchronous API like this??
Core.asyncApi.createChannel(name, properties);
is not done when you call
newChannelId = Core.asyncApi.getChannelByNameExact(name, false).get().getId();
And createChannel already returns the ID of the new channel, so that second API call is unnecessary
The whole channel properties map also isn't needed. New channels are temporary by default.
Seriously, just use the normal synchronous API in your code and your problems will magically solve temselves :stuck_out_tongue:
Henny022
@Henny022
is there something like a syncronize() method in the async API?
Roger Baumgartner
@rogermb
What do you need to do exactly?
@Henny022
Henny022
@Henny022
if i got that right, the async api does not wait for an anwser bevor continuing with the code, so i can send multiple commands at the same time
so is there a method, that waits, untill i got al the anwsers from the server, bevor continuing with the code
Roger Baumgartner
@rogermb
Call .get() or .getUninterruptibly() on the last command you've sent
Both of these will wait until the answer to the command has arrived and return that answer. One of them throws an InterruptedException if an interrupt occurs, the other doesn't
Oh, and both of these also have a method that accepts a timeout value, so your code doesn't just hang forever if no answer from the server arrives
Henny022
@Henny022
ok thanks
Cpt. Corner
@Cpt_Corner_twitter
Is there a way to give the query like a "body", so it is displayed on the TS3 Server like a normal user? I need that to make sure every user can send Private Messages to the Bot.
Henny022
@Henny022
not by default, because it is a querry, not a client.
Cpt. Corner
@Cpt_Corner_twitter
Yea I know, but is there maybe a workaround for this problem?