client: revvy boi 202
This commit is contained in:
@@ -2,19 +2,26 @@ import java.awt.Component;
|
||||
import java.awt.Graphics;
|
||||
import net.runelite.mapping.Export;
|
||||
import net.runelite.mapping.Implements;
|
||||
import net.runelite.mapping.ObfuscatedGetter;
|
||||
import net.runelite.mapping.ObfuscatedName;
|
||||
import net.runelite.mapping.ObfuscatedSignature;
|
||||
import net.runelite.rs.ScriptOpcodes;
|
||||
|
||||
@ObfuscatedName("v")
|
||||
@ObfuscatedName("y")
|
||||
@Implements("Canvas")
|
||||
public final class Canvas extends java.awt.Canvas {
|
||||
@ObfuscatedName("ad")
|
||||
@ObfuscatedName("b")
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "Lod;"
|
||||
descriptor = "Lku;"
|
||||
)
|
||||
@Export("rasterProvider")
|
||||
public static AbstractRasterProvider rasterProvider;
|
||||
@ObfuscatedName("i")
|
||||
@Export("SequenceDefinition_archive")
|
||||
public static AbstractArchive SequenceDefinition_archive;
|
||||
@ObfuscatedName("fu")
|
||||
@ObfuscatedGetter(
|
||||
intValue = 2126946355
|
||||
)
|
||||
static int field163;
|
||||
@ObfuscatedName("c")
|
||||
@Export("component")
|
||||
Component component;
|
||||
|
||||
@@ -22,161 +29,272 @@ public final class Canvas extends java.awt.Canvas {
|
||||
this.component = var1; // L: 11
|
||||
} // L: 12
|
||||
|
||||
public final void update(Graphics var1) {
|
||||
this.component.update(var1); // L: 15
|
||||
} // L: 16
|
||||
|
||||
public final void paint(Graphics var1) {
|
||||
this.component.paint(var1); // L: 19
|
||||
this.component.paint(var1);
|
||||
} // L: 20
|
||||
|
||||
@ObfuscatedName("w")
|
||||
public final void update(Graphics var1) {
|
||||
this.component.update(var1); // L: 15
|
||||
}
|
||||
|
||||
@ObfuscatedName("c")
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(IB)Lfl;",
|
||||
garbageValue = "80"
|
||||
descriptor = "(Lpi;Loz;I)Loz;",
|
||||
garbageValue = "278803147"
|
||||
)
|
||||
public static HitSplatDefinition method372(int var0) {
|
||||
HitSplatDefinition var1 = (HitSplatDefinition)HitSplatDefinition.HitSplatDefinition_cached.get((long)var0); // L: 52
|
||||
if (var1 != null) { // L: 53
|
||||
return var1;
|
||||
} else {
|
||||
byte[] var2 = HitSplatDefinition.HitSplatDefinition_archive.takeFile(32, var0); // L: 54
|
||||
var1 = new HitSplatDefinition(); // L: 55
|
||||
if (var2 != null) { // L: 56
|
||||
var1.decode(new Buffer(var2));
|
||||
@Export("readStringIntParameters")
|
||||
static final IterableNodeHashTable readStringIntParameters(Buffer var0, IterableNodeHashTable var1) {
|
||||
int var2 = var0.readUnsignedByte(); // L: 16
|
||||
int var3;
|
||||
if (var1 == null) { // L: 17
|
||||
var3 = SpotAnimationDefinition.method3362(var2); // L: 18
|
||||
var1 = new IterableNodeHashTable(var3); // L: 19
|
||||
}
|
||||
|
||||
for (var3 = 0; var3 < var2; ++var3) { // L: 21
|
||||
boolean var4 = var0.readUnsignedByte() == 1; // L: 22
|
||||
int var5 = var0.readMedium(); // L: 23
|
||||
Object var6;
|
||||
if (var4) {
|
||||
var6 = new ObjectNode(var0.readStringCp1252NullTerminated()); // L: 25
|
||||
} else {
|
||||
var6 = new IntegerNode(var0.readInt()); // L: 26
|
||||
}
|
||||
|
||||
HitSplatDefinition.HitSplatDefinition_cached.put(var1, (long)var0); // L: 57
|
||||
return var1; // L: 58
|
||||
var1.put((Node)var6, (long)var5); // L: 27
|
||||
}
|
||||
|
||||
return var1; // L: 29
|
||||
}
|
||||
|
||||
@ObfuscatedName("c")
|
||||
public static double method408(double var0) {
|
||||
return Math.exp(-var0 * var0 / 2.0D) / Math.sqrt(6.283185307179586D); // L: 9
|
||||
}
|
||||
|
||||
@ObfuscatedName("j")
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(ILbn;ZB)I",
|
||||
garbageValue = "-48"
|
||||
)
|
||||
static int method404(int var0, Script var1, boolean var2) {
|
||||
Widget var3;
|
||||
if (var0 >= 2000) { // L: 802
|
||||
var0 -= 1000; // L: 803
|
||||
var3 = ChatChannel.getWidget(Interpreter.Interpreter_intStack[--IsaacCipher.Interpreter_intStackSize]); // L: 804
|
||||
} else {
|
||||
var3 = var2 ? WorldMapArea.scriptDotWidget : Messages.scriptActiveWidget; // L: 806
|
||||
}
|
||||
|
||||
SecureRandomCallable.invalidateWidget(var3); // L: 807
|
||||
if (var0 != ScriptOpcodes.CC_SETOBJECT && var0 != ScriptOpcodes.CC_SETOBJECT_NONUM && var0 != ScriptOpcodes.CC_SETOBJECT_ALWAYS_NUM) { // L: 808
|
||||
if (var0 == ScriptOpcodes.CC_SETNPCHEAD) { // L: 828
|
||||
var3.modelType = 2; // L: 829
|
||||
var3.modelId = Interpreter.Interpreter_intStack[--IsaacCipher.Interpreter_intStackSize]; // L: 830
|
||||
return 1; // L: 831
|
||||
} else if (var0 == ScriptOpcodes.CC_SETPLAYERHEAD_SELF) { // L: 833
|
||||
var3.modelType = 3; // L: 834
|
||||
var3.modelId = class340.localPlayer.appearance.getChatHeadId(); // L: 835
|
||||
return 1; // L: 836
|
||||
} else {
|
||||
return 2; // L: 838
|
||||
}
|
||||
} else {
|
||||
IsaacCipher.Interpreter_intStackSize -= 2; // L: 809
|
||||
int var4 = Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize]; // L: 810
|
||||
int var5 = Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize + 1]; // L: 811
|
||||
var3.itemId = var4; // L: 812
|
||||
var3.itemQuantity = var5; // L: 813
|
||||
ItemComposition var6 = UserComparator6.ItemDefinition_get(var4); // L: 814
|
||||
var3.modelAngleX = var6.xan2d; // L: 815
|
||||
var3.modelAngleY = var6.yan2d; // L: 816
|
||||
var3.modelAngleZ = var6.zan2d; // L: 817
|
||||
var3.modelOffsetX = var6.offsetX2d; // L: 818
|
||||
var3.modelOffsetY = var6.offsetY2d; // L: 819
|
||||
var3.modelZoom = var6.zoom2d; // L: 820
|
||||
if (var0 == ScriptOpcodes.CC_SETOBJECT_NONUM) {
|
||||
var3.itemQuantityMode = 0; // L: 821
|
||||
} else if (var0 == ScriptOpcodes.CC_SETOBJECT_ALWAYS_NUM | 1 == var6.isStackable) { // L: 822
|
||||
var3.itemQuantityMode = 1;
|
||||
} else {
|
||||
var3.itemQuantityMode = 2; // L: 823
|
||||
}
|
||||
|
||||
if (var3.field3280 > 0) { // L: 824
|
||||
var3.modelZoom = var3.modelZoom * 32 / var3.field3280;
|
||||
} else if (var3.rawWidth > 0) { // L: 825
|
||||
var3.modelZoom = var3.modelZoom * 32 / var3.rawWidth;
|
||||
}
|
||||
|
||||
return 1; // L: 826
|
||||
}
|
||||
}
|
||||
|
||||
@ObfuscatedName("ha")
|
||||
@ObfuscatedName("n")
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(ZLoj;I)V",
|
||||
garbageValue = "-1681354127"
|
||||
descriptor = "(B)Lbw;",
|
||||
garbageValue = "1"
|
||||
)
|
||||
@Export("loadRegions")
|
||||
static final void loadRegions(boolean var0, PacketBuffer var1) {
|
||||
Client.isInInstance = var0; // L: 5700
|
||||
int var2;
|
||||
int var3;
|
||||
int var5;
|
||||
int var6;
|
||||
int var7;
|
||||
int var8;
|
||||
if (!Client.isInInstance) { // L: 5701
|
||||
var2 = var1.method7120(); // L: 5702
|
||||
var3 = var1.method7004(); // L: 5703
|
||||
int var4 = var1.readUnsignedShort(); // L: 5704
|
||||
Client.xteaKeys = new int[var4][4]; // L: 5705
|
||||
@Export("getNextWorldListWorld")
|
||||
static World getNextWorldListWorld() {
|
||||
return World.World_listCount < World.World_count ? class334.World_worlds[++World.World_listCount - 1] : null; // L: 242 243
|
||||
}
|
||||
|
||||
for (var5 = 0; var5 < var4; ++var5) { // L: 5706
|
||||
for (var6 = 0; var6 < 4; ++var6) { // L: 5707
|
||||
Client.xteaKeys[var5][var6] = var1.readInt(); // L: 5708
|
||||
}
|
||||
@ObfuscatedName("ar")
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(ILbn;ZI)I",
|
||||
garbageValue = "1167859989"
|
||||
)
|
||||
static int method405(int var0, Script var1, boolean var2) {
|
||||
if (var0 == ScriptOpcodes.VIEWPORT_SETFOV) { // L: 3635
|
||||
IsaacCipher.Interpreter_intStackSize -= 2; // L: 3636
|
||||
Client.field690 = (short)Calendar.method5323(Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize]); // L: 3637
|
||||
if (Client.field690 <= 0) { // L: 3638
|
||||
Client.field690 = 256;
|
||||
}
|
||||
|
||||
LoginScreenAnimation.regions = new int[var4]; // L: 5711
|
||||
class119.regionMapArchiveIds = new int[var4]; // L: 5712
|
||||
class21.regionLandArchiveIds = new int[var4]; // L: 5713
|
||||
ModeWhere.regionLandArchives = new byte[var4][]; // L: 5714
|
||||
class184.regionMapArchives = new byte[var4][]; // L: 5715
|
||||
boolean var16 = false; // L: 5716
|
||||
if (Client.field619) { // L: 5717
|
||||
if ((var3 / 8 == 48 || var3 / 8 == 49) && var2 / 8 == 48) { // L: 5718
|
||||
var16 = true;
|
||||
}
|
||||
|
||||
if (var3 / 8 == 48 && var2 / 8 == 148) { // L: 5719
|
||||
var16 = true;
|
||||
}
|
||||
Client.field707 = (short)Calendar.method5323(Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize + 1]); // L: 3639
|
||||
if (Client.field707 <= 0) { // L: 3640
|
||||
Client.field707 = 256;
|
||||
}
|
||||
|
||||
var4 = 0; // L: 5721
|
||||
|
||||
for (var6 = (var3 - 6) / 8; var6 <= (var3 + 6) / 8; ++var6) { // L: 5722
|
||||
for (var7 = (var2 - 6) / 8; var7 <= (var2 + 6) / 8; ++var7) { // L: 5723
|
||||
var8 = var7 + (var6 << 8); // L: 5724
|
||||
if (!var16 || var7 != 49 && var7 != 149 && var7 != 147 && var6 != 50 && (var6 != 49 || var7 != 47)) { // L: 5725
|
||||
LoginScreenAnimation.regions[var4] = var8; // L: 5726
|
||||
class119.regionMapArchiveIds[var4] = class11.archive5.getGroupId("m" + var6 + "_" + var7); // L: 5727
|
||||
class21.regionLandArchiveIds[var4] = class11.archive5.getGroupId("l" + var6 + "_" + var7); // L: 5728
|
||||
++var4; // L: 5729
|
||||
}
|
||||
}
|
||||
return 1; // L: 3641
|
||||
} else if (var0 == ScriptOpcodes.VIEWPORT_SETZOOM) { // L: 3643
|
||||
IsaacCipher.Interpreter_intStackSize -= 2; // L: 3644
|
||||
Client.zoomHeight = (short)Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize]; // L: 3645
|
||||
if (Client.zoomHeight <= 0) { // L: 3646
|
||||
Client.zoomHeight = 256;
|
||||
}
|
||||
|
||||
EnumComposition.method3107(var3, var2, true); // L: 5732
|
||||
Client.zoomWidth = (short)Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize + 1]; // L: 3647
|
||||
if (Client.zoomWidth <= 0) { // L: 3648
|
||||
Client.zoomWidth = 320;
|
||||
}
|
||||
|
||||
return 1; // L: 3649
|
||||
} else if (var0 == ScriptOpcodes.VIEWPORT_CLAMPFOV) { // L: 3651
|
||||
IsaacCipher.Interpreter_intStackSize -= 4; // L: 3652
|
||||
Client.field619 = (short)Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize]; // L: 3653
|
||||
if (Client.field619 <= 0) { // L: 3654
|
||||
Client.field619 = 1;
|
||||
}
|
||||
|
||||
Client.field735 = (short)Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize + 1]; // L: 3655
|
||||
if (Client.field735 <= 0) { // L: 3656
|
||||
Client.field735 = 32767;
|
||||
} else if (Client.field735 < Client.field619) { // L: 3657
|
||||
Client.field735 = Client.field619;
|
||||
}
|
||||
|
||||
Client.field736 = (short)Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize + 2]; // L: 3658
|
||||
if (Client.field736 <= 0) { // L: 3659
|
||||
Client.field736 = 1;
|
||||
}
|
||||
|
||||
Client.field737 = (short)Interpreter.Interpreter_intStack[IsaacCipher.Interpreter_intStackSize + 3]; // L: 3660
|
||||
if (Client.field737 <= 0) { // L: 3661
|
||||
Client.field737 = 32767;
|
||||
} else if (Client.field737 < Client.field736) { // L: 3662
|
||||
Client.field737 = Client.field736;
|
||||
}
|
||||
|
||||
return 1; // L: 3663
|
||||
} else if (var0 == ScriptOpcodes.VIEWPORT_GETEFFECTIVESIZE) { // L: 3665
|
||||
if (Client.viewportWidget != null) { // L: 3666
|
||||
WorldMapDecoration.setViewportShape(0, 0, Client.viewportWidget.width, Client.viewportWidget.height, false); // L: 3667
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = Client.viewportWidth; // L: 3668
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = Client.viewportHeight; // L: 3669
|
||||
} else {
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = -1; // L: 3672
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = -1; // L: 3673
|
||||
}
|
||||
|
||||
return 1; // L: 3675
|
||||
} else if (var0 == ScriptOpcodes.VIEWPORT_GETZOOM) { // L: 3677
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = Client.zoomHeight; // L: 3678
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = Client.zoomWidth; // L: 3679
|
||||
return 1; // L: 3680
|
||||
} else if (var0 == ScriptOpcodes.VIEWPORT_GETFOV) { // L: 3682
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = class67.method1962(Client.field690); // L: 3683
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = class67.method1962(Client.field707); // L: 3684
|
||||
return 1; // L: 3685
|
||||
} else if (var0 == 6220) { // L: 3687
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = 0; // L: 3688
|
||||
return 1; // L: 3689
|
||||
} else if (var0 == 6221) { // L: 3691
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = 0; // L: 3692
|
||||
return 1; // L: 3693
|
||||
} else if (var0 == 6222) { // L: 3695
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = class186.canvasWidth; // L: 3696
|
||||
return 1; // L: 3697
|
||||
} else if (var0 == 6223) { // L: 3699
|
||||
Interpreter.Interpreter_intStack[++IsaacCipher.Interpreter_intStackSize - 1] = BoundaryObject.canvasHeight; // L: 3700
|
||||
return 1; // L: 3701
|
||||
} else {
|
||||
var2 = var1.method7120(); // L: 5735
|
||||
var3 = var1.readUnsignedShort(); // L: 5736
|
||||
boolean var15 = var1.readUnsignedByte() == 1; // L: 5737
|
||||
var5 = var1.readUnsignedShort(); // L: 5738
|
||||
var1.importIndex(); // L: 5739
|
||||
return 2; // L: 3703
|
||||
}
|
||||
}
|
||||
|
||||
int var9;
|
||||
for (var6 = 0; var6 < 4; ++var6) { // L: 5740
|
||||
for (var7 = 0; var7 < 13; ++var7) { // L: 5741
|
||||
for (var8 = 0; var8 < 13; ++var8) { // L: 5742
|
||||
var9 = var1.readBits(1); // L: 5743
|
||||
if (var9 == 1) {
|
||||
Client.instanceChunkTemplates[var6][var7][var8] = var1.readBits(26); // L: 5744
|
||||
} else {
|
||||
Client.instanceChunkTemplates[var6][var7][var8] = -1; // L: 5745
|
||||
}
|
||||
}
|
||||
}
|
||||
@ObfuscatedName("gs")
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(I)V",
|
||||
garbageValue = "-1717871248"
|
||||
)
|
||||
static final void method406() {
|
||||
for (int var0 = 0; var0 < Client.npcCount; ++var0) { // L: 4614
|
||||
int var1 = Client.npcIndices[var0]; // L: 4615
|
||||
NPC var2 = Client.npcs[var1]; // L: 4616
|
||||
if (var2 != null) { // L: 4617
|
||||
ItemLayer.updateActorSequence(var2, var2.definition.size); // L: 4618
|
||||
}
|
||||
|
||||
var1.exportIndex(); // L: 5749
|
||||
Client.xteaKeys = new int[var5][4]; // L: 5750
|
||||
|
||||
for (var6 = 0; var6 < var5; ++var6) { // L: 5751
|
||||
for (var7 = 0; var7 < 4; ++var7) { // L: 5752
|
||||
Client.xteaKeys[var6][var7] = var1.readInt(); // L: 5753
|
||||
}
|
||||
}
|
||||
|
||||
LoginScreenAnimation.regions = new int[var5]; // L: 5756
|
||||
class119.regionMapArchiveIds = new int[var5]; // L: 5757
|
||||
class21.regionLandArchiveIds = new int[var5]; // L: 5758
|
||||
ModeWhere.regionLandArchives = new byte[var5][]; // L: 5759
|
||||
class184.regionMapArchives = new byte[var5][]; // L: 5760
|
||||
var5 = 0; // L: 5761
|
||||
|
||||
for (var6 = 0; var6 < 4; ++var6) { // L: 5762
|
||||
for (var7 = 0; var7 < 13; ++var7) { // L: 5763
|
||||
for (var8 = 0; var8 < 13; ++var8) { // L: 5764
|
||||
var9 = Client.instanceChunkTemplates[var6][var7][var8]; // L: 5765
|
||||
if (var9 != -1) { // L: 5766
|
||||
int var10 = var9 >> 14 & 1023; // L: 5767
|
||||
int var11 = var9 >> 3 & 2047; // L: 5768
|
||||
int var12 = (var10 / 8 << 8) + var11 / 8; // L: 5769
|
||||
|
||||
int var13;
|
||||
for (var13 = 0; var13 < var5; ++var13) { // L: 5770
|
||||
if (LoginScreenAnimation.regions[var13] == var12) {
|
||||
var12 = -1; // L: 5771
|
||||
break; // L: 5772
|
||||
}
|
||||
}
|
||||
|
||||
if (var12 != -1) { // L: 5774
|
||||
LoginScreenAnimation.regions[var5] = var12; // L: 5775
|
||||
var13 = var12 >> 8 & 255; // L: 5776
|
||||
int var14 = var12 & 255; // L: 5777
|
||||
class119.regionMapArchiveIds[var5] = class11.archive5.getGroupId("m" + var13 + "_" + var14); // L: 5778
|
||||
class21.regionLandArchiveIds[var5] = class11.archive5.getGroupId("l" + var13 + "_" + var14); // L: 5779
|
||||
++var5; // L: 5780
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EnumComposition.method3107(var2, var3, !var15); // L: 5786
|
||||
}
|
||||
|
||||
} // L: 5788
|
||||
} // L: 4621
|
||||
|
||||
@ObfuscatedName("ks")
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "([Ljm;IB)V",
|
||||
garbageValue = "-55"
|
||||
)
|
||||
@Export("runComponentCloseListeners")
|
||||
static final void runComponentCloseListeners(Widget[] var0, int var1) {
|
||||
for (int var2 = 0; var2 < var0.length; ++var2) { // L: 11884
|
||||
Widget var3 = var0[var2]; // L: 11885
|
||||
if (var3 != null) { // L: 11886
|
||||
if (var3.type == 0) { // L: 11887
|
||||
if (var3.children != null) { // L: 11888
|
||||
runComponentCloseListeners(var3.children, var1);
|
||||
}
|
||||
|
||||
InterfaceParent var4 = (InterfaceParent)Client.interfaceParents.get((long)var3.id); // L: 11889
|
||||
if (var4 != null) { // L: 11890
|
||||
Message.runIntfCloseListeners(var4.group, var1);
|
||||
}
|
||||
}
|
||||
|
||||
ScriptEvent var5;
|
||||
if (var1 == 0 && var3.onDialogAbort != null) { // L: 11892
|
||||
var5 = new ScriptEvent(); // L: 11893
|
||||
var5.widget = var3; // L: 11894
|
||||
var5.args = var3.onDialogAbort; // L: 11895
|
||||
class285.runScriptEvent(var5); // L: 11896
|
||||
}
|
||||
|
||||
if (var1 == 1 && var3.onSubChange != null) { // L: 11898
|
||||
if (var3.childIndex >= 0) { // L: 11899
|
||||
Widget var6 = ChatChannel.getWidget(var3.id); // L: 11900
|
||||
if (var6 == null || var6.children == null || var3.childIndex >= var6.children.length || var3 != var6.children[var3.childIndex]) { // L: 11901
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
var5 = new ScriptEvent(); // L: 11905
|
||||
var5.widget = var3; // L: 11906
|
||||
var5.args = var3.onSubChange; // L: 11907
|
||||
class285.runScriptEvent(var5); // L: 11908
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // L: 11911
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user