Sachverhalt:
A.
Die Staatsanwaltschaft Basel-Stadt führt gegen A._ ein Strafverfahren wegen versuchter vorsätzlicher Tötung, versuchter mehrfacher schwerer Körperverletzung, mehrfachen Angriffs, etc. A._ wurde am 18. September 2017 verhaftet und anschliessend in Untersuchungshaft versetzt.
Das Zwangsmassnahmengericht wies am 20. April 2018 ein Haftentlassungsgesuch von A._ ab und hiess am 15. Mai 2018 den Antrag der Staatsanwaltschaft gut, die Untersuchungshaft bis zum 4. August 2018 zu verlängern. A._ focht beide Entscheide an.
Mit Entscheid vom 28. Mai 2018 vereinigte das Appellationsgericht die beiden Verfahren. Die Beschwerde gegen die Ablehnung des Haftentlassungsgesuch wies es ab, soweit es darauf eintrat, und diejenige gegen die Haftverlängerung wies es ab.
B.
Mit Beschwerde in Strafsachen beantragt A._, diesen Entscheid des Appellationsgerichts aufzuheben und ihn aus der Haft zu entlassen. Ausserdem ersucht er um unentgeltliche Rechtspflege und Verbeiständung.
C.
Das Appellationsgericht und die Staatsanwaltschaft verzichten auf Vernehmlassung. Letztere reicht zwei Einvernahmeprotokolle ein.
A._ hält in seiner Replik an der Beschwerde fest.

Erwägungen:
1.
Angefochten ist der kantonal letztinstanzliche Haftentscheid des Appellationsgerichts. Dagegen ist die Beschwerde in Strafsachen nach den <ref-law> gegeben. Der Beschwerdeführer ist durch die Verweigerung der Haftentlassung in seinen rechtlich geschützten Interessen betroffen und damit zur Beschwerde befugt (<ref-law>). Er macht die Verletzung von Bundesrecht geltend, was zulässig ist (<ref-law>). Die übrigen Sachurteilsvoraussetzungen geben zu keinen Bemerkungen Anlass, sodass auf die Beschwerde einzutreten ist.
2.
Untersuchungshaft kann unter anderem angeordnet werden, wenn ein dringender Tatverdacht in Bezug auf ein Verbrechen oder Vergehen sowie Fortsetzungsgefahr besteht (<ref-law>). Das Appellationsgericht hat nebst dem allgemeinen Haftgrund des dringenden Tatverdachts Fortsetzungsgefahr als besonderen Haftgrund bejaht.
2.1. Das Appellationsgericht hält den Beschwerdeführer für dringend verdächtig, am frühen Morgen des 17. Septembers 2017 in der Parkgarage des Clubs B._ in Kriens C._ ein Schmetterlingsmesser in die Brust gestossen und dabei den rechten Lungenflügel verletzt zu haben ("Stichverletzung der ventralen Thoraxwand 3./4. ICR rechts mit traumatischem Pneumothorax"). Der Beschwerdeführer bestreitet die Täterschaft und behauptet, es bestehe kein dringender Tatverdacht gegen ihn bzw. dieser habe sich im Verlauf der Untersuchung nicht verdichtet, sondern verflüchtigt.
Zur Messerstecherei kam es, nachdem das Sicherheitspersonal des Clubs B._ nach einer Auseinandersetzung in der Raucherlounge den Beschwerdeführer und zwei seiner Kollegen aus dem Club gewiesen hatte. Der Beschwerdeführer wartete mit Kollegen in der Parkgarage vor dem Club-Eingang auf die den Club nach dessen Schliessung verlassenden Sicherheitsleute. Daraufhin soll der Beschwerdeführer einem von ihnen, C._, ein Schmetterlingsmesser in die Brust gestossen haben. Belastet wird der Beschwerdeführer vor allem durch die Aussagen des Opfers und eines weiteren Sicherheitsangestellten, D._, der zwar den eigentlichen Messerangriff nicht beobachtet hat, wohl aber die Annäherung des Beschwerdeführers und die Reaktion des Opfers auf den Stich; D._ hat den Beschwerdeführer nach dem Vorfall denn auch verfolgt und einen Pfefferspray gegen ihn eingesetzt. Auf den Bildern der Überwachungskamera ist laut Polizeirapport erkennbar, dass sich der Beschwerdeführer um 04:59:09 hinter dem Fahrzeug von E._ aufhielt, um 04:59:11 auf C._ zuging, welcher seine Hände nach oben bewegte, um 04:59:13 eine Bewegung in Richtung C._ ausführte, welcher sich nach hinten bog und rückwärts einige Meter vom Beschwerdeführer wegsprang, während der Beschwerdeführer um 04:59:17 hinter dem Fahrzeug von E._ durchging und mit der Hand oder der Faust auf den Kofferraum schlug [Rapport der Kantonspolizei Luzern vom 26. November 2017, in act. 11b, Ordner 13]. Die entstandene Delle stimmt mit dem Messerrücken des mutmasslichen Tatmessers überein, an welchem DNA-Spuren des Beschwerdeführers sichergestellt wurden. Dass auf dem Messer auch Blutspuren des Beschwerdeführers sichergestellt wurden, ändert nach der Auffassung der Vorinstanzen nichts am Tatverdacht gegen ihn, weil sich nach dem Angriff auf C._ eine weitere Auseinandersetzung ereignet haben soll, bei welcher der Beschwerdeführer selber eine Stichverletzung erlitt.
2.2. Was der Beschwerdeführer dagegen vorbringt, ist allenfalls geeignet, gewisse Zweifel an der Täterschaft zu erwecken, was letztlich vom Sachgericht zu beurteilen sein wird. Das Fortbestehen eines dringenden Tatverdachts vermögen diese Vorbringen dagegen nicht zu zerstreuen. So trifft es zwar durchaus zu und ist auch den Vorinstanzen nicht entgangen, dass auf den Bildern der Überwachungskamera kein Messer erkennbar ist und dass C._ und D._ keine unbeteiligten Zeugen sind, sondern an der Auseinandersetzung beteiligt waren und ihre Aussagen mit entsprechender Vorsicht zu würdigen sind. Nicht recht einzuleuchten vermag die These des Beschwerdeführers, D._ habe C._ die Stichverletzung zugefügt, was die beiden aber vertuschen bzw. ihm die Schuld zuschieben wollten, da sie befreundet seien und D._ der Patenonkel eines Kindes von C._ sei. Unbestritten ist auch, dass das Überwachungsvideo zeitliche Lücken aufweist; entscheidend sind indessen prima vista nicht die Lücken, sondern die Aufnahmen, die den geschilderten Ablauf zeigen. Ob das Video wirklich manipuliert wurde - z.B. um "schwarz" arbeitende Club-Angestellte auszublenden -, oder ob die Zeitsprünge technisch bedingt sind und ob diese Umstände die Beweislage überhaupt massgeblich beeinflussen, wird ebenfalls das Sachgericht zu prüfen haben, ebenso wie die Frage, ob es möglich ist, dass die DNA-Spur des Beschwerdeführers erst nach dem Angriff auf C._ auf das mutmassliche Tatmesser kam. Das Appellationsgericht hat offenkundig kein Bundesrecht verletzt, indem es den Beschwerdeführer als dringend verdächtig erachtet, C._ ein Messer in die Brust gestossen zu haben.
2.3. Ganz abgesehen davon ist der Beschwerdeführer nach den Feststellungen des Zwangsmassnahmengerichts vom 15. Mai 2018 (S. 3) ebenfalls dringend verdächtig, am 15. Januar 2017 den Geschäftsführer des Clubs F._ und dessen Sicherheitspersonal wiederholt mit einem Terroranschlag bzw. mit dem Tod bedroht zu haben. Am 12. März 2017 soll der Beschwerdeführer zudem vor dem Club G._ in Basel an einem Angriff auf H._ beteiligt gewesen sein. Das Appellationsgericht hat im angefochtenen Entscheid die Einwände des Beschwerdeführers gegen die Annahme des dringenden Tatverdachts in diesen beiden Fällen zurückgewiesen (E. 7 S. 12). Der Beschwerdeführer kritisiert das in seiner Beschwerde ans Bundesgericht nicht, weshalb ohne weiteres davon auszugehen ist, dass gegen ihn auch ein dringender Tatverdacht bezüglich Drohung und eines Angriffs besteht, mithin eines Verbrechens und eines Vergehens (Art. 134 und Art. 180 StGB, je i.V.m. <ref-law>); jeder dieser beiden Vorfälle könnte für sich allein genommen die Anordnung von Untersuchungshaft rechtfertigen.
2.4. Da der Beschwerdeführer keine weiteren Rügen erhebt, ist damit die Beschwerde abzuweisen, ohne dass die weiteren Haftvoraussetzungen zu prüfen wären.
3.
Bei diesem Ausgang des Verfahrens wird der Beschwerdeführer kostenpflichtig (<ref-law>). Er hat zwar ein Gesuch um unentgeltliche Rechtspflege und Verbeiständung gestellt, welches indessen abzuweisen ist, da die Beschwerde von vornherein aussichtlos war (Art. 64 Abs. 1 und 2 BGG).

Demnach erkennt das Bundesgericht:
1.
Die Beschwerde wird abgewiesen.
2.
Das Gesuch um unentgeltliche Rechtspflege und Verbeiständung wird abgewiesen.
3.
Die Gerichtskosten von Fr. 1'000.-- werden dem Beschwerdeführer auferlegt.
4.
Dieses Urteil wird dem Beschwerdeführer, der Staatsanwaltschaft des Kantons Basel-Stadt und dem Appellationsgericht des Kantons Basel-Stadt, Einzelgericht, schriftlich mitgeteilt.
Lausanne, 13. Juli 2018
Im Namen der I. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Merkli
Der Gerichtsschreiber: Störi